관심쟁이 영호

[Spring Boot 기초] ㅣ 영속성 컨텍스트란? 본문

Bank-End/Spring Boot

[Spring Boot 기초] ㅣ 영속성 컨텍스트란?

관심쟁이 영호 2021. 4. 8. 02:40
반응형

Context란?

어떠한 대상에 대한 모든 정보를 가지고 있는 것이 Context다.

 

그럼

영속성 Context란? 영원히 저장해야하는 Context를 말한다.

 

Spring에서의 영속성 Context는 이렇게 이해할 수 있다.

 

자바를 이용해서 데이터를 조회하거나 입력할 때, 직접적으로 DB에 요청하는 것이 아니다.

중간에 영속성 컨텍스트라는 것이 있고,

영속성 컨텍스트에 호출을 하게 되면 영속성 컨텍스트가 DB에 직접가서 받아오거나 입력한다.

 

왜 필요한걸까?

 

1. 트랜잭션을 지켜 "쓰기 지연"을 제공한다.

이 말은 어떠한 값을 입력할 때, Insert가 따로 동작하면 모든 것을 한번에 처리할 수 있도록 도와준다는 말이다.

모종의 이유로 따로 동작하다가 1개는 insert되고, 다른 하나는 insert가 되지 않으면 에러가 발생할 수 있기 때문이다.

 

2. 변경 감지

영속성 컨텍스트 내부의 어떠한 Object 값이 변경이 되면 그것을 자동으로 감지하여 DB까지 변경해준다.

 

3. JAVA와 DB간의 정보 동일성을 보장한다.

 

이렇게 생각할 수 있다.

 

4. 영속성 컨텍스트 지정하는 법

이것은 엔티티 매니저로 관리된다.

EntityManager em = new EntityManager();

이렇게 하게 되면 em 인스턴스에 영속성 컨텍스트를 주입한다.

 

그리고, Member 클래스를 입력하고 싶으면

em.persist(member) 라고 해주면 영속성 컨텍스트에 입력이 된다.

 

Etc. 영속성, 준영속, 불영속으로 나뉠 수 있다.

 

 

300x250
Comments