본문 바로가기
IT 자격증. 개념 정리/정보처리기사

GoF(Gang of Four) 디자인 패턴 (생구행) - 정보처리기사 핵심 요약 정리

by Kc93 2023. 5. 17.
728x90
반응형

에릭 감마, 리처드 헬름, 랄프 존슨, 존블리시데스가 제안한 디자인 패턴

  • 성 패턴(Creational Pattern)
    • 개념: 객체의 생성과 과정을 캡슐화하여 객체가 변경되어도 프로그램의 구조에 영향을 크게 받지 않도록 하여 프로그램에 유연성을 더해준다.
      1. 팩토리 메소드(Factory method) : 객체를 생성할 때 필요한 인터페이스를 만듭니다. 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정합니다. 어떤 객체를 생성할지를 서브클래스가 결정하도록 하고 책임을 위임하는 패턴
      2. 추상 팩토리(Abstract Factory) : 상세화된 서브클래스를 정의하지 않고도 서로 관련성 있거나 의존적인 여러 객체 그룹을 생성할 때 유용
      3. 빌더(Builder) : 생성 단계를 캡슐화 하여 구축 공정을 동일하게 이용, 생성 절차는 동일하지만 결과는 다르게 만들어주는 패턴
      4. 프로토타입(Prototype) : 원본 개체를 복사하여 새 개체를 생성 할 수 있도록 하는 패턴
      5. 싱글톤(Singleton) : 오직 하나의 객체만을 가지도록 하는 패턴, 불필요한 메모리 낭비 최소화

 


  • 조 패턴(Structural Pattern)
    • 개념 : 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴
      1. 어댑터(Adapter) : 인터페이스가 호환되지 않는 클래스를 함께 사용하도록 하는 패턴, 기존의 클래스를 이용하고 싶지만, 인터페이스가 일치하지 않을 때 사용
      2. 브리지(Bridge) : 구현부에서 추상층을 분리, 각자 독립적으로 확장, 결합도를 낮춘 패턴
      3. 컴포지트(Composite) : 부분-전체 계층을 표현, 개별 객체와 복합 객체를 동일하게 다루도록 하는 패턴
      4. 데코레이터(Decorator) : 소스를 변경하지 않고 기능을 확장하도록 하는 패턴, 다른 객체들을 덧붙이는 방식
      5. 퍼사드(Facade) : 단순화된 하나의 인터페이스를 제공하는 패턴
      6. 플라이웨이트(Flyweight) : 공유를 통하여 많은 유사한 객체들을 효과적으로 지원하는 패턴, 메모리 절약 가능
      7. 프록시(Proxy) : 객체의 대리자를 이용하여 원래 객체의 작업을 대신 처리하는 패턴

 


  • 동 패턴(Behavioral Pattern)
    1. 개념 : 클래스와 객체들이 상호작용하는 방법과 역할을 분담하는 방법을 다루는 패턴
      1. 책임 연쇄(Chain of Responsibility) : 객체들끼리 연결 고리를 만들어 내부적으로 전달하는 패턴
      2. 커맨드(Command) : 요청을 캡슐화 할 수 있다.
      3. 인터프리터(Interpreter) : 언어 규칙 클래스를 이용하는 패턴. 언어의 문법, ex) sql
      4. 이터레이터(Iterator) : 내부 표현은 보여주지 않고, 모든 항목에 순차적으로 접근하는 패턴, 반복
      5. 미디에이터(Mediator) : 객체 간 상호작용을 캡슐화 한 패턴, 중재자, 결합도 감소, 서로서로 통신
      6. 메멘토(Memento) : 객체의 상태 값을 미리 저장해 두었다가 복구하는 패턴
      7. 옵저버(Observer) : 한 객체의 상태 변화가 일어났을 때 그 객체에 의존하는 다른 객체들에게 알리고, 자동으로 내용이 갱신되는 방식, 일대다 의존성 패턴, 모니터링
      8. 스테이트(State) : 객체 내부 상태에 따라서 동일한 동작을 다르게 처리하는 패턴, 다형성
      9. 스트레티지(Strategy) : 다양한 알고리즘을 캡슐화 하여 알고리즘을 교환하여 사용 가능하도록 한 패턴, 전략
      10. 비지터(Visitor) : 객체의 구조와 처리 기능을 분리 시키는 패턴, 캡슐화 위배

 

생구행

 

반응형

반응형

댓글