Spring Data Jpa와 Mybatis의 차이가 뭘까?

Mini_me·2023년 3월 13일
0

공부 [Spring]

목록 보기
18/27
post-thumbnail

Spring Data Jpa와 Mybatis의 차이 ?

작년 하반기에 스타트업 인턴으로 근무했을 때는 Spring Data Jpa보다는 Mybatis를 활용해 쿼리를 짜는 경우가 더 많았다.
하지만 작년 상반기에 진행했던 캡스톤 프로젝트에서는 Spring Data jpa를 이용하여 프로젝트를 진행하였다.
둘 다 진행해본 경험이 있어서 말해보자면
둘 다 장단점이 존재한다.

MyBatis의 장점

Mybatis의 경우에는 쿼리를 개발자가 직접 작성하기 때문에 최적화된 쿼리를 구현할 수 있다.
또한 복잡한 쿼리도 작성할 수 있다.

MyBatis의 단점

쿼리를 직접 작성하기 때문에 데이터 베이스에 종된 쿼리문이 발생할 수 있어 데이터 베이스 변경 시 로직도 함께 수정해야된다.
또한 자주 느꼈던 단점이였는데 반복된 쿼리가 발생하여 반복 작업이 있다.
또한 객체에 필드를 하나 추가할 때도 관련된 sql문까지도 변경해야되서 sql에 의존적이다.

Jpa의 장점

부모-자식 관계 표현, 1:N 관계 표현 등 객체지향적인 프로그래밍이 가능하다.

  • Mybatis랑은 다르게 jpa를 사용하게 되면 데이터베이스 중심이 아닌 객체지향적으로 설계가 가능하다.
    쿼리를 일일히 작성할 필요가 없고, CRUD 쿼리를 직접 작성할 필요가 없다.
    메소드 네이밍으로 쿼리를 날릴 수가있다.

Jpa의 단점

복잡한 쿼리를 처리하기 힘들다.
객체간의 매핑 설계를 잘못했을 경우에는 성능 저하가 발생할 수 있고, 자동으로 생성되는 쿼리가 많아 N+1문제 같이 성능이 저하되기도 한다.

0개의 댓글