얼마 전 면접에서 "OSIV가 뭔가요?"라는 질문을 받았다. Open Session In View의 약자로 원래는 세션(영속성 컨텍스트)와 트랜잭션의 범위가 같지만, 스프링이 제공하는 OSIV를 사용하면 트랜잭션이 서비스 계층까지만 유지될 때 영속성 컨텍스트는 뷰까지 열어둘 수 있다고 했다. 추가로 트랜잭션 없이 읽기에 대해 설명하며 영속성 컨텍스트는 유지되지만 트랜잭션이 없으므로 엔티티를 조회할 수만 있고, 수정할 수는 없다고 했다. 면접에 나올 줄 전혀 몰랐던 것치고는 잘 대답한 것 같지만 확실히 공부가 필요할 것 같아 영한님 강의와 책을 찾아보았다. OSIV >- Open Session In View 영속성 컨텍스트를 뷰까지 열어둔다는 뜻 → 뷰에서 지연 로딩을 가능하게 해준다. JPA에서는 OEIV(Open EntityManager In View)라고 부른다. Open Session In View의 핵심은 영속성 컨텍스트와 DB 커넥션