OSIV란

한민기·2024년 8월 21일

JPA

목록 보기
5/7

open-in-view은 무슨 설정인가?

OSIV란 무엇인가?

Open Session In View 으로 데이터베이스와의 세션을 웹 요청의 전 과정에 걸쳐 열어 두는 패턴을 말한다.
OSIV는 웹 요청의 시작부터 끝까지 영속성 컨텍스트를 열어 두어, 컨트롤러나 뷰 렌더링 중에도 데이터 베이스를 접근할 수 있게 한다.

true일 때

영속성 컨텍스트가 트랜잭션의 범위를 넘어 레이어까지 살아 있다.

false일 때

트랜잭션이 종료 될 때 영속성 컨텍스트 또한 닫힌다.

그래서 어떻게 설정?

OSIV의 비활성화
최근에는 OSIV를 비활성화하는 것이 권장되는 경우가 많습니다. 서비스 계층에서 모든 데이터를 명확히 로드한 후, 뷰에서는 이미 로드된 데이터를 활용하는 것이 성능 측면에서 더 효율적입니다. OSIV를 비활성화하면 데이터베이스 커넥션이 짧게 유지되어 리소스 사용이 최적화되며, 코드에서의 책임이 명확해지는 장점이 있습니다.

profile
백엔드 개발자

0개의 댓글