1장. 디자인 패턴 소개
디자인 패턴은 코드를 체계화하기 위한 공통적인 패턴을 제공해 코드를 쉽게 이해하도록 돕고, 다른 개발자와의 의사소통을 원활하게 해준다.
1.2 패턴이란 무엇인가
패턴
이란 소프트웨어 설계에서 반복되는 문제와 주제에 적용할 수 있는 재사용 가능한 템플릿이다.
디자인 패턴이 개발자들에게 유용한 이유는
- 검증되었다.
- 쉽게 재사용할 수 있다.
- 알아보기 쉽다.
- 개발 과정에서 사소한 실수로 인해 생길 수 있는 큰 문제를 방지한다.
- 특정 문제에 국한되지 않은 종합적인 해결책을 제시한다.
- 반복을 피함으로써 전체 코드의 양을 줄일 수 있다.
- 공통된 어휘를 사용하여 의사소통이 원활해진다.
- 인기 있는 디자인 패턴은 커뮤니티의 선순환을 유발한다.
1.3 디자인 패턴의 일상 활용 사례
리액트의 공급자 패턴(Provider Pattern)
- 기존 자바스크립트에서는 루트 컴포넌트에 데이터를 저장한 뒤에 상위에서 하위 컴포넌트로 전달하곤 했다.
- 컴포넌트의 계층 구조가 깊어지고, 중첩이 많아지면 데이터는 프롭 드릴링(prop drilling)을 초래하게 된다.
- 이 경우, 해당 데이터를 사용하는 모든 하위 컴포넌트에 프로퍼티 설정과 전달이 반복되어 유지보수가 어려운 코드가 만들어진다.
- 리액트와 다른 여러 프레임워크는 공급자 패턴을 사용해 프롭 드릴링 문제를 해결한다.
리액트의 Context API
- Context API는 컨텍스트 공급자(Context Provider)를 통해 상태나 데이터를 여러 컴포넌트로 한 번에 전달할 수 있다.
- 공유되는 데이터가 필요한 하위 컴포넌트는 컨텍스트 소비자(Context Consumer)나 useContext 훅을 사용해 쉽게 공급자의 데이터에 접근할 수 있다.
공급자 패턴은 흔히 볼 수 있는 문제를 해결하는 디자인 패턴의 훌륭한 예시이다.