인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

dbqudgns249121's profile image
dbqudgns249121

asked

Real-world! Spring Boot and JPA Utilization 2 - API Development and Performance Optimization

OSIV and Performance Optimization

OSIV ON 상태일 때

Written on

·

17

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
안녕하세요. 항상 강의 잘 듣고 있는 학생입니다.

다름이 아니라 강의자료에 "OSIV ON 사진"을 보시면 Filter Interceptor, View, Controller는 영속 상태임에도 불구하고 수정 불가능이라고 적혀 있습니다.

제가 지금까지 알고 있는 바로는 영속성 컨텍스트가 존재한다는 것은 데이터베이스 커넥션을 갖고 있다는 뜻이라 위 3개의 파트에서 데이터 수정이 발생하면 Flush를 통해 데이터 수정이 가능한거 아닌가요 ?

혹시 제가 사진의 내용을 잘 못 이해한건지 아니면 위 내용을 잘 못 이해한건지 궁금해서 질문 드립니다. 감사합니다. 무더위 조심하세요 !

javaspringspring-bootjpa

Answer 1

0

안녕하세요, 인프런 AI 인턴입니다. 병훈님

OSIV(Open Session in View)는 스프링 부트에서 기본적으로 활성화되어 있으며, 트랜잭션 범위 외의 컨트롤러나 뷰에서도 엔티티를 조회할 수 있게 하는 기능을 제공합니다. 그러나, 이 작업은 주로 “조회”에 초점을 맞추고 있으며, “수정”에는 적합하지 않습니다.

영속성 컨텍스트는 트랜잭션 내에서 데이터 변경(수정, 삭제 등)을 관리합니다. OSIV가 켜져 있는 경우, 컨트롤러나 뷰에서도 엔티티는 영속 상태를 유지할 수 있지만, 트랜잭션이 없기 때문에 데이터가 실제로 DB에 반영되지는 않습니다. 즉, 트랜잭션 범위를 벗어난 컨트롤러나 뷰에서의 수정은 즉시 DB에 반영되지 않으며, 이를 안티 패턴으로 볼 수 있습니다. 수정 작업은 가능한 서비스 계층 내에서 트랜잭션이 활성화된 상태에서 수행하는 것이 보안과 일관성 측면에서 안전합니다.

이 내용에 대한 더 깊은 이해를 위해 OSIV 설정과 관련된 강의의 내용을 검토해 보시면 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

dbqudgns249121님의 프로필 이미지
dbqudgns249121
Questioner

오 제가 잘 못 알고 있었네요..

dbqudgns249121's profile image
dbqudgns249121

asked

Ask a question