본문 바로가기
✨ DBMS/etc

[DB] MyBatis와 JPA의 차이와 장점, 단점

by 환풍 2023. 12. 24.
728x90

 

 

MyBatis와 JPA의 주요한 차이점은 DB의 상호작용 방식이다.

 

MyBatis

- 개발자가 SQL 쿼리를 직접 작성하며 데이터 매핑을 위해 XML 또는 어노테이션을 사용한다.

 

장점 

  1. 접근이 쉽고 코드가 간결하다 ( 배우기가 쉬움 )
  2. SQL문과 프로그래밍 코드가 분리되어 있어 SQL 문에 변경이 있을 시 자바 코드를 수정하거나 컴파일 안해도 됨.
  3. 다양한 프로그래밍 언어로 구현이 가능 ( 이식성 높음 )
  4. 직접 작성한 SQL에 의존하기 때문에, 성능 최적화가 상대적으로 쉽다.

단점

  1. 스키마 변경시 SQL 쿼리를 직접 수정해주어야 한다.
  2. 반복된 쿼리가 발생하여 반복 작업이 있다.
  3. 쿼리를 직접 작성하기 때문에 데이터베이스에 종속된 쿼리문이 발생할 수 있다.

 

JPA

- 객체와 관계형 데이터베이스 간의 매핑을 제공하며, JPQL(Java Persistence Query Language)을 사용한다.

 

장점

  1. 쿼리를 하나하나 작성할 필요가 없어 코드량이 줄어든다
  2. 가독성이 좋다
  3. 간편하게 수정이 가능하다 ( 유지보수, 리팩토링 좋음 )
  4. 동일한 쿼리에 대한 캐시 기능을 사용하기 때문에 더욱 높은 성능을 낼 수 있다.

단점

  1. 매핑 설계를 잘못했을 때 성능 저하가 발생할 수 있다.
  2. JPA를 제대로 사용하기 위해서 알아야할 것들이 많아 학습하는데 오랜 시간이 걸린다.
  3. 다수의 테이블 조인시 신경써야할게 많다.
반응형

'✨ 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

댓글