Study/Java

MyBatis vs JPA

going.yoon 2022. 6. 20. 13:03

프로그램 개발 시 데이터를 영구적으로 저장하기 위해 파일시스템, 관계형 데이터베이스등을 사용하여 우리는 영속성을 부여한다. 그렇지 않으면 데이터는 메모리에만 남아 프로그램이 종료되면 모두 사라지기 때문이다.

 

그리고 시스템 설계 구조에서 이러한 영속성을 관리해주는 부분을 persistance layer라고 부른다. 여기서 jdbc를 직접 구현할 수 있지만, 그렇게 하지 않고 보통 자바에서 제공하는 jdbc api를 사용하여 구현한다.

( jdbc : java에서 제공하는 api. persistance framework 내부에서는 다 사용)

 

이 persistance framework에는 대표적으로 SQLMapperORM이 있다. 

 

SQLMapper

: sql을 개발자가 직접 명시, api에는 필드만 mapping

: 대표적으로 Mybatis, jdbc template이 있음

 * Mybatie : 파라미터 맵핑. sql 최적화가 잘 되어있을 때 유용함

 

ORM 

: 객체간의 관계를 바탕으로 sql을 자동으로 작성

: DB 관계를 object에 반영하는 것이 목적

: 대표적으로 JPA가 있음

  * JPA : Java에서 ORM을 사용하기 위해 제공하는 인터페이스. 구현체로 hibernate가 있음.