Woowatech Youtube

[10분 테코톡] 웨이드의 OSIV

웨이드의 OSIV

발표 대상

  • Hibernate(JPA)를 사용하는 개발자
  • 영속성 컨텍스트 생명 주기에 대해 궁금한 사람

발표 목적

  • Hibernate의 OSIV(OEIV) 개념을 이해하고, 설정 방법을 알린다.
  • 영속성 컨텍스트의 생명 주기를 이해하여 데이터 관리에 도움을 준다.
  • OSIV의 필요성과 함께, 주의점을 공유한다.

Hibernate(JPA)의 OSIV(OEIV) 개념 이해

  • OEIV(Open-Session-In-View)란?
    • 웹 요청과 응답 사이의 영속성 컨텍스트 유지
  • OEIV 설정 방법
    • application.properties 파일에 spring.jpa.open-in-view=true 추가

(Open-In-View = true)일 때 EntityManager(영속성 컨텍스트) 생명 주기

  • 영속성 컨텍스트가 요청 시작부터 끝까지 유지됨
  • 지연 로딩 문제를 해결하고, 레이지 로딩을 가능하게 함

(Open-In-View = false)일 때 EntityManager(영속성 컨텍스트) 생명 주기

  • 영속성 컨텍스트가 요청 처리 후 바로 종료됨
  • 지연 로딩 문제가 발생할 수 있음

왜 OEIV가 필요했을까?

  • 뷰 템플릿 엔진에서 지양되었던 지연 로딩 문제를 해결하기 위해
  • 영속성 컨텍스트의 생명 주기를 관리하고 성능을 향상시키기 위해

무조건 좋은걸까?

  • 처리 시간이 긴 외부 API를 호출할 경우 부담이 될 수 있음
  • OSIV를 적용할 때 주의해야 할 점

True? or False?

  • OSIV를 통해 지연 로딩 문제를 해결할 수 있는가?

고민해볼 점

  • OSIV를 사용할 때, 성능 이슈와 관리적 측면을 고려해야 함

끄으읏