OSIV가 무엇인지만 외웠는지, 아니면 지연 로딩 편의성과 커넥션 점유 사이 트레이드오프를 보고 상황 맞춰 켜고 끄는 판단을 할 수 있는지를 가르는 질문이다.
OSIV는 영속성 컨텍스트를 요청 시작부터 뷰 렌더링 시점까지 열어 두는 옵션이다. 켜두면 트랜잭션이 끝난 뒤에도 표현 계층에서 지연 로딩이 되지만, 그 동안 커넥션을 계속 잡고 있어 트래픽이 늘면 커넥션 풀이 마른다. 스프링 방식은 영속성 컨텍스트만 유지하고 트랜잭션은 서비스에서만 열어 표현 계층의 엔티티 수정 문제를 줄였지만, 커넥션 점유 문제는 여전히 남는다. 결국 OSIV는 켜고 끄는 단순 옵션이 아니라 지연 로딩 편의성과 자원 효율을 같이 보고 결정하는 트레이드오프다.
OSIV를 끄거나 유지한 결정의 근거를 트래픽 특성과 묶어 설명해본 경험이 있다면 판단 기준으로 연결할 수 있다
지연 로딩이 터져서 커넥션 풀이 마르거나 N+1을 만난 적이 있다면 그 경험을 OSIV 설정 근거로 풀어낼 수 있다
조회 전용 API에서 DTO 변환 시점을 어떻게 설계했는지 말할 수 있다면 계층 책임 분리 관점으로 확장된다
데이터소스를 읽기/쓰기로 분리해본 경험이 있다면 OSIV가 왜 문제가 되는지를 구체적으로 풀 수 있다
아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.