디자인패턴 

소프트웨어 설계에서 얻은 세세한 경험들을 기록해 놓도록 하는 것으로 재사용 가능한 객체지향 설계를 만들기 위해 유용한 공통의 설계 구조로부터 중요 요소들을 식별하여 이들에게 적당한 이름을 주고 추상화 한 것