본문 바로가기

프록시2

JPA - 프록시 - 참조: 자바 ORM 표준 JPA 프로그래밍 - 프록시와 즉시로딩, 지연로딩 객체가 데이터베이스에 저장되어있으면 연관된 객체를 탐색하기 난해하다. JPA 구현체들은 이런 문제 해결을 위해 프록시를 이용한다. 프록시를 이용하면 실제 이용하는 시점에 데이터베이스에서 조회할 수 있다. JPA 에서는 즉시로딩 혹은 지연로딩으로 시점을 정할 수 있다. - 프록시 엔티티를 사용할 때 연관된 엔티티의 사용 유무는 비즈니스 로직에 따라 다르다. @Entity public class Member { @Id @GeneratedValue @Column(name = "USER_ID") private Long id; private String userName; @ManyToOne @JoinColumn(name = "TEAM_.. 2021. 7. 14.
구조 패턴 - 프록시(Proxy) - 참조: GoF의 디자인패턴 - 참조: https://refactoring.guru/design-patterns/proxy - 프록시 패턴 다른이름으로 대리자(Surrogate) 라고도 하며 다른 객체에 대한 접근을 제어하기 위한 역할을 한다. - 문제점 많은 시스템의 리소스를 소비하는 객체가 있다고 가정하자. 해당 객체가 특정 시점이 되면 사용되겠지만 언제나 필요한건 아니다. 이때 흔히 알고 있는 Lazy loading 기법을 사용할 수 있다. 정말 필요한 시점에만 해당 객체를 생성하고, 해당 객체의 모든 클라이언트는 초기화 코드를 수행하면 된다. 하지만 이런 방식으로 구현하면 코드의 중복이 너무 많이 나타난다. 이런 코드를 해당 객체에 직접 넣는 방법도 있지만 만약 해당 클래스가 3rd-party .. 2021. 5. 20.