728x90
반응형
프록시 패턴(Proxy Pattern)이란?
프록시는 대리인이라는 뜻으로, 무엇인가를 대신 처리하는 의미이다.
일종의 비서라고 생각하면 된다.사장실에 바로 들어가서 사장님을 바로 만나는게 아닌 비서를 통해 사장님을 만나는 개념이라고 생각할 수 있겠다.
어떤 객체를 사용하고자 할 때, 객체를 직접 참조하는 것이 아니라 해당 객체를 대행(대리, proxy)하는 객체를 통해 대상 객체에 접근하는 방식을 사용하면 해당 객체가 메모리에 존재하지 않아도 기본적인 정보를 참조하거나 설정할 수 있고,
실제 객체의 기능이 반드시 필요한 시점까지 객체의 생성을 미룰 수 있다.
프록시 패턴(Proxy Pattern)을 사용하는 이유가 뭘까?
- 객체지향 5원칙 중 하나인 OCP를 지킬 수 있다.
- 객체지향 5원칙 중 하나인 SRP를 지킬 수 있다.
- 유연한 코드를 만들 수 있다.
프록시 패턴(Proxy Pattern) 간단 예제
// 실제 이미지 로딩을 담당하는 클래스
class RealImage {
constructor(private filename: string) {
this.loadImage();
}
private loadImage() {
console.log(`Loading image: ${this.filename}`);
}
display() {
console.log(`Displaying image: ${this.filename}`);
}
}
// 이미지 로딩을 제어하는 프록시 클래스
class ImageProxy {
private realImage: RealImage | null = null;
constructor(private filename: string) {}
display() {
if (!this.realImage) {
// 이미지가 로드되지 않았다면 실제 이미지 로딩 수행
this.realImage = new RealImage(this.filename);
}
this.realImage?.display();
}
}
// 클라이언트 코드
const image1 = new ImageProxy('image1.jpg');
const image2 = new ImageProxy('image2.jpg');
// 이미지 표시 시, 실제 로딩은 필요할 때 수행됨
image1.display();
image2.display();
프록시 패턴(Proxy Pattern)의 장단점
프록시 패턴 장점
- 기존 객체를 수정하지 않고 일련의 로직을 프록시 패턴을 통해 추가할 수 있다.
- 실제 객체를 수행하기 이전에 전처리를 하거나, 기존 객체를 캐싱할 수 있다.
- 기존 객체와 클라이언트의 요청 사이에 위치해 있기 때문에 하나의 방패(보안) 역할을 한다.
프록시 패턴 단점
- 코드의 복잡도가 증가한다.
- 성능이 저하될 수 있다.
728x90
반응형
'개발공부 일지 > 면접' 카테고리의 다른 글
팩토리 패턴(Factory Pattern) (0) | 2023.10.03 |
---|---|
추상 팩토리 패턴 ( Abstract Factory Pattern ) (0) | 2023.10.03 |
빌더 패턴(Builder Pattern) (0) | 2023.10.02 |
CORS는 무엇이고, CORS 에러를 방지하려면 어떻게 해야하나요? (0) | 2023.10.02 |
프로토타입 패턴(Prototype Pattern) (0) | 2023.10.02 |
댓글