소프트웨어 설계에 있어 공통된 문제들에 대한 표준적인 해법과 작명법을 제안한 책이다. 이 분야의 사인방(Gang of Four, 줄여 GoF)으로 불리는 에리히 감마(Erich Gamma), 리처드 헬름(Richard Helm), 랄프 존슨(Ralph Johnson), 존 블리시데스(John Vlissides)가 같이 썼다.
출처
위키백과
위의 글에서 알수 있듯이 소프트웨어를 설계하는데 있어 공통된 문제를 해결하는 방법으로 사용되는 코드 작성의 패턴이 있었고 좋은 소프트웨어일 수록 해당 패턴들이 중복되어 나타나는 것을 위 개발자분들이 찾아내어 따로 정리를 해놓은 것이 현재 우리가 공부하는 Design Pattern이 되어있는 것이다.
물론 이런 패턴을 따로 공부하지 않아도 if else for
로만 모든 문제를 해결할 수 있는데? 하는 개발자들도 있을 것이다. 혹은 알고리즘에 자신이 있어서 알고리즘이 문제해결 방법이지! 라고 생각할 수도 있고 하지만 디자인 패턴은 앞에서 말했듯이 좋은 소프트웨어일 수록 자주 보이는 패턴들이다. 그말은 즉 나에게 주어진 새로운 문제는 내 방식대로 해결할 수 있지만 누군가 내 코드를 보았을 때 내 해결방법을 이해하는데 어려움을 겪을 수도 있고 내가 다른 좋은 소프트웨어의 구조를 파악할 때 디자인 패턴이 적용된 소스 부분을 이해하는데 어려움을 겪을 수 있다는 것이다.
Design Pattern을 몰라도 개발할 수 있다. 하지만 Design Pattern을 공부한다면 더 좋은 프로그램의 구조를 생각해낼 수 있고 더 빠르게 프로그램 구조를 이해하는데 도움이 될것이라 생각한다. 또한 Design Pattern은 언어에 제한받는 구조가 아니다. 물론 언어마다 조금씩의 구현의 차이는 있겠지만 기본적인 개념은 동일하다고 생각한다.
그래서 앞으로 Design Pattern에 대해서 공부하고 정리해두려고 한다!