이번 시간에는 JPA 에 대해 본격적으로 설명할 예정.

JPA 란 ?

ORM 이란?

→ 이는 객체와 관계형 데이터베이스를 매핑해준다는 의미로 ORM 이란 걸 쓰게 되면 객체는 객체대로 설계하고, 관계형 데이터베이스 테이블은 관계형 데이터베이스대로 설계할 수 있다. 중간에서 ORM 프레임워크가 패러다임 불일치 등 다른 부분들은 매핑해서 해결해준다는 것.

JPA는 애플리케이션과 JDBC 사이에서 동작

스크린샷 2025-03-21 오후 8.51.42.png

JPA 란 처음부터 쌓아올리는 완전 새로운 기술이 아닌, 결국 우리가 Java Application 에서 DB와 통신하려면 JDBC API 를 써야 하는데, 그것을 원래는 개발자가 직접 JDBC API 를 썼다면 JPA가 대신 쓴다고 생각하면 된다. 여기까지 보면 JDBC Template 이나 Mybatis 와 비슷해보인다. 그런데 큰 차이는 다음에서 발생한다.

JPA 동작 - 저장

image.png

예를 들어 우리가 Member 객체를 저장한다 가정하자. Member 객체를 MemberDAO 에 넘기고 MemberDAO 가 JPA 에게 Member Entity 를 저장해달라 던지기만 하면, JPA 가 알아서 이 회원 객체를 분석하고 Inser SQL 를 다 만들어준 뒤, JDBC API를 사용해 이를 DB Insert Query까지 다 날려준다.