개발 공부
JPA 기본 개념과 영속성 컨텍스트
ljs981026
2025. 2. 25. 23:10
1. JPA(Java Persistence API)
Java 진영에서 ORM 기술 표준으로 사용하는 인터페이스 모음
2. ORM(Object Relational Mapping)
Class 객체와 RDB 테이블을 자동으로 매핑 해주고 영속화 함
3. JPA를 왜 사용할까
RDB 테이블과 Java 객체는 같지 않다
RDB 테이블 | Java 객체 |
컬럼을 통해 양방향 연결 가능 | 객체간 양방향 연결 불가능 |
고정된 형태의 값을 가지고 있음 | 유연하게 다양한 데이터 구조 사용가능 |
4. JPA 장점
- 추상화
- 추상 계층을 제공해서 객체를 테이블 형태로 변환해 주기 때문에 SQL 문을 쓰지 않고도 개발이 가능
- 생산성
- 반복되는 CRUD 코드 줄어들어 생산성 증가
- 유지보수
- 데이터 베이스 시스템 변경에도 유연함, 데이터 접근 중심의 로직으로 ERD 의존도 낮추어 유지보수 증가
- 보안
- SQL 인젝션, 쿼리 조작 등 보안 문제에서 자유로움
5. 엔티티 매니저와 엔티티
엔티티 매니저
- 엔티티들을 관리하는 객체
엔티티
- DB에서 영속성으로 저장된 데이터를 자바 객체로 매핑해 인스턴스로 존재하는 데이터
6. 영속성 컨텍스트
엔티티를 영구 저장하는 환경, 보통 하나의 엔티티 매니저는 하나의 영속성 컨텍스트를 관리
7. 엔티티 라이프 사이클