대규모의 복잡한 단일 페이지 애플리케이션(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만큼 커뮤니티가 활성화되어 있지 않음 |