Design patterns는 소프트웨어 설계에서 공통적으로 발생하는 문제들에 대해 재사용 가능한 해결책을 의미하는 명사입니다. 이는 특정 코드를 의미하는 것이 아니라, 문제를 해결하는 방식에 대한 일종의 템플릿이나 청사진과 같습니다. 건축가가 건물을 지을 때 검증된 설계 방식을 따르듯, 프로그래머들도 복잡한 시스템을 구축할 때 효율성과 유지보수성을 높이기 위해 이 패턴들을 활용합니다. 1994년 'Gang of Four(GoF)'라 불리는 네 명의 저자가 쓴 책을 통해 널리 알려졌으며, 생성, 구조, 행위 패턴의 세 가지 범주로 나뉩니다. 단순히 기술적인 도구를 넘어 개발자들 사이의 공통된 언어 역할을 하여 의사소통을 원활하게 돕는다는 점이 큰 특징입니다. 초보 개발자에게는 다소 추상적일 수 있으나, 실무에서는 코드의 가독성과 확장성을 확보하기 위한 필수적인 지식으로 간주됩니다. 특정 프로그래밍 언어에 국한되지 않고 객체 지향 프로그래밍 전반에 걸쳐 적용되는 개념입니다.