대규모의 복잡한 단일 페이지 애플리케이션(SPA)을 개발하는 팀의 일원입니다. 애플리케이션은 사용자 인터페이스(UI)가 다이나믹하게 변화하고, 수많은 상태(state)를 관리해야 합니다. 상태 관리와 성능 최적화가 중요시되는 상황입니다. React를 사용하여 이 애플리케이션에서 상태를 관리할 때 Context API, Redux, 그리고 Zustand의 장단점을 설명하시오.
환경
만 제공함. 상태 관리하는 로직은 개발자가 알아서 개발해야함.createContext로 Context를 생성한뒤,
생성된 Context 객체의 provider로 전달해야하는 컴포넌트들의 부모를 감싼다.
provider에는 value를 props로 전달해줌
그리고 상태(데이터)를 사용하는 컴포넌트에서는 useContext로 value에 접근할 수 있게 됨
Context API는 React 컴포넌트 트리 전체에 걸쳐 데이터를 prop drilling 없이 전역적으로 공유할 수 있게 해주는 기능
: 여러 컴포넌트에서 상태를 변경하게 될 경우 어디에서 상태를 변경하게 되어 문제가 발생했는지 찾기가 어려움
즉, 언제 어디서 상태가 업데이트되는지 파악하기 힘듬
Context API | redux | zustand | |
---|---|---|---|
장점 | react에 내장되어 있어 추가 라이브러리 설치가 필요 없음 | 규모가 큰 프로젝트에서 한 곳에서 상태관리하기 용이함 | 간단함 |
단점 | 규모가 큰 프로젝트에서 상태를 관리하는데 복잡해질 수 있음 | 초기 설정이 복잡함 | redux만큼 커뮤니티가 활성화되어 있지 않음 |