처음 만난 리덕스 (Redux) 문서


8.2 Ducks Pattern

지금부터는 Ducks Pattern에 대해서 알아보도록 하겠습니다.

Ducks Pattern 역시 앞에서 배운 것처럼 소프트웨어를 설계하는 패턴의 한 종류입니다.
하지만 다른 디자인 패턴들과는 다르게 Ducks Pattern은 Redux를 위한 디자인 패턴이라고 보면 됩니다.

앞에서 Design Pattern은 정해진 조건에서 소프트웨어를 설계할 때 적용가능한 효과적인 방법을 의미한다고 했죠?
Redux에서도 패턴을 적용하지 않은 상태에서는 각자의 방식대로 개발하게 될 수 밖에 없었고, 거기서 발생하는 문제들을 효과적으로 해결하기 위해서 Ducks Pattern이 등장하게 되었습니다.

그래서 지금부터는 Ducks Pattern이 등장하게 된 배경에 대해서 자세히 살펴보도록 하겠습니다.

Redux를 사용하다 보면 수많은 Action과 Action Creator, 그리고 Reducer들을 정의하게 됩니다.
우리는 지금까지 실습을 하면서, 굉장히 규모가 작은 애플리케이션만 만들었기 때문에 Action이나 Reducer의 개수가 몇개 되지 않았습니다.
이처럼 애플리케이션의 규모가 작으면 상관 없겠지만, 애플리케이션의 규모가 커지게 되면 이 수많은 Action과 Reducer들을 포함한 Redux의 복잡도도 올라가게 됩니다.

실제 상용 애플리케이션은 규모가 큰 경우가 대부분이기 때문에 Redux의 복잡도도 함께 커지게 됩니다.
이런 상황에서 Action, Action Creator, Reducer들을 어떤 규칙에 따라 정리해놓지 않으면 나중에는 코드를 짠 사람도 이해하지 못하는 상태가 될 수 있습니다.

그래서 등장하게 된 것이 바로 Ducks Pattern입니다.
Ducks Pattern은 어렵게 생각할 것이 전혀 없고, Redux의 수많은 구성요소들을 정리하는 하나의 규칙이라고 생각하면 됩니다.

Ducks pattern GitHub
https://github.com/erikras/ducks-modular-redux

위 화면은 Ducks Pattern의 GitHub repository입니다.
Ducks Pattern의 공식 repository에서는 Ducks Pattern을 다음과 같이 정의하고 있습니다.

“A proposal for bundling reducers, action types and actions when using Redux.”

여기서 bundling이라는 단어는 묶는다라는 의미를 갖고 있습니다.
그래서 한글로 번역해보면 Redux를 사용할 때 reducer, action type, 그리고 action을 묶는 방법 이라고 할 수 있습니다.

기존에는 Redux의 구성요소들을 묶는 정형화 된 방법이 없었기 때문에 Ducks Pattern을 만든 개발자가 ‘이렇게 하자’ 라고 방법을 제안한 것입니다.
그리고 그 제안이 비슷한 문제를 겪고 있던 수많은 개발자들의 공감을 사게 되면서, 대표적인 Redux Design Pattern으로 자리잡게 된 것입니다.


마지막 업데이트: 2023년 07월 14일 00시 00분

이 문서의 저작권은 이인제(소플)에 있습니다. 무단 전재와 무단 복제를 금합니다.