TIL_OSIV_241129

2024. 11. 29. 11:59·Spring 단기심화 2기

OSIV (Open-Session-In-View)

  • 영속성 컨텍스트의 생존 범위를 지정하는 옵션
  • true : 영속성 컨텍스트를 뷰까지 열어둔다는 의미
  • false : @Transactional 메서드가 종료되면 영속성 컨텍스트가 종료. 즉, 트랜잭션을 종료할 때 영속성 컨텍스트가 닫히고, 커넥션도 반환

```

각 옵션의 특징과 장단점

true

장점
  • @Transactional을 벗어난 곳(View Template / API Controller)에서 지연 로딩이 가능
    • Lazy Loading(지연 로딩)은 영속성 컨텍스트가 살아있어야 가능하기 때문에
단점
  • DB 커넥션 리소스를 오랫동안 사용(View 까지)하기 때문에 커넥션이 고갈될 수 있다.
    • 대규모, 실시간 애플리케이션에서 성능 저하로 이어질 가능성이 존재
  • 표현 계층에서 엔티티를 수정하게 되면 DB에 반영되지 않음
    • @Transaction 이 벗어난 곳에서 수정한 이후 트랜잭션을 시작하는 계층을 시작한 경우, Dirty Checking이 되기 때문에 데이터가 변동이 될 수 있음
  • DTO 와 같은 클래스가 아닌 Entity 클래스로 반환할 경우, Lazy Loading 지속적을 발생해 성능이 저하됨

false

장점
  • DB Connection 자원의 효율적인 사용
단점
  • View Template에서 지연 로딩 사용 불가
    • Transaction 범위 안에서 지연로딩 관련 초기화를 전부 해줘야 한다.

어떻게 사용해야할까?

true

  • 커넥션이 상대적으로 적게 필요한 관리자 서비스에서 사용
  • 트랜잭션 범위 밖에서 지연로딩을 수행해야하는 경우에 사용

false

  • 대규모, 실시간 애플리케이션 등 DB 커넥션을 효율적으로 사용해야 하는 경우

[ref]
Spring 공식문서1
Spring 공식문서2
OSIV 블로그1
OSIV 블로그2
Baeldung

저작자표시 비영리 변경금지

'Spring 단기심화 2기' 카테고리의 다른 글

TIL_HTTP 메서드의 멱등성_241205  (0) 2024.12.05
TIL_대규모 스트림 처리에서의 데이터 일관성 유지_241205  (0) 2024.12.05
TIL_AOP_241126  (0) 2024.11.26
TIL_@Transactional_241125  (0) 2024.11.25
TIL_Docker-241124  (0) 2024.11.24
'Spring 단기심화 2기' 카테고리의 다른 글
  • TIL_HTTP 메서드의 멱등성_241205
  • TIL_대규모 스트림 처리에서의 데이터 일관성 유지_241205
  • TIL_AOP_241126
  • TIL_@Transactional_241125
l'avenirJun
l'avenirJun
  • l'avenirJun
    오늘도 꾸준히 개발
    l'avenirJun
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 📚 개발자의 서재 N
        • 객체지향의 사실과 오해
        • Good Code, Bad Code
        • 도메인 주도 개발 시작하기 N
      • 🔧 트러블 슈팅
      • Java
      • Spring
      • 운영체제
        • 공룡책 학습
      • 알고리즘
      • GIT
      • 면접 지식
      • Spring 단기심화 2기
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    책임
    모듈화
    DIP
    메시지
    객체지향의 사실과 오해
    타입
    표현 영역
    애그리거트
    캡슐화
    코딩테스트
    애그리거트 루트
    도메인 모델
    specification
    인터페이스
    티스토리챌린지
    책임-주도 설계
    good code bad code
    리포지터리
    매핑 구현
    협력
    객체
    코딩트리조별과제
    역할
    가독성
    도메인 주도 개발 시작하기
    오블완
    유스케이스
    추상화
    코드 계약
    코드트리
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
l'avenirJun
TIL_OSIV_241129
상단으로

티스토리툴바