React에서의, 전역 상태관리는 왜 필요할까?

박상민·2024년 9월 25일
0

React

목록 보기
1/1

전역 상태 관리의 필요성에 대해 이야기해보겠습니다. React는 컴포넌트 기반의 라이브러리로, 각 컴포넌트는 자신의 상태를 가집니다. 하지만 애플리케이션이 커질수록 상태 관리가 복잡해지기 마련입니다. 이럴 때 전역 상태 관리가 필요해집니다. 전역 상태 관리란, 여러 컴포넌트가 공유하는 상태를 중앙에서 관리하는 방법을 의미합니다. 이를 통해 컴포넌트 간의 데이터 흐름을 간소화하고, 유지보수를 용이하게 할 수 있습니다.

상태 관리의 기본 개념을 이해하는 것이 중요합니다. React에서는 상태(state)와 속성(props)을 통해 데이터가 흐릅니다. 상태는 컴포넌트 내부에서 관리되는 데이터이며, props는 부모 컴포넌트에서 자식 컴포넌트로 전달되는 데이터입니다. 이러한 데이터 흐름은 단방향으로 이루어지며, 부모에서 자식으로만 전달됩니다. 이때, 상태 변경은 반드시 상태변경 함수를 사용해야 합니다. 이 내용은 React와 개발자 간의 정해진 규칙이기 때문에 꼭 지켜야 합니다. 강제로 변경을 시도하면 상태가 갱신되지 않거나 리렌더링이 되지 않습니다.

이제 Props Drilling의 문제점에 대해 살펴보겠습니다. Props Drilling이란, 부모 컴포넌트에서 자식 컴포넌트로 데이터를 전달하기 위해 여러 단계의 컴포넌트를 거치는 과정을 말합니다. 이 과정에서 데이터가 필요한 컴포넌트가 아닌 다른 컴포넌트까지 props를 전달해야 하므로, 코드가 복잡해지고 가독성이 떨어집니다.

와 같은 구조를 보면, 데이터가 여러 단계를 거쳐 전달되는 모습을 확인할 수 있습니다. 이러한 문제를 해결하기 위해 전역 상태 관리가 필요합니다.

Context API는 React에서 전역 상태 관리를 위한 기본적인 방법 중 하나입니다. Context API를 사용하면, 데이터를 중앙에서 관리하고 필요한 컴포넌트에서 직접 접근할 수 있습니다.

에서 보듯이, 데이터가 Container Component에서 Child Components로 직접 전달되는 구조를 통해 Props Drilling 문제를 해결할 수 있습니다. Context API는 간단한 상태 관리에는 유용하지만, 복잡한 애플리케이션에서는 성능 저하가 발생할 수 있습니다.

이제 Redux와 MobX에 대해 알아보겠습니다. Redux는 전역 상태 관리를 위한 가장 인기 있는 라이브러리 중 하나입니다. Redux는 상태를 중앙에서 관리하고, 상태 변경을 위한 액션과 리듀서를 사용하여 상태를 업데이트합니다. 이러한 구조는 상태의 흐름을 명확하게 하고, 디버깅을 용이하게 합니다. 반면, MobX는 상태를 관찰 가능한 객체로 만들어, 상태가 변경될 때 자동으로 UI를 업데이트합니다. MobX는 더 직관적이고 간단한 API를 제공하지만, 상태 관리의 흐름이 Redux보다 덜 명확할 수 있습니다.

Recoil과 Zustand는 최근에 주목받고 있는 상태 관리 라이브러리입니다. Recoil은 React의 상태 관리를 더 쉽게 만들어주는 라이브러리로, atom과 selector를 사용하여 상태를 관리합니다. Zustand는 간단한 API를 제공하며, 상태를 전역적으로 관리할 수 있도록 도와줍니다. 이 두 라이브러리는 각각의 장점이 있으므로, 프로젝트의 요구사항에 따라 선택할 수 있습니다.

상태 관리 라이브러리 비교를 통해 어떤 라이브러리를 선택할지 고민해보아야 합니다. 각 라이브러리는 장단점이 있으며, 프로젝트의 규모와 복잡도에 따라 적합한 라이브러리를 선택하는 것이 중요합니다. 예를 들어, 작은 프로젝트에서는 Context API나 Zustand를 사용하고, 중대형 프로젝트에서는 Redux나 Recoil을 고려할 수 있습니다.

전역 상태 관리의 필요성을 보여주는 이미지입니다. Redux를 사용한 경우와 사용하지 않은 경우의 차이를 잘 보여줍니다.

React 애플리케이션의 구조를 나타내는 플로우차트입니다. 각 컴포넌트 간의 관계를 쉽게 이해할 수 있습니다.

React에서 데이터 흐름을 설명하는 이미지입니다. 데이터가 어떻게 이동하는지를 잘 보여줍니다.

Props Drilling과 Global State Management의 차이를 비교한 이미지입니다. 데이터 흐름의 복잡성을 잘 나타내고 있습니다.

Context API의 구조를 설명하는 이미지입니다. 데이터가 어떻게 전달되는지를 시각적으로 보여줍니다.

#React #전역상태관리 #상태관리 #Redux #MobX #Recoil #Zustand #ContextAPI #PropsDrilling

이런 자료를 참고 했습니다.

[1] velog - [React] 상태관리와 전역상태관리 라이브러리 (https://velog.io/@hyerin0930/React-%EC%83%81%ED%83%9C%EA%B4%80%EB%A6%AC%EC%99%80-%EC%A0%84%EC%97%AD%EC%83%81%ED%83%9C%EA%B4%80%EB%A6%AC-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC)

[2] velog - [React] 전역 상태 관리 (https://velog.io/@zzangzzong/React-%EC%A0%84%EC%97%AD-%EC%83%81%ED%83%9C-%EA%B4%80%EB%A6%AC)

[3] 티스토리 - [React] 전역 상태 관리가 필요한 이유 (https://yukihirahole.tistory.com/155)

[4] Medium · Showmaker - React에서의 전역 상태 관리 1 — Redux, Recoil (https://medium.com/@asdfg9377/react%EC%97%90%EC%84%9C%EC%9D%98-%EC%A0%84%EC%97%AD-%EC%83%81%ED%83%9C-%EA%B4%80%EB%A6%AC-1-redux-recoil-54753a5ff1c4)

profile
I want to become a UX Developer

0개의 댓글