CS/디자인패턴
[Design Pattern] 디자인 패턴 분류
치킨하기위해먹는코딩
2025. 2. 11. 00:51
출처 : https://unity.com/kr/resources/level-up-your-code-with-game-programming-patterns
출처 : https://www.hanbit.co.kr/channel/category/category_view.html?cms_code=CMS8616098823
출처 : https://refactoring.guru/ko/design-patterns
정의
소프트웨어 설계 과정에서 자주 발생하는 문제들에 대한 일반적인 해결책
분류
- 생성 패턴(Creational) : 객체 생성에 관련된 패턴으로, 객체의 생성과 조합을 캡슐화하여 객체 생성에 유연성을 제공하는 패턴
(추상팩토리, 빌더, 팩토리메서드, 프로토타입, 싱글턴) - 구조 패턴(Structural) : 구조를 유연하고 효율적으로 유지하면서 객체와 클래스를 더 큰 구조로 조합하는 방법의 패턴
(어댑터, 브리지, 컴퍼지트, 데커레이터, 퍼사드, 플라이웨이트, 프록시) - 행동 패턴(Behavioral) : 객체 간의 효과적인 의사소통과 책임을 할당하는 패턴
(책임 연쇄, 커맨드, 인터프리터, 이터레이터, 미디에이터, 메멘토, 옵저버, 상태, 전략, 템플릿 메서드, 비지터)
왜 패턴을 배워야 할까?
- 모르고 프로그래밍을 해도 상관없다. 다만, 소프트웨어 설계에서 일반적인 문제들에 대해 시도되고 검증된 해결책들을 모은 것이기 때문에, 시간 단축 및 효율성이 극대화된다. 뿐만 아니라, 협업에 있어서도 싱글턴으로 구현하라는 말을 들으면 무슨 말인지 알아들을 수 있듯이 말이다.
- 그렇다고해서 디자인 패턴을 맹신하지 마라. 어떤 것이든 디자인패턴으로 적용하려들수록 효율이 떨어지기 때문이다.
"망치만 있으면 모든 것이 못처럼 보입니다."