늦은 프로그래밍 이야기

JPA 본문

내일배움캠프/Spring

JPA

한정규 2022. 12. 6. 23:57

JPA

ORM

 - Object Relational Mapping (객체 관계 매핑)

 - 객체는 객체대로 설계, 관계형 데이터베이스는 관계형 데이터베이스대로 설계 후 ORM 프레임워크가 매핑.

 - 패러다임 불일치에서 기인한 문제들과, 반복적이고 번거로운 Application 단에서의 쿼리 작업을 줄여주기 위함.

EJB

 - 과거의 자바 표준 (Entity Bean)

 - 과거의 ORM

 - 문제 : 코드가 지저분하다, API의 복잡성이 높다, 속도가 느리다

 

JPA

 - Java Persistence API

 - 자바 ORM 기술에 대한 표준 명세, 인터페이스의 모음

 

문제해결

 - 쿼리를 자동으로 만들어 준다.

 - Application 계층에서 SQL 의존성을 줄여서 번거로운 작업이 단축된다.

 - 패러다임의 불일치를 해결.

 - 방언도 지원해준다.


JPA 동작 과정

 - JPA는 Java Application과 JDBC 사이에서 동작한다

 - 개발자가 JPA를 사용하면, JPA 내부에서 JDBC API를 사용하여 SQL을 호출하여 DB와 통신한다.

 

저장

 - MemberDAO에서 객체를 저장하고 싶을 때

 - JPA에 Member 객체를 넘긴다.

 - Member 엔티티를 분석한다.

 - INSERT SQL을 생성한다.

 - JDBC API를 사용하여 SQL을 DB에 날린다.

 

조회

 - Member 객체를 조회하고 싶을 때

 - Member의 pk 값을 JPA에 넘긴다.

 - 엔티티의 매핑 정보를 바탕으로 SELECT SQL을 생성한다.

 - JDBC API를 사용하여 SQL을 DB에 날린다.

 - DB로부터 결과를 받아온다.

 - 결과(ResultSet)를 객체에 모두 매핑한다.

 - 쿼리를 JPA가 만들어주기 때문에 Object와 RDB 간의 패러다임 불일치를 해결할 수 있다.


출처: https://gmlwjd9405.github.io/2019/08/04/what-is-jpa.html

 

[JPA] JPA란 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io


 

'내일배움캠프 > Spring' 카테고리의 다른 글

Annotation  (1) 2022.12.21
UnsatisfiedDependencyException 에러 해결  (0) 2022.12.16
Spring MVC  (0) 2022.12.07
Database, SQL  (0) 2022.12.06
Layered Architecture (계층형 구조)  (0) 2022.12.06
Comments