ultra_dev
2.6 TIL 본문
최종프로젝트 시작
3주동안 MVP 구현 + 2주동안 피드백+보완 총 5주 작업
잘 할 수 있으려나.. 하고싶은 건 많지만 실력이 안따라줘서 아쉽다.
일단 최선을 다해봐야겠다!
📌fetch-join
대상 Entity와 Fetch join이 걸려있는 Entity를 포함한 컬럼 함께 SELECT
N+1 문제 해결. 페치타입 eager와는 다름(얘는 엔티티만 먼저 조회 후 페치타입 확인해서 eager면 그 뒤에 조회하는 느낌)
fetch-join은 처음부터 한번에 조회
but
페이징 기능에 문제 생김
-> 배치 사이즈로 해결가능?
----->추후 자세히 알아봐야겠다.
📌Open-In-View
true일 경우 영속성 컨텍스트가 트랜잭션 범위를 넘어선 레이어까지 살아있다
false일 경우 트랜잭션을 종료할 때 영속성 컨텍스트 또한 닫힌다.
- OSIV가 true
- 사용자에게 응답 또는 view가 렌더링 될 때까지 영속성컨텍스트를 유지한다.
- OSIV가 false
- Transaction이 끝나면 영속성컨텍스트 또한 닫힌다.
너무나도 당연하게 OSIV를 true로 두는 게 좋아보이지만! 단점이 존재한다.
영속성 컨텍스트를 유지한다는 건, DB Connection 또한 계속 가지고 있다는 뜻이다.
실시간 트래픽이 중요한 어플리케이션에서는 DB Connection이 모자를 수 있다. 성능이 중요하다면 OSIV는 false로 설정하자.
Comments