Web/Patterns

    Observer Pattern

    이 글은 Patterns.dev 사이트를 참고하여 작성한 시리즈 입니다. Observer Pattern 옵저버블을 사용해 이벤트가 발생할 때 구독자에게 알리기 옵저버 패턴을 사용하면 특정 객체(object)나 옵저버(observer)를 옵저버블(observable)이라 불리는 다른 객체를 구독(subscribe)할 수 있습니다. observable 객체는 일반적으로 3가지 중요한 요소를 포함합니다. observers: 특정 이벤트가 발생할 때마다 알림을 받는 observer 배열 subscribe(): observers에 observer를 추가하는 메소드 unsubscribe(): observers에서 observer를 삭제하는 메소드 notify(): 특정 이벤트가 발생할 때마다 모든 observer..

    Proxy Pattern (JavaScript)

    이 글은 Patterns.dev를 참고하여 작성한 시리즈 입니다. Proxy Pattern 대상 객체에 대한 상호작용 가로채기 및 제어 Proxy 객체를 사용하면 특정 객체와 상호작용을 보다 효과적으로 제어할 수 있습니다. 프록시 객체는 값을 얻거나 설정할 때 등 상호작용할 때의 동작을 설정할 수 있습니다. 일반적으로 프록시는 다른 사람의 대리인을 의미합니다. 상대방과 직접 대화하는 대신, 당신이 대화하려고 했던 사람을 대신할 대리인과 대화합니다. JavaScript에서도 마찬가지 입니다. 원본 객체와 대화하는 대신 Proxy 객체와 대화합니다. -> 원본 객체를 Immutable하게 사용할 수 있습니다. 먼저 yeon 객체를 생성합니다. 저를 나타내는 객체입니다. 이 객체와 직접 상호작용 하는 대신 프..

    Singleton Pattern (JavaScript)

    이 글은 Patterns.dev를 참고하여 작성한 시리즈 입니다. Singleton Pattern 애플리케이션 전체에서 단일 인스턴스 공유 싱글턴 패턴은 한 번의 인스턴스화가 가능한 클래스로 글로벌하게 엑세스할 수 있습니다. 이 단일 클래스는 애플리케이션 전체에 공유할 수 있기 때문에 애플리케이션의 글로벌 상태를 관리하는 데 적합합니다. 먼저 Counter 클래스를 작성해보겠습니다. Counter 클래스는 다음과 같은 메소드를 제공합니다. getInstance: 인스턴스를 반환합니다. getCount: 현재 counter 값을 반환합니다. increment: 카운터를 1 증가시킵니다. decrement: 카운터를 1 감소시킵니다. 위 클래스는 싱글턴의 기준을 충족시키지 못합니다. 싱글턴은 한 번만 인스턴..