서론

객체지향 프로그래밍은 쉽지 않다. 또한 재사용성을 지닌 소프트웨어를 만드는 것은 더더욱 쉽지 않다.

개발자들이 문제를 해결하면서, 재사용성을 지니면서 효과적으로 유지보수를 할 수 있는 일련의 구조와 이름을 붙인 것이 바로 디자인 패턴이다.

디자인 패턴의 범주

디자인 패턴은 크게 생성, 행동, 구조의 범주로 나뉜다. 1

  • 생성 : 객체 생성이 복잡한 부분을 간소화/캡슐화 한다.
  • 행동 : 다른 객체들과 상호작용하고, 역할을 분담하는 방법을 다룬다.
  • 구조 : 더 큰 구조로 발전할 수 있도록 구성을 사용한다.

디자인 패턴을 학습했을 때의 장점

  • 유지보수성과 확장성을 증가시켜준다. 디자인 패턴을 도입하면 자연스럽게 SOLID원칙도 준수하게 되는 경우가 많다.
  • 개발자와 의사소통이 간결해진다.

패턴 중독

디자인 패턴하면 패턴 중독이란 말이 자주 언급된다. 디자인 패턴을 초기에 배울 때, 불필요하거나 필요성에 비해 과하게 디자인 패턴을 도입하려는 것이다.

디자인 패턴도 일련의 구조나 추상화를 필요로 하기 때문에, 섣불리 디자인 패턴을 도입하면 오버 엔지니어링이 될 수 있다.

우리는 이런 중독에 빠지지 않기 위해 노력해야 한다. 그러기 위해서는 디자인 패턴에 대해 기본적인 학습과 어떤 상황에서 이 패턴을 사용해야 하는지 명확하게 인지해야 한다. 나도 그렇게 노력할 것이다.

참고 자료

  • GoF의 디자인 패턴
  • 헤드퍼스트 디자인 패턴 - 개정판

각주

  1. 헤드 퍼스트 디자인 패턴 p610