1장. 디자인 패턴 소개

디자인 패턴은 코드를 체계화하기 위한 공통적인 패턴을 제공해 코드를 쉽게 이해하도록 돕고, 다른 개발자와의 의사소통을 원활하게 해준다.

1.2 패턴이란 무엇인가

패턴이란 소프트웨어 설계에서 반복되는 문제와 주제에 적용할 수 있는 재사용 가능한 템플릿이다.

디자인 패턴이 개발자들에게 유용한 이유는

  • 검증되었다.
  • 쉽게 재사용할 수 있다.
  • 알아보기 쉽다.
  • 개발 과정에서 사소한 실수로 인해 생길 수 있는 큰 문제를 방지한다.
  • 특정 문제에 국한되지 않은 종합적인 해결책을 제시한다.
  • 반복을 피함으로써 전체 코드의 양을 줄일 수 있다.
  • 공통된 어휘를 사용하여 의사소통이 원활해진다.
  • 인기 있는 디자인 패턴은 커뮤니티의 선순환을 유발한다.

1.3 디자인 패턴의 일상 활용 사례

리액트의 공급자 패턴(Provider Pattern)

  • 기존 자바스크립트에서는 루트 컴포넌트에 데이터를 저장한 뒤에 상위에서 하위 컴포넌트로 전달하곤 했다.
  • 컴포넌트의 계층 구조가 깊어지고, 중첩이 많아지면 데이터는 프롭 드릴링(prop drilling)을 초래하게 된다.
  • 이 경우, 해당 데이터를 사용하는 모든 하위 컴포넌트에 프로퍼티 설정과 전달이 반복되어 유지보수가 어려운 코드가 만들어진다.
  • 리액트와 다른 여러 프레임워크는 공급자 패턴을 사용해 프롭 드릴링 문제를 해결한다.

리액트의 Context API

  • Context API는 컨텍스트 공급자(Context Provider)를 통해 상태나 데이터를 여러 컴포넌트로 한 번에 전달할 수 있다.
  • 공유되는 데이터가 필요한 하위 컴포넌트는 컨텍스트 소비자(Context Consumer)나 useContext 훅을 사용해 쉽게 공급자의 데이터에 접근할 수 있다.

공급자 패턴은 흔히 볼 수 있는 문제를 해결하는 디자인 패턴의 훌륭한 예시이다.