728x90
반응형
MyBatis와 JPA의 주요한 차이점은 DB의 상호작용 방식이다.
MyBatis
- 개발자가 SQL 쿼리를 직접 작성하며 데이터 매핑을 위해 XML 또는 어노테이션을 사용한다.
장점
- 접근이 쉽고 코드가 간결하다 ( 배우기가 쉬움 )
- SQL문과 프로그래밍 코드가 분리되어 있어 SQL 문에 변경이 있을 시 자바 코드를 수정하거나 컴파일 안해도 됨.
- 다양한 프로그래밍 언어로 구현이 가능 ( 이식성 높음 )
- 직접 작성한 SQL에 의존하기 때문에, 성능 최적화가 상대적으로 쉽다.
단점
- 스키마 변경시 SQL 쿼리를 직접 수정해주어야 한다.
- 반복된 쿼리가 발생하여 반복 작업이 있다.
- 쿼리를 직접 작성하기 때문에 데이터베이스에 종속된 쿼리문이 발생할 수 있다.
JPA
- 객체와 관계형 데이터베이스 간의 매핑을 제공하며, JPQL(Java Persistence Query Language)을 사용한다.
장점
- 쿼리를 하나하나 작성할 필요가 없어 코드량이 줄어든다
- 가독성이 좋다
- 간편하게 수정이 가능하다 ( 유지보수, 리팩토링 좋음 )
- 동일한 쿼리에 대한 캐시 기능을 사용하기 때문에 더욱 높은 성능을 낼 수 있다.
단점
- 매핑 설계를 잘못했을 때 성능 저하가 발생할 수 있다.
- JPA를 제대로 사용하기 위해서 알아야할 것들이 많아 학습하는데 오랜 시간이 걸린다.
- 다수의 테이블 조인시 신경써야할게 많다.
728x90
반응형
'✨ DBMS > etc' 카테고리의 다른 글
[DB] 프로시저(Procedure)와 트리거(Trigger) 차이 (0) | 2023.12.26 |
---|---|
[DB] UNDO, REDO의 차이 (0) | 2023.12.25 |
[DB] ORM 이란? (0) | 2023.12.24 |
[DB] RDBMS와 NoSQL의 차이 (0) | 2023.12.24 |
[DB] 정규화(Normalization) (0) | 2023.08.03 |
댓글