✅ 영속성이란?

졸용·2025년 3월 28일

✅ 영속성이란?

  • ❗프로그램이 종료된 후에도 데이터를 계속 유지하는 것을 말한다.❗

→ 애플리케이션이 실행 중일 때뿐만 아니라, 종료된 이후에도 데이터를 보존하는 기능을 말한다.


✅ 영속성(Persistence) vs 비영속성(Non-Persistence)

✔️ DB, 파일 시스템, 클라우드 저장소 등이 대표적인 영속 저장소



✅ JPA (스프링) 에서의 영속성

JPA에는 영속성 컨텍스트(Persistence Context) 라는 것이 있는데, 요놈이 객체를 영속 상태로 만들어서 DB와 동기화하는 역할을 한다.

JPA에서 객체의 상태 변화를 살펴보면,

  1. 비영속 (New, Transient)

  2. 영속 (Managed)

  3. 준영속 (Detached)

  4. 삭제 (Removed)

➡️ 객체의 상태는 비영속 → 영속 → 준영속 → 삭제 상태로 변한다.


1️⃣ 비영속 (New, Transient)

  • 객체를 단순히 new로 생성한 상태 (아직 DB와 관련 없다)
User user = new User();  // 비영속 상태

2️⃣ 영속 (Managed)

  • EntityManager.persist() 를 호출하면 영속성 컨텍스트가 객체를 관리하고, 필요할 때 DB에 저장한다.
entityManager.persist(user);  // 영속 상태

3️⃣ 준영속 (Detached)

  • entityManager.detach(user); 를 하면 객체가 더 이상 영속성 컨텍스트에서 관리되지 않는다.
entityManager.detach(user);  // 준영속 상태

4️⃣ 삭제 (Removed)

  • entityManager.remove(user); 를 하면 DB에서도 삭제된다.
entityManager.remove(user);  // 삭제 상태
profile
꾸준한 공부만이 답이다

0개의 댓글