객체지향은 Software Modeling 의 방향을 인간에서 찾는다. 인간의 인식과 물리를 넘는 논리적 개념으로 현상을 분석하고 설명하며 구현한다. 또한 논리적 사고의 영역에서 설계적 효율성과 구현의 문제를 고민하는 분야이기도 하다.
Computer Science 에서 Design Pattern은 단기간에 등장한 것이 아니다.
고수들의 수많은 코딩과 경험에서 공통점을 찾고, 그것을 다듬어 Pattern화를 시키고, 분류 기준을 만들어서 정리한것이 Design Pattern 이다. 물론 우리가 알 지 못하는 더 많은 Pattern 이 존재하며 그런것들은 지금도 연구되어 새로이 논문이 되어 나타난다. 이렇게 효율성에 대해 정제된 결과가 바로 Design Pattern이다.
객체지향은 문명이 발전되어 온 것 처럼 지금도 발전되고 있다. 꾸준히 효율성과 편의성을 찾으며 멈추는 일 또한 없다. 이런 과정에서 Design Pattern이 중요해지는 것은 어찌보면 당연한 일이다. 발전을 위해서는 과거의 복기가 필요하며 과거의 기록에서 Pattern을 찾아내서 정리하고 다듬는 Design Pattern 은 객체지향 프로그램을 좀 더 좋은것으로 유지하기위한 필요요소 일 수 밖에 없다고 생각한다. 정리된 Pattern은 새로운 기능이나 library(Linked List의 구현체등)형태로 나타나는 경우가 있다. 이 때 관련된 이론을 잘 알아둔다면 이러한 것들을 사용하는 데에도 더 도움이 될 것이 아닐까?