본문 바로가기

WEB/SpringBoot

2. 스프링부트 기초개념(JPA,ORM,영속성 컨텍스트)

728x90
반응형

JPA(JAVA Persistence API) :

JPA(JAVA Persistence API)는 자바에서 객체-관계 매핑(Object-Relational Mapping, ORM)을 위한 API이다. 이를 통해 개발자는 객체 지향적인 방식으로 데이터베이스를 다룰 수 있다. JPA를 사용하면 개발자는 데이터베이스에 직접 접근하여 CRUD 작업을 수행하는 번거로움을 줄일 수 있다.

 

ORM: 

ORM(Object-Relational Mapping)은 객체 지향 프로그래밍과 관계형 데이터베이스 간의 데이터를 자동으로 변환해주는 프레임워크. ORM을 사용하면 객체를 데이터베이스에 저장하고 조회할 때 SQL 쿼리를 직접 작성하는 것이 아니라 ORM 프레임워크가 대신 처리해 준다. 이를 통해 개발자는 SQL 쿼리를 직접 작성하는 것보다 간단하게 데이터베이스를 다룰 수 있다.

 

영속성 컨텍스트:

영속성 컨텍스트는 JPA가 엔티티(Entity)를 관리하는 논리적인 영역.

이 영역에서 엔티티의 상태 변화를 추적하고, 데이터베이스와의 동기화를 관리.

따라서 영속성 컨텍스트는 엔티티를 조회하거나 수정할 때마다 해당 엔티티를 영속성 컨텍스트에 저장하고, 이후 데이터베이스에 반영할 때까지 관리. 

객체 지향 프로그래밍(OOP)의 관점에서 생각해보면, 영속성 컨텍스트는 객체의 생명주기(Life Cycle)를 관리.

객체는 생성, 수정, 삭제와 같은 상태 변화를 거치며 생명주기가 이루어지는데, 이를 영속성 컨텍스트가 관리함으로써 객체 지향적인 관점에서 데이터베이스와 연동된다. 영속성 컨텍스트는 엔티티를 영구 저장소인 데이터베이스와 관리하기 위해 엔티티의 상태를 추적하고, 필요한 시점에 데이터베이스와 동기화한다.

728x90
반응형