누군가가 이미 여러분의 문제를 해결해 놓았습니다.
공부해야 할 것이 정말 많은 와중에 디자인 패턴에 관심을 가지게 된 이유는
개발을 하다보면 누구나 만나게 되는 반복적인 문제들이 있는데 이 문제에 대한 해결법들에서 나타나는 규칙성, 말 그대로 '패턴'을 의미한다.
즉 내가 앞으로 겪게 될 문제들을 미리 겪은! 다른 개발자들이 먼저 고민하고 찾아낸 솔루션, 방법론이라고도 할 수 있다.
typical solutions to common problems in software design in object-oriented design
코드를 재사용하는 것과 마찬가지로 경험을 재사용하는 것
객체,
객체들의 관계,
객체들간의 상호작용 방법
올바른 설계를 빠르게 완성할 수 있다.
패턴이라는 '공통의 언어'를 알게 되면 효율적이고 정확하게 커뮤니케이션을 할 수 있다.
context
어떤 맥락에서 이 문제가 발생했는가 (케바케라고 하듯, 어떤 케이스인지에 대한 이해가 필요하다)
problem
패턴이 적용되어 해결해야 할 문제
solve
특정한 상황 context 에서 구조적인 문제 problem 을 해결하는 방식
생성
구조
활동
소프트웨어 디자인 패턴에는 GoF 패턴, 동시성 패턴, 아키택처 패턴 등 여러 종류가 있다.
그 중 내가 공부하고자 하는, 위에서 설명한 '디자인 패턴'은 GoF 가 정의한 패턴들을 의미한다.
🔗 세션자료 https://docs.google.com/presentation/d/1DEt8wMt_tA2oWhR5tLad70scLA7eJl9zc4_JZ2jgzY0/edit?usp=sharing