아래 내용은 김영한님의 '자바 ORM 표준 JPA 프로그래밍' 책의 내용을 요약하였습니다.
SQL 반복 작성, 지루하고 비생산적
객체와 관계형 데이터베이스 간의 차이를 중간에서 해결해주는 ORM(Object-Relational Mapping) 프레임워크
JPA(Java Persistence API)는 자바 진영의 ORM 기술 표준
JPA는 질하고 반복적인 CRUD SQL을 알아서 처리하고, 객체 모델링과 관계형 데이터베이스 사이의 차이점을 해결함
또한, 실행 시점에 자동으로 SQL을 만들어서 실행
JPA를 사용하면서 성능에 대한 걱정이 있었지만 대부분 대안이 있음
MySQL -> Oracle 데이터베이스로 변경되어도 JPA 덕분에 코드를 거의 수정하지 않아도 됨
SQL을 직접 다루었다면 데이터베이스 교체는 상상하기 어려움
전자정부 표준 프레임워크의 ORM 기술도 JPA를 사용
개발자는 SQL 매퍼가 아니다.
더 좋은 객체 모델링과 더 많은 테스트를 작성하는 데 우리의 시간을 보내자.
애플리케이션에서 SQL을 직접 다룰 때 발생하는 문제점
- 진정한 의미의 계층 분할이 어렵다.
- 엔티티를 신뢰할 수 없다.
- SQL에 의존적인 개발을 피하기 어렵다.
JPA를 사용하면 개발자가 직접 SQL을 작성하는 것이 아니라 JPA가 제공하는 API를 사용하면 된다.
JPA는 별도의 수정 메소드를 제공하지 않는다. 대신에 객체를 조회해서 값을 변경만 하면 트랜잭션을 커밋할 때 데이터베이스에 적절한 UPDATE SQL이 전달된다.
객체와 관계형 데이터베이스 사이의 패러다임 불일치 문제를 해결해야한다.
- 상속
- 연관관계 -> 참조, 외래키
- 객체 그래프 탐색
- 비교 (동일성 - 주소 값 비교, 동등성 - 내부 값 비교), JPA는 같은 트랜잭션일 때 같은 객체가 조회되는 것을 보장
JPA는 자바 ORM 기술에 대한 API 표준 명세다.
왜 JPA를 사용해야 하는가?
- 생산성
- 유지보수
- 패러다임의 불일치 해결
- 성능
- 데이터 접근 추상화와 벤더 독립성
- 표준
'JPA > 자바 ORM 표준 JPA 프로그래밍' 카테고리의 다른 글
Chap.6 다양한 연관관계 매핑 (0) | 2021.05.23 |
---|---|
Chap.5 연관관계 매핑 기초 (0) | 2021.05.19 |
Chap.4 엔티티 매핑 (0) | 2021.05.17 |
Chap.3 영속성 관리 (0) | 2021.05.10 |
Chap.2 JPA 시작 (0) | 2021.05.10 |