Dev/Java
[JAVA, DB] JPA, Mybatis 정의와 장단점
헝그리둘기
2023. 7. 19. 16:21
Mybatis
SQL Mapper Framework 로써, 직접 SQL을 작성해 얻은 결과를 통해 객체와 데이터베이스 간 매핑할 수 있게 도와주는 프레임워크
장점. 연동방법이 어렵지 않고, 쿼리 작성에 능숙하다면 오히려 개발 시간을 단축할 수 있음
단점. 쿼리를 직접 작성하다보니 자잘한 오타에도 에러가 날 수 있고, 아주 간단한 테이블조회 쿼리라도 하나하나 전부 작성해야해서 귀찮음. 객체 DTO 변경 시 짜놓았던 쿼리도 다시 수정해야해서 개발, 유지보수 시 번거로울 수 있음. 특정 DBMS(Mysql, Oracle 등)에 종속적임
JPA (Java Persistence API)
ORM(Object Relational Mapping) 기술로써, SQL을 작성하지 않아도 객체가 데이터베이스와 매핑할 수 있게 도와주는 기술
장점. 일일이 쿼리를 작성하지 않아도 자주 사용하는 기본 기능들을 사용할 수 있음. 객체와 DB값이 매핑되어있기 때문에 객체 상태를 변경하는 행위 자체가 DB상태를 변경하는 것이라서 직관적임. DBMS가 달라져도 변경해야 할 게 별루 없음
단점. 개인차가 있겠지만 마이바티스보다 러닝커브가 심하고, 조금 복잡한 기능은 QueryDSL로 직접 쿼리를 작성해 사용해야 함