1. 개요
- 무조건 JPA가 좋은가? JPA를 사용해야 하는가?
2. JPA의 개념
- java application에서 DB와 상호작용하기 위한 표준 API, 객체지향 프로그래밍에서 RDBMS와의 매핑을 용이하게 해주는 도구이다.
- ORM(Object - Relational Mapping) 프레임워크인 JPA는 기본적으로 쿼리를 자동 생성한다.
3. JPA와 Native Query의 혼용
- 복잡한 쿼리를 사용한다면 JPA 성능 문제가 발생할 수 있기에 Native Query를 사용하는 것이 유리할 수 있고, 무엇보다 DBMS에 최적화된 쿼리를 개발자가 직접 작성하고 직접 fetch할 수 있기에 적절한 상황에서 혼용하는 것이 가장 유리하다.
4. 장단점
- JPA사용 시 가독성이 좋고 확장성이 좋다(DBMS을 변경해도 의존성 역전에 의해 별다른 변경 없이 사용 가능).
- Native Query 사용 시 DBMS 종속적이고, 그렇기에 DBMS변경 시 쿼리도 같이 변경해주어야 한다(확장성 저해).
5. 결론
복잡도, 의존성, 성능 등을 고려하여 알맞은 방법을 사용하자.
6. 참조자료
JPA/Native Query - https://f-lab.kr/insight/jpa-native-query-usage-20240709