본문 바로가기

개발 공부

JPA 기본 개념과 영속성 컨텍스트

1. JPA(Java Persistence API)

Java 진영에서 ORM 기술 표준으로 사용하는 인터페이스 모음

 

2. ORM(Object Relational Mapping)

Class 객체와 RDB 테이블을 자동으로 매핑 해주고 영속화 함

 

3. JPA를 왜 사용할까

RDB 테이블과 Java 객체는 같지 않다

RDB 테이블 Java 객체 
컬럼을 통해 양방향 연결 가능 객체간 양방향 연결 불가능
고정된 형태의 값을 가지고 있음 유연하게 다양한 데이터 구조 사용가능

 

4. JPA 장점

  1. 추상화
    • 추상 계층을 제공해서 객체를 테이블 형태로 변환해 주기 때문에 SQL 문을 쓰지 않고도 개발이 가능
  2. 생산성
    • 반복되는 CRUD 코드 줄어들어 생산성 증가
  3. 유지보수
    • 데이터 베이스 시스템 변경에도 유연함, 데이터 접근 중심의 로직으로 ERD 의존도 낮추어 유지보수 증가
  4. 보안
    • SQL 인젝션, 쿼리 조작 등 보안 문제에서 자유로움

5. 엔티티 매니저와 엔티티

엔티티 매니저

  • 엔티티들을 관리하는 객체

엔티티

  • DB에서 영속성으로 저장된 데이터를 자바 객체로 매핑해 인스턴스로 존재하는 데이터

6. 영속성 컨텍스트

엔티티를 영구 저장하는 환경, 보통 하나의 엔티티 매니저는 하나의 영속성 컨텍스트를 관리

 

7. 엔티티 라이프 사이클