OSIV

JIWOO YUN·2023년 10월 4일
0
post-custom-banner

Open Session In View

  • SpringBoot를 만들어서 실행하는 경우 == > OSIV는 default값이 true로 켜져있는 상태로 진행한다.
  • 반환이 되는 시점 -> API 응답이 끝날 때 까지 영속성 컨텍스트와 데이터베이스 커넥션을 유지함.
    • 이 이유때문에 지연로딩이 가능해진 것.
    • 컨트롤러, 뷰에서 지연로딩을 적극 활용 할 수 있게해줌.

단점

  • 너무 오랫동안 데이터베이스 커넥션 리소스를 사용하기 때문에 -> 실시간 트래픽이 중요한 애플리케이션에서는 커넥션이 모자를 수 있다. --> 장애 발생.

OSIV 를 끄는 경우

  • 트랙잭션을 종료할 때 영속성 컨텍스트를 닫고 , 데이터베이스 커넥션도 반환 -> 커넥션 리소스 낭비가 발생하지 않는다.

단점

  • 단, OSIV를 끌 경우 트랜잭션 안에서 모든 지연로딩을 처리해야함. + View Template에서 지연로딩이 발생하지 않음. -> 영속성 컨텍스트를 닫아 놓은 상태기 때문에.

OSIV를 끈 상태에서 좋은 방법 -> Command 와 Query를 분리하는 것

  • 그외에도 좋은 방법은 더 있다고한다.
profile
열심히하자
post-custom-banner

0개의 댓글