2. Spring Boot 기본 개념(JPA, ORM, 지속성 컨텍스트)

자바 퍼시스턴스 API(JPA):

JPA(JAVA Persistence API)는 Java의 ORM(개체 관계형 매핑)용 API입니다. 이를 통해 개발자는 개체 지향 방식으로 데이터베이스와 상호 작용할 수 있습니다. JPA를 사용하면 개발자가 데이터베이스에 직접 액세스하여 CRUD 작업을 수행하는 오버헤드를 줄일 수 있습니다.

ORM:

ORM(Object-Relational Mapping)은 객체 지향 프로그래밍과 관계형 데이터베이스 간에 데이터를 자동으로 변환하는 프레임워크입니다. ORM을 사용하면 데이터베이스에 객체를 저장하고 검색하기 위해 SQL 쿼리를 직접 작성하지 않고 ORM 프레임워크가 객체를 처리합니다. 이를 통해 개발자는 SQL 쿼리를 직접 작성하는 것보다 데이터베이스 작업을 더 쉽게 할 수 있습니다.

지속성 컨텍스트:

지속성 컨텍스트는 JPA가 엔터티를 관리하는 논리적 영역입니다.

이 영역에 있는 엔터티의 상태 변화를 추적하고 데이터베이스와의 동기화를 관리합니다.

따라서 엔터티가 쿼리되거나 변경될 때마다 지속성 컨텍스트는 엔터티를 지속성 컨텍스트에 저장하고 데이터베이스에 반영될 때까지 유지합니다.

OOP(객체 지향 프로그래밍) 관점에서 보면 지속성 컨텍스트는 객체의 수명 주기를 관리합니다.

개체는 개체 지향 관점에서 데이터베이스와 상호 작용하는 지속성 컨텍스트에 의해 관리되는 수명 주기를 달성하기 위해 생성, 수정 및 삭제와 같은 상태 전환을 거칩니다. 퍼시스턴스 컨텍스트는 엔터티의 상태를 추적하여 영구 저장소인 데이터베이스와 관리하고 필요할 때 데이터베이스와 동기화합니다.