전체 글9 프록시 패턴(proxy pattern) 프록시 패턴이란? 다양한 상황에서 객체 간 상호작용을 제어하고 향상시키는 데 활용되는 유용한 디자인 패턴 다섯 가지 주요 프록시 유형 원격 프록시(Remote Proxy) 원격에 위치한 객체에 안전하게 접근하기 위한 원격 프록시는 네트워크를 통한 객체 호출을 효율적으로 관리한다. 객체 간의 거리를 극복하여 분산 시스템에서의 효과적인 상호작용을 지원한다. 가상 프록시(Virtual Proxy) 비용이 많이 드는 객체의 생성과 초기화를 최적화하여 성능 향상과 자원 효율성을 촉진시킨다. 필요한 경우에만 객체를 생성하므로 불필요한 작업을 최소화한다. 보호 프록시(Protection Proxy) 객체에 대한 접근을 제어하여 특정 권한이 있는 사용자만이 해당 객체에 접근할 수 있다. 응답 속도를 개선하고 불필요한 .. 2024. 3. 6. 옵저버 패턴(observer pattern) 옵저버 패턴이란? 주체가 어떤 객체(subject)의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 메서드 등을 통하여 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 디자인 패턴 주체란? 객체의 상태 변화를 보고 있는 관찰자이다. 옵저버들이란? 객체의 상태 변화에 따라서 전달되는 메서드 등을 기반으로 변화가 생기는 객체를 의미한다. Java import java.util.ArrayList; import java.util.List; // 주제(Subject) 인터페이스 interface Subject { void registerObserver(Observer observer); void removeObserver(Observer observer); void notifyObservers(); } // 옵.. 2024. 2. 29. 전략 패턴(strategy pattern) 전략 패턴이란? 전략 패턴은 클라이언트가 객체의 특정 행위를 변경하고자 할 때, 해당 행위를 직접 수정하지 않고 외부에서 알고리즘을 캡슐화하여 변경 가능하게 하는 디자인 패턴 Java import java.text.DecimalForamt; import java.util.ArrayList; import java.util.List; // 배송 방식을 나타내는 전략 인터페이스 interface ShippingStrategy { void shipPackage(String packageId); } // 택배 배송 class ExpressShipping implements ShippingStrategy { private String packageName; public ExpressShipping(String pa.. 2024. 2. 27. 싱글톤 패턴(Singleton pattern) 싱글톤 패턴이란? 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴 JavaScript //ex1과 ex2는 다른 인스터를 가진다. const ex1 = { example : devpcmini } const ex2 = { example : devpcmini } console.log(ex1 === ex2); // false /** * Singleton.instance라는 하나의 인스턴스를 가지는 Singleton 클래스를 구현 * ex1과 ex2는 하나의 인스턴스를 가진다. */ class Singleton { constructor() { if (!Singleton.instance) { Singleton.instance = this; } return Singleton.instance; } static g.. 2024. 2. 26. 이전 1 2 3 다음