[JPA] SQL Mapper, ORM이란? Mybatis와 JPA의 차이

Dawon Seo·2022년 8월 23일
0

JPA

목록 보기
1/5
post-thumbnail

SQL Mapper와 ORM, Mybatis와 JPA의 차이에 대해 알기 위해서는 영속성의 개념을 먼저 알아야 합니다.

영속성(Persistence)

  • 프로그램이 종료되어도 데이터들이 사라지지 않고 어떤 곳에서 저장되는 개념
  • 영속성을 갖지 않는 데이터는 단지 메모리에서만 존재하기 때문에 프로그램을 종료하면 모두 잃어버리게 됨

자바에서는 데이터에 이러한 영속성을 부여(데이터베이스에 저장)하기 위해 JDBC를 지원합니다.

하지만, JDBC 프로그래밍을 직접 할 경우 매핑 작업을 개발자가 일일이 수행해야 한다는 번거로움이 존재합니다.
SQL MapperORM은 이러한 문제를 해결하기 위한 Persistence Framwork 종류입니다.

SQL Mapper

  • 객체와 테이블 간의 관계를 매핑하는 것이 아니라, SQL문을 직접 작성하고 쿼리 수행 결과를 어떤 객체에 매핑할지 바인딩하는 방법
  • DBMS에 종속적인 문제 존재

ORM(Object Relational Mapping)

  • Object와 DB테이블을 매핑하여 데이터를 객체화하는 기술
  • 개발자가 직접 SQL문을 작성하지 않음
  • DBMS에 종속적이지 않음

Mybatis는 자바에서 SQL Mapper를 지원해주는 Framework, JPA는 자바 ORM의 기술 표준입니다.

JPA의 장점과 단점

장점

  • 데이터베이스에 종속적이지 않아 추후 데이터베이스 변경이나 코드 재활용 가능
  • 테이블 생성, 변경 등 엔티티 관리가 간편
  • 컴파일 시 오류 확인 가능
  • 코드 레벨로 관리되어 사용하기 용이하고 생산성 높음
  • 간단한 CRUD 자동 생성

단점

  • 복잡한 연산을 수행하기에는 다소 무리가 있음
  • 고도화 될수록 학습 곡선이 높아짐

Mybatis의 장점과 단점

장점

  • SQL 쿼리를 직접 작성하므로 쉽게 최적화된 쿼리 구현 가능
  • 엔티티에 종속받지 않고 다양한 테이블 조합 가능
  • 동적 쿼리 사용 시 JPA보다 간편하게 구현 가능

단점

  • 특정 데이터베이스에 종속적
  • DB 설정 변경 시 많은 부분을 수정해야 함
  • 반복 작업이 발생할 수 있음

0개의 댓글