Interpreter Pattern
인터프리터 패턴 (Interpreter Pattern) 자주 등장하는 문제를 간단한 언어로 재정의하고 재사용하는 패턴이다. 반복되는 문제 패턴을 언어나 문버으로 재정의하고 확장할 수 있다. 패턴 구조 Context: 모든 expression에서 사용하는 공통된 정보를 가진 클래스 AbstractExpression: 인터프리터에서 사...
인터프리터 패턴 (Interpreter Pattern) 자주 등장하는 문제를 간단한 언어로 재정의하고 재사용하는 패턴이다. 반복되는 문제 패턴을 언어나 문버으로 재정의하고 확장할 수 있다. 패턴 구조 Context: 모든 expression에서 사용하는 공통된 정보를 가진 클래스 AbstractExpression: 인터프리터에서 사...
커맨드 패턴 (Command Pattern) 요청을 캡슐화 하여 호출자(invoker)와 수신자(receiver)를 분리하는 패턴이다. 요청 자체 즉, 실행될 기능을 캡슐화하기 때문에 여러 기능이 실행할 수 있는 유연성을 가진다. 어떤 이벤트가 발생했을 때 그 이벤트를 발생시키는 클래스를 변경하지 않고 실행될 기능을 변경할 수 있다. 패턴 구조...
책임 연쇄 패턴 (Chain Of Responsibilities Pattern) 좋은 객체는 한 가지 책임만을 가지고 있다. 이 패턴은 객체의 책임 연결되어 구현한다. 요청을 보내는 쪽과 처리하는 쪽을 분리하는 패턴이며 요청을 처리하는 핸들러가 어떤 구체적인 타입인지 알 필요 없이 즉, 디커플링 된 구조를 가지게 하는 패턴이다. 패턴 구조 ...
프록시(Proxy) 패턴 프록시 패턴은 객체의 대리인 역할을 하는 클래스를 제공해 접근을 제어하거나 기능을 추가할 수 있는 패턴이다. (프록시는 사전적 의미로 대리인) 실제 클래스를 바로 사용하는 대신 프록시 클래스를 통해 간접적으로 접근하며 그 프록시 클래스는 실제 클래스와 같은 인터페이스를 제공하되 중간에 필요한 처리를 수행한다. 초기화 지연...
플라이웨이트(Flyweight) 패턴 객체를 가볍게 만들어 메모리 사용을 줄이는 패턴으로, 주로 굉장히 많은 인스턴스를 생성해야할 때 사용한다. 자주 변하는 속성과 변하지 않는 속성을 분리하고 재사용해 메모리 사용을 줄인다. 플라이웨이트 패턴 구조 FlyweightFactory : 플라이웨이트 객체를 생성하고 관리하는 클래스 Fly...
유투브 채널 이미지 URL 만료 기존 크롤링 된 유투브 영상 데이터를 사용하려니 몇몇 채널 프로필 이미지의 URL이 만료된 것을 확인했다. 유투버들이 채널 이미지를 변경하게 되면서 기존 데이터가 만료된 것으로 보인다. 그래서 youtube data api를 사용하여 만료된 이미지는 새로 크롤링하여 데이터를 정제하려고 한다. 먼저 크롤링한 데이터는...
퍼싸드(Facade) 패턴 퍼싸드란 프랑스어로 ‘건물의 정면’을 뜻한다. 우리가 건물의 정면을 보고 있을 때 그 안의 수도나 전기 등의 설비는 볼 수 없지만, 그것들을 사용할 수 있는 것처럼 퍼싸드 패턴은 복잡한 시스템의 내부를 감추고 단순한 인터페이스로 제공하는 패턴이다. 다시말해 클라이언트가 복잡한 시스템인 프레임워크나 라이브러리를 직접 사용...
데코레이터(Decorator) 패턴 데코레이터 패턴은 기존 코드를 변경하지 않고도 부가 기능을 추가 하는 패턴이다. 데코레이터 패턴 구조 Component : 기존 기능을 뜻하는 인터페이스를 정의한다. ConcreteComponent : 기존 기능을 구현하는 어떤 한 클래스 Decorator : 기존 기능에 추가할 부가 기능을 뜻...
컴포짓(Composite) 패턴 컴포짓 패턴은 객체들을 트리 구조로 구성하여 부분-전체 계층을 표현하는 패턴이다. 즉, 그룹 전체와 개별 객체를 동일하게 처리 할 수 있는 패턴이다. 클라이언트 입장에서 사용하는 객체가 트리의 마지막 오브젝트인지 전체인지 구분하지 않고 사용할 수 있도록 한다. 컴포짓 패턴 구조 Component : 전체...
브릿지(Bridge) 패턴 브릿지 패턴은 추상적인 것과 구체적인 것을 분리하여 서로 독립적으로 수정할 수 있도록 하여 서로 영향을 미치지 않도록 하는 것이다. 브릿지 패턴 구조 Abstraction : 가장 상위의 추상적인 개념을 포함하며 일반적으로 인터페이스나 추상클래스로 정의한다. RefinedAbstraction : 추상화를 확...