소프트웨어 디자인패턴(software design pattern)이란? 소프트웨어 공학의 소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다. 소스나 기계 코드로 바뀔 수 있는 완성된 디자인은 아니고 다른 상황에 맞게 사용될 수 있는 문제들을 해결하는 데 쓰이는 서술이나 템플릿이다. 개발자가 애플리케이션이나 시스템을 디자인할 때 공통된 문제들을 해결하는데 쓰이는 형식화된 가장 좋은 관행이다. 디자인 패턴은 설계자들이 올바른 설계를 빨리 만들 수 있도록 도와준다. 기존 환경 내에서 반복적으로 일어나는 문제들을 어떻게 풀어나갈 것인가에 대한 일종의 솔루션 같은 것이다. 「GoF의 디자인패턴」에서는 아래 세 가지로 구분한다. 복잡성, 상세도 및 설계 중인 전체 시스템에..