본문 바로가기

프로그래밍/Design Pattern

디자인 패턴(Design Pattern)

얼마 전부터 "쉽게 배워 바로 써먹는 디자인 패턴(이호진 지음, 한빛미디어)" 책을 중심으로 디자인 패턴에 대해 공부하고 있는데, 객체 지향 언어에 대한 실용적인 활용을 알 수 있게 되어 좋은 것 같다. 

 

책 소개를 잠깐 하자면, 

패턴에 따라 3개(생성 패턴, 구조 패턴, 행위 패턴)의 파트로 되어 있고, 각각의 파트는 다시 여러 개의 챕터로 이루어져 있다. 각각의 챕터는 하나의 디자인 패턴을 중심으로 전개된다. 여기서 다루는 디자인 패턴은 GoF(Gang of Four)가 제시한 23개의 디자인 패턴을 포함하며, 추가로 Factory가 있다.

(참고로 Factory은 Factory Method와 Abstract Factory으로 구체화된다)

 

책을 읽으면서 좋았던 점은, 각각의 챕터가 완전히 독립적이라는 것이다. 다시 말해, 챕터 순서에 상관없이 읽을 수 있다. 앞에서 설명했던 내용을 반복하는 느낌을 많이 받지만, 이는 나중에 디자인 패턴별로 참고할 때도 좋을 것 같다. 

 

아쉬운 점?은 해당 책의 예제 언어가 PHP로 되어 있다는 점이다. PHP라는 언어를 이 책을 통해 처음 보게 되었는데, 내가 주로 사용하는 언어나 알고 있는 언어와 다른 부분이 좀 있어, 바로 적용하기가 힘들었다. 하지만 PHP 언어에 대한 깊은 지식은 요구하지 않고, 일반적인 객체 지향 언어 수준의 내용만 담고 있어 이해하기는 어렵지 않았다.

(이러한 이유 때문에, 책에 예시와 함께 설명된 디자인 패턴을 Swift로 구현하고 부족하다고 느낀 부분은 추가하면서 디자인 패턴에 대한 이해를 높이고자 한다)

 

앞에서 말했듯이, 디자인 패턴은 크게 3개의 파트로 구분된다. 각각의 파트에 대해 간단하게 살펴보면 다음과 같다. 

  1. 생성 패턴(Creational patterns): 객체를 생성하는 방법에 관련된 패턴이다. 
  2. 구조 패턴(Structural patterns): 객체 지향 프로그래밍의 특징 중에 하나인 상속의 단점을 보완한 객체의 확장 방법에 대한 패턴이다. 
  3. 행동 패턴(Behavioural patterns): 객체의 행위가 어떻게 목적을 수행하는지와 관련된 패턴이다. 

각각의 패턴은 객체 지향 프로그래밍을 함에 있어 발생할 수 있는 문제점을 해결하는 데에 그 목적이 있다. 

 

다음 포스팅부터 각각의 패턴에 해당하는 여러 디자인 패턴에 대해 알아보자. 

 

 

 

 

'프로그래밍 > Design Pattern' 카테고리의 다른 글

생성 패턴 - 싱글톤(Singleton) 1  (0) 2021.07.03
생성 패턴 - 팩토리(Factory)  (0) 2021.07.02