..

Persistence Framework: SQL Mapper vs ORM (JPA/Hibernate)

1. Persistence(영속성)란?

프로그램이 종료되어도 데이터가 사라지지 않고 유지되는 특성을 말합니다. 자바 생태계에서는 이를 위해 파일 시스템이나 관계형 데이터베이스(RDBMS)를 활용하며, 이를 돕는 도구들을 Persistence Framework라고 부릅니다.

2. SQL Mapper (MyBatis 등)

객체와 데이터베이스의 데이터를 개발자가 작성한 SQL로 연결해 주는 방식입니다.

  • 특징: SQL 문을 직접 제어하므로 복잡한 쿼리 처리에 유리하며 SQL 최적화가 수월합니다.
  • 단점: 단순한 조회/저장 작업도 일일이 SQL을 작성해야 하는 번거로움이 있으며, 데이터베이스 제품(DBMS)을 변경할 때 SQL 문법 차이로 인해 코드 수정이 대거 발생할 수 있습니다.

3. ORM (Object-Relational Mapping)

객체와 테이블을 자동으로 매핑해 주어, SQL 작성 없이 자바 코드로 데이터를 조작할 수 있게 해주는 기술입니다.

  • 특징: 비즈니스 로직에만 집중할 수 있어 개발 속도가 빠르고 재사용성이 높습니다. 특정 DBMS에 종속되지 않습니다.
  • 단점: 프로젝트가 매우 복잡해지면 학습 곡선이 높고, 설정을 잘못할 경우 의도치 않은 쿼리가 실행되어 성능 저하가 발생할 수 있습니다.

4. JPA와 Hibernate

  • JPA: 자바 진영에서 정의한 ORM 기술 표준 인터페이스(규격)입니다.
  • Hibernate: JPA라는 규격을 실제로 구현한 가장 대표적인 구현체입니다.

JPA가 “맛있는 떡볶이 레시피”라면, Hibernate는 그 레시피를 보고 실제로 떡볶이를 만들어 파는 “음식점”과 같습니다.