[Design Patterns] What are Design Patterns?
디자인 패턴 타입
- Structural design pattern:
- 더 큰 구조를 형성하기 위해서 object들이 어떻게 구성되어야 하는지를 나타내는 디자인 패턴입니다.
- MVC, MVVM, Facade가 이에 해당됩니다.
- Behavioral design pattern:
- object들이 서로 어떻게 상호작용하는지에 대한 디자인 패턴입니다.
- Delegation, Strategy, Observer가 이에 해당됩니다.
- Creational design pattern:
- object들을 어떻게 생성하고, 인스턴트화할지에 대한 디자인 패턴입니다.
- Builder, Singleton, Prototype이 이에 해당됩니다.
디자인 패턴들에 대한 비판
- 디자인 패턴을 남발한다면, 프로젝트가 복잡해질 것입니다.
- 현대 프로그래밍 언어에서 디자인 패턴은 redundant합니다.
- 디자인 패턴은 object-oriented 원칙을 배우기 귀찮아서 배우는 것입니다.
디자인 패턴은 쓸데없다고 하더라…
디자인 패턴의 이점
- 디자인 패턴은 (개발자들간의) common language를 형성합니다.
- 디자인 패턴은 개발자들이 (프로젝트에) onboarding할 때 유리합니다.
- 스파게티 코드 보다는 디자인 패턴으로 채워진 프로젝트가 더 좋은 인상을 줄 수 있습니다.
- 디자인 패턴을 알면 코드 사이의 공통점을 발견할 수 있다.