JPA를 사용하는 이유를 설명해주세요

JPA를 사용하는 이유는 데이터 접근 계층의 반복 코드를 줄이고, 관계형 데이터베이스를 객체 중심으로 다루기 위해서입니다.

반복 코드 감소

JDBC만 사용하면 간단한 CRUD를 작성할 때도 SQL 작성, 파라미터 바인딩, 결과 매핑 같은 보일러플레이트가 많이 생깁니다. JPA는 EntityManager와 엔티티 매핑을 통해 이런 반복 작업을 줄여줍니다.

객체 중심 개발

JPA는 테이블이 아니라 객체를 중심으로 개발할 수 있게 해줍니다. 엔티티와 연관관계를 정의하면, JPA 구현체가 객체와 테이블 사이의 매핑을 처리합니다.

Spring Data JPA와 생산성

Spring Data JPA를 함께 사용하면 Repository 인터페이스만 정의해도 기본 CRUD 메서드를 사용할 수 있습니다. 메서드 이름 기반 쿼리, @Query, Querydsl 연동 등을 통해 데이터 접근 코드를 더 단순하게 만들 수 있습니다.

트랜잭션과 변경 감지

JPA는 트랜잭션 안에서 엔티티 상태 변화를 추적합니다. 이를 통해 직접 update SQL을 작성하지 않아도 변경 감지로 필요한 SQL을 실행할 수 있습니다.

정리

JPA는 반복적인 SQL과 매핑 코드를 줄이고, 객체 모델 중심으로 데이터베이스를 다루기 위해 사용합니다. 다만 실제 실행 SQL과 영속성 컨텍스트 동작을 이해하지 못하면 N+1 문제 같은 성능 문제가 생길 수 있습니다.

CSLOG에서 보기