프록시 2

Chapter 08. 프록시와 연관 관계 관리

8.1 프록시(proxy) 프록시(proxy) em.find(): 데이터베이스를 통해 실제 엔티티 객체를 조회한다. em.getReference(): 데이터베이스 조회를 미루는 가짜(프록시) 엔티티 객체 조회한다. 하이버네이트가 라이브러리를 사용해서 가짜 엔티티를 준다. DB에 쿼리가 안 날아가는데 객체가 조회되는 것이다. ex) Member를 조회할 때 Team도 조회해야할까? 상황마다 다르다 어떤 프로젝트의 경우, 멤버만 필요 어떤 프로젝트의 경우는 멤버와 팀 둘다 필요할 수 있다. 이를 "프록시"로 해결 가능하다. 프록시의 특징 실제 클래스를 상속 받았기 때문에 실제 Entity와 겉 모양이 같다. 사용하는 입장에서는 진짜인지 프록시 객체인지 구분하지 않고 사용하도록 한다. 프록시 객체는 실제 객체..

Chapter 09. 빈 스코프(Bean Scope)

9.1 빈 스코프(Bean Scope) Def) 빈 스코프(Bean Scope)란? 지금까지 스프링 빈은 스프링 컨테이너의 시작과 함께 생성되었다가 스프링 컨테이너가 종료될 때까지 유지된다고 살펴봤다. 이것은 빈이 기본적으로 싱글톤 스코프로 생성되기 때문이다. 스코프는 빈이 존재할 수 있는 범위를 뜻한다. 싱글톤: 기본 스코프, 스프링 컨테이너의 시작과 종료 시점까지 유지되는 가장 넓은 범위의 스코프이다. 프로토타입: 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프이다. 웹 관련 스코프 request: 웹 요청이 들어오고 나갈 때까지 유지되는 스코프 session: 웹 세션이 생성되고 종료될 때까지 유지되는 스코프 application: ..