Spring 기초

- Entity

Entity는 JPA가 관리해주는 객체들을 의미하며 @Entity 로 JPA가 관리할 수 있게끔 해주고, @Table, @Column으로 해당하는 DB에 매핑을 시켜주어야 한다.

- 영속성 컨텍스트(Persistence Context)

영속성이란 Entity의 영구성을 보장한다는 개념으로 영속성 컨텍스트에 저장함(EntityManager.persist(entity)) 으로서 Entity를 영속화할 수 있다.

여기서 영속성 컨텍스트란 JPA에서 객체를 효율적으로 관리하기 위한 개념으로. EntityManger가 관리해준다.

Entity의 생명주기는 비영속, 영속, 준영속, 삭제  4가지 상태가 있고 디버깅해서 이캐저캐 하면 살펴볼 수 있다.

- 영속성 컨텍스트의 기능

1. 1차 캐시 : 캐시 기능을 제공한다(DB 조회수 감소). Transaction이 끝나면 다 비워지기 때문에 한 transaction 내에서만 성능이 좋다.

2. 동일성 보장(Identity) : 1차 캐시를 통해 DB row 당 1개의 객체를 보장한다.

3. 쓰기지연 저장소(Actionqueue) : 버퍼링 기능을 제공한다. 쿼리를 보낼 시의 설정을 통해 최적화가 가능하다.

4. 변경 감지(Dirty Checking) : persist되었을 때 최초의 Entity 값을 snapshot 으로 저장하고 flush 시점에 현재 값과 snapshot을 비교한다. 변경사항이 있을 시 쓰기지연 저장소에 update 쿼리를 넣어준다.

알고리즘

- 프로그래머스 : 전력망을 둘로 나누기(Level 2, 완전탐색)

느낀 점

최근에 진행하는 알고리즘 난이도가 낮아서 그런지 스프링 개념 공부보다 알고리즘이 재미있다 ㅎ.

그래도 내가 더 모자란 스프링을 더 열심히! 숙련주차 들어가기 전에 기초 복습하면서 확실히 잡고 들어가자.

'TIL' 카테고리의 다른 글

[23.11.09]  (0) 2023.11.09
[23.11.08]  (0) 2023.11.08
[23.11.06]  (0) 2023.11.06
[23.11.03]  (1) 2023.11.03
[23.11.02]  (0) 2023.11.02

+ Recent posts