Singleton Pattern 인스턴스를 오직 한 개만 제공하는 클래스 시스템 런타임, 환경 세팅에 대한 정보 등, 인스턴스가 여러 개일 때 문제가 생길 수 있는 경우가 있다. 인스턴스를 오직 한 개만 만들어 제공하여야 할 경우에 사용한다. 백엔드 입장에서는 시스템 관련 그리고 공통 환경 세팅 말고는 다른 예시가 많이 없는 것 같다. 프런트 입장...
FactoryMethod 팩토리 메서드 패턴은 부모 클래스에 알려지지 않은 구체 클래스를 생성하는 패턴이며, 자식 클래스가 어떤 객체를 생성할지를 결정하도록 하는 패턴이기도 하다. 부모 클래스 코드에 구체 클래스 이름을 감추기 위한 방법으로도 사용한다. 출처 : 팩토리 메서드 패턴 위키 나의 언어로 팩토리 메서드 패턴은 부모 클래스(Creator...
AbstractFactory 추상 팩토리 패턴은 다양한 구성 요소 별로 '객체의 집합'을 생성해야 할 때 유용하다. 이 패턴을 사용하여 알맞은 객체를 생성할 수 있다. 출처 : 추상 팩토리 패턴 위키 나의 언어로 어떤 클래스(Client)의 멤버 중 알려지지 않은 객체(추상 클래스, Part) 집합을 위한 패턴으로, 알려지지 않은 객체 집합을 채...
Adapter 어댑터 패턴은 클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴으로, 호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래스들이 함께 작동하도록 해준다. 출처: 어댑터 패턴 위키 나의 언어로 기존 코드는 수정하지 않고 기존 코드를 포함하는 Adapter라는 사용자가 원하는 인터페이스를 구현한 클래스를 통해 ...
Bridge 브리지 패턴이란 구현부에서 추상층을 분리하여 각자 독립적으로 변형할 수 있게 하는 패턴이다. 출처 브리지 패턴 위키 구조 위의 다이어그램을 보면 이전의 어댑터 패턴과 유사한 것을 확인할 수 있다. *어댑터 패턴과 다른 점은 Implementor 부분으로 어댑터 패턴에서는 제어할 수 없는 서
Composite 컴포지트 패턴이란 객체들의 관계를 트리 구조로 구성하여 부분-전체 계층을 표현하는 패턴으로, 사용자가 단일 객체와 복합 객체 모두 동일하게 다루도록 한다. 출처: 컴포지트 패턴 위키 ![Composite UML class diagram (fixed).svg](https://upload.wikimedia.org/wikipedia/co...
Decorator 데코레이터 패턴이란 주어진 상황 및 용도에 따라 어떤 객체에 책임을 덧붙이는 패턴으로, 기능 확장이 필요할 때 서브클래싱 대신 쓸 수 있는 유연한 대안이 될 수도 있다. 출처: 데코레이터 패턴 위키 그리고 이는 래퍼(wrapper)라고 불리기도 한다. ![데코레이터 디자인 패턴 구조](https://refactoring.guru/...
Facade 퍼사드는 클래스 라이브러리 같은 어떤 소프트웨어의 다른 커다란 코드 부분에 대한 간략화된 인터페이스를 제공하는 객체이다. 그렇기에 퍼사드는 소프트웨어 라이브러리를 쉽게 사용, 이해할 수 있게 해주며 공통 작업에 대한 간편한 메소드들을 제공해준다. 퍼사드는 라이브러리 바깥쪽의 코드가 라이브러리의 안쪽 코드에 의존하는 일을 감소시켜준다. ...
Iterator 반복자는 컬렉션의 요소들의 기본 표현을 노출하지 않고 그들을 하나씩 순회할 수 있도록 하는 행동 디자인 패턴이다. 출처: Guru 반복자 패턴 img 출처: https://ko.wikipedia.org/wiki/%EB%B0%98%EB%B3%B5%EC%9E%90_%ED%8C%A8%ED%84%B4 이번에는 코드로 확인해