JPA 기본 사용법 1 - 영속성 컨텍스트란?

YJ KIM·2022년 7월 30일
1

JPA

목록 보기
1/1

JPA에 대한 지식이 전무한 채로 JPA 활용 강의를 듣고 있는데, 무슨 느낌인지 이해는 가지만 정확한 동작 원인과 매커니즘에 대해 파악하지 못해 정리하며 JPA 강의를 병행하려 한다.

JPA 기본 사용법이라는 포스팅은 대략 7개의 포스팅으로 이루어질 것이며 기본적인 JPA의 사용법에 대해 정리하려 한다!

이번 포스팅은,

🦷 목차

  1. 영속성 컨텍스트의 개념
  2. EntityManagerFactory
  3. EntityManager

이와 같은 순서로 기술된다.

1. 영속성 컨텍스트의 개념

영속성 컨텍스트(Persistence Context)란?

→ Entity를 저장하는 환경으로, application(현재 프로젝트)와 DB 사이에서 Entity를 갖고있는 Context이다.

우리가 JPA를 사용하는 이유는 객체(Entity)와 관계형 DataBase를 연결함으로써 좀 더 객체지향적으로 프로젝트를 구성하기 위함이다. Mybatis를 쓸 때와 달리 SQL문을 개발자가 작성하지 않고도 DB를 조작할 수 있다.

그러한 객체(Entity)를 저장하는 환경이 바로 '영속성 컨텍스트'이다.

예를 들어, 회원 객체를 생성하고 해당 객체를 DB의 회원 table에 저장하려고 하는 상황이 존재한다. 이때 생성된 회원 객체는 1차적으로 영속성 컨텍스트에 저장되며 그 후 2차적으로 DB 회원 table에 insert된다.

2. EntitiyManagerFactory

EntityManagerFactory란?

→ EntityManagerFactory는 EntityManager를 생성하는 객체로 생성 비용이 크다.
생성 비용 때문에 하나의 web application에서 하나의 EntityManagerFactory를 만들어서 공유하는 형태로 사용한다.

EntityManagerFactory는 전체 프로젝트(application)에서 싱글톤 객체로 EntityManager를 생성한다. EntityManager를 생성하는 역할만 하기 때문에 여러 스레드에서 동시 접근이 가능하다.

+) EntityManagerFactory는 hibernate 관련 라이브러리에서 알아서 생성해주는 것 같다.

cmd+shift+f로 검색하니까 관련 내용이 라이브러리에 정의되어 있는 걸 확인할 수 있었다.

3. 그럼 EntityManager는?

EntityManager란?

→ Entity Manager는 말 그대로 Entity를 관리하는 객체로, 위에서 언급한 영속성 컨텍스트와 매핑된다. Entity Manager를 통해 연속성 컨텍스트에 Entity 객체가 저장된다.

이번에는 기본적인 영속성 컨텍스트의 개념과 EntityManagerFactory, EntityManager에 대해 정리해보았다.

profile
모르면 쓰지 말고 쓸 거면 알고 쓰자

0개의 댓글