개요
Spring JPA에는 open-in-view 를 true / false 로 설정할 수 있습니다.
spring.jpa.open-in-view=true // true : default
오늘은 이 기능이 무엇을 하는지 간단하게 알아보도록 합시다.
OSIV
open-in-view(OSIV) 는 영속성 컨텍스트가 데이터베이스 커넥션을 언제 돌려주는지 설정하는 것입니다.
OSIV의 기본전략은 트랜잭션 시작처럼 최초 데이터베이스 커넥션 시작 시점부터 API 응답이 끝날 때 까지 영속성 컨텍스트
와 데이터베이스 커넥션을 유지하는 것입니다. 즉, 트랜잭션이 종료되어도 데이터베이스 커넥션을 유지하는 것인데요.
이 전략은 Controller에서 지연로딩을 통해 데이터를 받아올 수 있다는 장점이 있습니다.
다만, 이 기본전략은 데이터베이스 커넥션을 필요 이상으로 오래 사용하고, 오래 사용하기 때문에 트래픽이 많은 어플리케이션에서는 커넥션이 모자라 문제를 일으킬 수 있다는 것입니다.
spring.jpa.open-in-view=false
따라서 OSIV를 false로 하여 커넥션 반환시점을 트랜잭션 종료시점과 맞추어 사용하는 것이 조금더 나을 수 있습니다.
'FrameWork > JPA' 카테고리의 다른 글
[JPA] default_batch_fetch_size (0) | 2024.11.08 |
---|---|
JPA 스키마 자동 생성 (0) | 2023.11.17 |