본문 바로가기

DEV

Design Patterns - 1. 디자인 패턴이란

최근에 디자인 패턴에 대해 다시 보고 있는 내용들을 블로그에 정리하여 본다.

 

■ GoF

먼저 GoF(Gang of Four)에 대해 얘기가 필요할 것 같다.

『Design Patterns: Elements of Reusable Object-Oriented Software』 제목의 책이 Addison-Wesley를 통해 1994년에 출판되었다. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides가 같이 썼으며 이 책의 저자 4명을 GoF라 얘기한다. 객체지향 설계 이론과 실천에 있어 중요한 원천이 되는 책이며 이후 프로그래밍 언어 디자인에 대해 막대한 영향을 끼쳤다.

GoF의 디자인 패턴중 많이 알려지고 사용되는 패턴들을 정리해보고자 한다.

 

■ Design Patterns

객체 지향 설계를 하다 보면, 이전과 비슷한 상황에서 사용했던 설계를 재사용하는 경우가 종종 발생한다. 이러한 설계는 특정 상황에 맞는 해결책을 빠르게 찾을 수 있도록 도와준다. 반복적으로 사용되는 설계는 클래스, 객체의 구성, 객체 간 의 메시지 흐름에서 일정 패턴을 갖는다. 각 패턴의 장단점을 통해서 설계를 선택하는데 도움을 얻을 수 있으며, 상황에 맞는 올바른 설계를 더 빠르게 적용할 수 있다.

설계 패턴에 이름을 붙임으로써 시스템의 문서화, 이해, 유지 보수에 도움을 준다. 개발자들끼리 패턴으로 대화를 하면 구조를 쉽게 이해할 수 있다.(나는 이 부분을 이런 패턴을 적용해 개발하고 있다)

GoF에서는 23가지의 디자인 패턴이 있으며, 첫번째, 패턴이 하는 일에 대해 목적(Purpose)으로 구분하고, 두 번째로 compile-time이냐 run-time이냐에 따른 적용 범위(Scope)으로 구분한다.

 

 

 

 

※ 참고 자료

1) https://en.wikipedia.org/wiki/Design_Patterns

2) 『Design Patterns: Elements of Reusable Object-Oriented Software』 (Addison-Wesley, 1994)