1 of 9

JPA 자바 프로그래밍

chap 1. JPA 소개

2 of 9

1.1 SQL을 직접 다룰 때 발생하는 문제점

3 of 9

1.1 SQL 을 직접 다룰 때 발생하는 문제점

  1. 엔티티를 신뢰할 수 없다.
    1. SQL 에 모든 것을 의존하는 상황에서 엔티티를 신뢰하고 사용할 수 없다.�(Member나 Team 처럼 비즈니스 요구사항을 모델링한 객체를 엔티티라 한다.)
  2. 진정한 의미의 계층 분할이 어렵다.
    • DAO를 열어서 어떤 SQL 이 실행되고 어떤 객체들이 함께 조회되는지 확인
  3. SQL 에 의존적인 개발을 피하기 어렵다.

4 of 9

1.2 패러다임의 불일치

5 of 9

1.2 패러다임의 불일치

  1. 자바 - 객체지향
    1. 객체 중심
  2. 데이터 - 관계형 데이터베이스
    • 데이터 중심

⇒ JPA 로 패러다임의 불일치 문제를 해결

6 of 9

1.3 JPA 란 무엇인가?

7 of 9

1.3 JPA 란 무엇인가?

  1. JPA 는 자바 진영의 ORM 기술 표준이다.
  2. JPA 는 애플리케이션과 JDBC 사이에서 동작한다.

8 of 9

1.3.2 왜 JPA를 사용해야 하는가?

  1. 생산성
    1. 반복적인 CRUD 용 SQL 을 작성하지 않아도 된다.
  2. 유지보수
    • SQL과 JDBC API 코드를 JPA가 대신 처리해주므로 코드 수가 줄어든다.
  3. 패러다임의 불일치 해결
    • 상속, 연관관계, 객체 그래프 탐색, 비교하기와 같은 패러다임의 불일치 문제를 해결해준다.
  4. 성능
    • 조회시 객체를 재사용한다.
  5. 데이터 접근 추상화와 벤더 독립성
    • 관계형 데이터베이스 마다 사용법이 다른 경우가 많은데 JPA 는 특정 데이터베이스 기술에 종속되지 않는다.�ex) MySQL, Oracle, H2 사용시 크게 변화가 없다.

9 of 9

ORM 에 대한 궁금증과 오해

  1. 학습곡선이 높다고 하던데요?
    1. JPA가 어려운 근본적인 이유는 ORM 이 객체지향관계형 데이터베이스라는 두 기둥 위에 있기 때문이다.