태그 목록
전체보기 (187)TIL(86)Java(20)python(9)aws(8)git(7)OOP(5)codesquad(4)library(3)static(3)docker(3)회고(3)http(3)project(3)코드스쿼드(2)Shortcuts(2)array(2)Enum(2)print(2)test(2)List(2)네이버웹툰(2)lambda(2)linux(2)package(1)pass(1)final(1)checkout(1)itertools(1)flush(1)shell(1)Polymorphism(1)merge(1)지역변수(1)rds(1)DNS(1)Thread(1)2021(1)Pull Request(1)process(1)heap(1)CMC(1)Interceptor(1)throws(1)oAuth(1)PORT(1)user data(1)collections(1)input(1)combinations(1)scoup(1)max heap(1)Spring Data JDBC(1)Modifier(1)stdout(1)abstract class(1)throw(1)composition(1)counter(1)abstract(1)SOLID(1)branch(1)JavaScript(1)마스터즈 코스(1)entity(1)Deque(1)dictionary(1)스터디(1)ip(1)tcp(1)socket(1)stage(1)method(1)Algorithms(1)CLASSPATH(1)eclipse(1)eval(1)file(1)inheritance(1)조건문(1)ec2(1)functional programming(1)UDP(1)반복문(1)Nginx(1)filter(1)default(1)reference variable(1)interface(1)config(1)commit(1)permutations(1)heapq(1)함수(1)global(1)mysql(1)CSS(1)html(1)Design Pattern(1)fork(1)Heap Sort(1)script(1)내장 함수(1)전역변수(1)abstract method(1)개발자(1)overloading(1)CDN(1)Overriding(1)socket programming(1)svn(1)super(1)Fetch(1)Inflearn(1)local(1)pull(1)comprehension(1)readline(1)신입(1)신입개발자(1)sorted(1)OSIV(1)Casting(1)VO(1)Database(1)Token(1)IO(1)round(1)inner class(1)remote(1)product(1)calendar(1)vpc(1)Factory Method(1)closure(1)hackathon(1)sys(1)JPA(1)Spring(1)tuple(1)set(1)DTO(1)exception(1)min heap(1)review(1)IntelliJ(1)math(1)bisect(1)import(1)
post-thumbnail

[JPA] OSIV(Open Session In View)

얼마 전 면접에서 "OSIV가 뭔가요?"라는 질문을 받았다. Open Session In View의 약자로 원래는 세션(영속성 컨텍스트)와 트랜잭션의 범위가 같지만, 스프링이 제공하는 OSIV를 사용하면 트랜잭션이 서비스 계층까지만 유지될 때 영속성 컨텍스트는 뷰까지 열어둘 수 있다고 했다. 추가로 트랜잭션 없이 읽기에 대해 설명하며 영속성 컨텍스트는 유지되지만 트랜잭션이 없으므로 엔티티를 조회할 수만 있고, 수정할 수는 없다고 했다. 면접에 나올 줄 전혀 몰랐던 것치고는 잘 대답한 것 같지만 확실히 공부가 필요할 것 같아 영한님 강의와 책을 찾아보았다. OSIV >- Open Session In View 영속성 컨텍스트를 뷰까지 열어둔다는 뜻 → 뷰에서 지연 로딩을 가능하게 해준다. JPA에서는 OEIV(Open EntityManager In View)라고 부른다. Open Session In View의 핵심은 영속성 컨텍스트와 DB 커넥션

2021년 10월 14일
·
9개의 댓글
·