패스잇
백엔드 개발 · 심화

OSIV(Open Session In View)란 무엇이며, 장단점은 무엇인가요?

힌트 · 영속성 컨텍스트 범위와 지연 로딩, 커넥션 점유 문제를 생각해보세요.

영속성 컨텍스트트랜잭션지연 로딩OSIV성능

모범답안

OSIV는 Open Session In View의 약자로, 영속성 컨텍스트를 뷰 템플릿까지 열어두는 방식입니다. 보통 트랜잭션은 서비스 계층에서 끝나지만, OSIV를 사용하면 뷰에서도 지연 로딩을 사용할 수 있다는 장점이 있습니다.

하지만 OSIV는 커넥션 점유 시간을 늘려 성능 문제를 야기할 수 있고, 뷰에서 데이터를 수정할 가능성이 생겨 예측 못한 side effect가 발생할 수 있습니다. 따라서 읽기 전용으로 사용하거나, 트랜잭션 범위를 신중하게 설정하는 것이 중요합니다. 최근에는 API 기반 개발이 많아지면서 OSIV보다는 DTO를 적극적으로 활용하는 추세입니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 JPA / ORM 면접 질문

← JPA / ORM 면접 질문 전체 보기