디자인 패턴은 소프트웨어 설계에서 반복되는 문제를 다루는 공통 언어다. 객체와 모듈의 책임을 어떻게 나누고, 인터페이스를 어떤 방식으로 연결할지에 대한 판단을 정리해 주는 설계 도구로 볼 수 있다.[1]
1. 개요
2. 정의와 목적
3. 아키텍처 스타일과의 차이점
소프트웨어 아키텍처는 시스템 전체의 큰 구조를 다루고, 아키텍처 패턴은 그 구조를 잡는 상위 수준의 반복 해법이다.[4] 반면 디자인 패턴은 클래스와 객체 수준에서 반복되는 설계 문제를 해결하는 데 더 가깝다.
따라서 아키텍처가 시스템의 틀을 정한다면, 디자인 패턴은 그 틀 안에서 세부 동작을 다듬는 도구라고 볼 수 있다. 두 개념은 경쟁 관계가 아니라 다른 추상화 수준에서 함께 쓰이는 개념이며, 대형 시스템일수록 이 구분이 더 중요해진다.[4][5]
4. GoF 디자인 패턴
5. 활용과 한계
6. 같이 보기
다음 문서는 디자인 패턴을 이해할 때 함께 보면 좋다.[4]