[정보처리기사 내용 정리] 4. 소프트웨어 설계 - GoF 디자인 패턴

2023. 4. 18. 15:51정보처리기사/필기

반응형

GoF 디자인 패턴이란 무엇인가?

안녕하세요. 오늘은 정보처리기사 시험에 자주 출제되는 GoF 디자인 패턴에 대해 알아보겠습니다.

 GoF 디자인 패턴이란 Gang of Four(네 명의 저자)라고 불리는 에릭 감마, 리처드 헬름, 랄프 존슨, 존 블리시디스가 저술한 《디자인 패턴: 재사용 가능한 객체 지향 소프트웨어의 요소들》이라는 책에서 소개한 23가지의 디자인 패턴을 말합니다.


디자인 패턴이란 소프트웨어 설계에서 자주 발생하는 문제들에 대해 재사용 가능하고 효율적인 해결책을 제공하는 일종의 설계 템플릿입니다. 

디자인 패턴을 사용하면 코드의 가독성, 재사용성, 유지보수성 등을 향상시킬 수 있으며, 협업 시에도 설계 의도를 명확하게 전달할 수 있습니다.

GoF 디자인 패턴은 크게 생성(Creational), 구조(Structural), 행위(Behavioral)의 세 가지로 분류할 수 있습니다. 각각의 분류와 그에 속하는 패턴들은 다음과 같습니다.

 

 

- 생성 패턴: 객체의 생성과 조합을 캡슐화하여 특정 상황에 맞는 객체를 생성하거나 변경할 수 있도록 하는 패턴입니다. 예를 들면, 싱글톤(Singleton), 팩토리 메서드(Factory Method), 추상 팩토리(Abstract Factory), 빌더(Builder), 프로토타입(Prototype) 등이 있습니다.


- 구조 패턴: 클래스나 객체를 조합하여 더 큰 구조를 만드는 패턴입니다. 예를 들면, 어댑터(Adapter), 브리지(Bridge), 컴포지트(Composite), 데코레이터(Decorator), 퍼사드(Facade), 플라이웨이트(Flyweight), 프록시(Proxy) 등이 있습니다.


- 행위 패턴: 클래스나 객체들이 상호작용하는 방법과 책임을 분배하는 패턴입니다. 예를 들면, 책임 연쇄(Chain of Responsibility), 커맨드(Command), 인터프리터(Interpreter), 이터레이터(Iterator), 미디에이터(Mediator), 메멘토(Memento), 옵서버(Observer), 스테이트(State), 스트래티지(Strategy), 템플릿 메서드(Template Method), 비지터(Visitor) 등이 있습니다.



각각의 패턴들은 자신만의 목적, 적용 상황, 구성 요소, 협력 방식 등을 가지고 있으므로, 상황에 맞게 적절한 패턴을 선택하고 적용하는 것이 중요합니다. GoF 디자인 패턴은 객체 지향 프로그래밍의 핵심 원칙과 개념을 잘 반영하고 있으므로, 이를 이해하고 활용하면 좋은 소프트웨어 설계를 위한 기반을 다질 수 있습니다.

반응형