JPA 영속성 컨텍스트
영속성 컨텍스트의 개념과 역사 영속성 컨텍스트(Persistence Context)는 애플리케이션과 데이터베이스 사이에서 엔티티의 생명주기를 관리하고, 다양한 최적화 기능을 제공하는 JPA의 핵심 개념이다. 이 개념은 2001년 Gavin King이 Hibernate를 개발할 때 Session이라는 이름으로 처음 도입되었다. Hibernate의 Session은 데이터베이스 연결을 추상화하고, 엔티티 객체의 상태를 추적하며, 트랜잭션 안에서 일관된 데이터 뷰를 제공했다. 이후 2006년 JPA 1.0이 Hibernate의 개념을 표준화하면서 영속성 컨텍스트와 EntityManager라는 이름으로 정리되었다. 영속성 컨텍스트는 객체지향 애플리케이션에서 데이터베이스 작업의 복잡성을 줄이기 위해 등장했다. 개발자는 매번 데이터베이스에 직접 쿼리하는 대신, 영속성 컨텍스트라는 중간 계층을 통해 객체 중심으로 비즈니스 로직을 작성할 수 있다. 이 계층은 캐싱, 변경 추적, 지연 쓰기 같은 최적화를 자동으로 처리한다. 영속성 컨텍스트는 Martin Fowler가 정의한 Unit of Work 패턴과 Identity Map 패턴을 구현한 것으로, 비즈니스 트랜잭션 동안 변경된 객체를 추적했다가 트랜잭션 종료 시 한꺼번에 데이터베이스에 반영한다. 또한 동일한 식별자를 가진 엔티티에는 항상 같은 객체 인스턴스를 반환해 일관성을 보장한다. ...