[JPA 프로그래밍 입문]

1 분 소요

머리말

  • JPA = Java Persistene API, JPA는 자바 ORM spec 이다. (즉, JPA는 스펙일 뿐 구현을 제공하지 않음)
  • JPA 사용 시 가장 많이 사용되는 구현체가 하이버네이트이다.
  • ORM (Object-Relational Mapping) : 자바 객체와 DB 테이블 간의 매핑을 처리
  • ORM 사용 이점
    • 개발 비용 감소 : 작성해야할 SQL이 대폭 줄어듦
    • 도메인 중심 모델 설계 시 편리성 : JPA는 밸류 타입이나 상속에 대한 매핑도 지원함

PART 1. 기초

Chapter 1. 들어가며

2.2 JPA의 특징

  • 자바 객체와 DB 테이블 사이의 매핑 설정을 사용해서 자동으로 SQL을 만들어줌
    • 예시) 테이블에 컬럼이 추가 된 경우
      • SQL을 사용했다면… : SQL에 추가된 컬럼을 일일이 추가해줘야 함
      • JPA를 사용했다면… : 매핑 설정만 추가하면 끝!
      • 즉, 상대적으로 유지보수에 유리함
  • 객체를 위한 기능 지원
    • 테이블 컬럼 간의 ‘참조 관계’를 객체 간의 ‘연관’으로 매핑하는 기능 제공
    • 밸류 타입을 위한 매핑 지원
    • 클래스 상속에 대한 매핑 지원
    • 즉, 객체 모델 중심으로 사고하는데 도움을 줌
  • 성능 향상을 위한 기법 제공
    • 즉시 로딩 / 지연 로딩 등을 통해 SQL 직접 사용하는 것과 유사한 성능을 얻을 수 있음
  • (주의) JPA가 항상 정답은 아님
    • DBMS 특화된 기능은 SQL 사용하는게 나음
    • 통계, 집계, 배치 같은 것들은 SQL 사용하는 것이 유리함

영속 컨텍스트와 영속 객체 개요

  • Entity : @Entitiy 어노테이션을 붙인 클래스, DB에 보관하는 대상이 됨
  • 영속 컨텍스트 : JPA는 Entitiy를 영속 컨텍스트(persistence context)로 관리함. 영속 컨텍스트는 JPA가 관리하는 엔티티 객체 집합임
  • 영속 컨텍스트는 응용 프로그램과 DB 사이에 중간 다리 역할을 함
  • 영속 컨텍스트는 세션 (JPA의 Entitiy Manager) 단위로 생김 

// TODO : jyjang - TBD

태그:

카테고리:

업데이트:

댓글남기기