JPA, 자바가 DB와 상호작용하는 기술

35 Isaiah·2025년 6월 20일

스프링부트

목록 보기
3/12
post-thumbnail

JPA란?

Java Persistence API

JPA는 자바가 DB (데이터베이스) 와 상호작용하게 해주는 인터페이스다.

JPA는 자바의 ORM 인터페이스 모음이며 ORM은 DB와 상호작용을 편리하게 해주는 기술이다.

😎 JPA는 반복적인 CRUD(생성/조회/수정/삭제) SQL을 처리해준다. 개발자는 어떤 SQL이 실행될지 생각만하면 된다. 네이티브SQL이란 기능을 통해 어렵거나 성능이 우려될 때 SQL을 직접 작성해도 된다.

이를 위해 JPA에는 영속성 컨텍스트란 개념이 존재한다.

영속성 컨텍스트란?

Persistance Context

영속성 컨텍스트를 잘 설명해둔 글
https://developer111.tistory.com/entry/jpa-%EC%98%81%EC%86%8D%EC%84%B1-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8-%EA%B0%9C%EB%85%90

영속성이란 데이터가 영구히 저장되는 성질 (프로그램이 종료되더라도 사라지지 않는다)
EntityManager (엔티티매니저) 를 통해 관리되며, 애플리케이션과 DB 사이에서 엔티티의 생명주기를 관리한다.

영속성 컨텍스트를 활용하면 CUD 기능을 엔티티매니저 가 관리해준다. 사람들이 JPA를 선택하는 가장 중요한 이유 중 하나다.

영속성 컨텍스트를 통한 데이터 조회 흐름

  1. 클라이언트의 데이터 조회 요청
  2. 엔티티 매니저가 1차캐시를 조회
  3. 1차캐시에 데이터가 없을시 DB 검색
  4. 찾은 데이터를 1차캐시에 저장하고 클라이언트에 반환

한번 1차캐시에 저장된 데이터는 DB 조회 없이 즉각 반환할 수 있다

  1. 클라이언트의 데이터 조회 요청
  2. 엔티티 매니저가 1차캐시를 조회
  3. 1차캐시에 데이터를 확인해 바로 클라이언트에 반환

JPA에서 사용되는 쿼리언어 JPQL
https://velog.io/@rmeos/JPQL-객체지향-쿼리언어

profile
개발자 지망생

0개의 댓글