객체지향 소프트웨어를 설계할 때에는 지금 당장 갖고 있는 문제를 해결하는 것 뿐만 아니라 나중에 생길 수 있는 문제나 추가된 요구사항들도 수용할 수 있도록 일반적이고 포괄적이어야 한다. 이를 위해 SOLID 원칙 등 객체지향적 소프트웨어 설계 방법론을 따라 개발하기 위해 노력한다. 디자인 패턴이란 모듈의 세분화된 역할이나 모듈들 간의 인터페이스 구현 방식을 설계할 때 참조할 수 있는 전형적인 해결 방식을 말한다. 디자인 패턴을 통해 설계 문제, 해결 방법, 적용 시기, 결과 등을 알 수 있다. Gof Design Pattern [Gof Design Pattern] 은 Gof(Gang of four) 라는 Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides..