01장-디자인-패턴-소개
디자인 패턴은 코드를 체계화하기 위한 공통적인 패턴을 제공해 코드를 쉽게 이해하도록 돕고, 다른 개발자와의 의사소통을 원활하게 해줍니다.
1.1 디자인 패턴의 역사
과거 크리스토퍼 알렉산더라는 건축가의 초창기 작품으로 거슬러 올라갑니다. 알렉산더는 특정 디자인 구조를 반복해서 사용하면 최적의 효과를 얻을 수 있다는 사실을 깨달았습니다.
1990년 무렵 소프트웨어 엔지니어들은 알렉산더의 원칙을 담아 디자인 패턴 문서를 작성하였습니다. "GoF의 디자인 패턴" 해당 저서는 개발 분야에서 디자인 패턴에 대한 개념을 발전시켰습니다.
1.2 패턴이란 무엇인가
패턴이란 소프트웨어 설계에서 반복되는 문제와 주제에 적용할 수 있는 재사용 가능한 템플릿을 뜻합니다.
디자인 패턴이 개발자들에게 유용한 이유는 다음과 같습니다.
검증되었다. 패턴은 앞서간 개발자들의 경험과 통찰의 산물입니다. 특정 문제를 해결하기 위해 오랜 시간 검증된 효과적인 접근 방식입니다.
쉽게 재사용할 수 있다. 패턴은 독창적인 솔루션을 제공하며 사용자의 요구에 맞춰 적용할 수도 있습니다.
알아보기 쉽다 공통 표현을 사용하여 광범위한 문제에 대해 정교한 솔류선을 제공할 수 있습니다.
이외에도 선배 개발자들의 개발 경험을 통해 사소한 실수를 방지할 수 있으며, 반복을 피하는 코드를 작성할 수 있고, 인기 있는 디자인 패턴을 작성함으로서 커뮤니티의 선순환을 유발할 수 있습니다.
1.3 디자인 패턴의 일상 활용 사례
리액트를 사용해본 적이 있다면 공급자 패턴을 경험했을 겁니다. 컴포넌트의 계층 구조가 깊어지고, 중첩이 많아지면 데이터는 안쪽 끝까지 들어가게 되어 프롭 드릴링을 초래하게 됩니다.
리액트와 다른 여러 프레임워크는 공급자 패턴을 사용해 이런 프롭스 드릴링 문제를 해결합니다.
context API를 사용하면 컨텍스트 공급자를 통해 상태나 데이터를 여러 컴포넌트로 한 번에 전달할 수 있습니다. 공유되는 컴포넌트에서는 컨텍스트 소비자를 통해 손쉽게 데이터에 접근이 가능합니다.