반응형
현대 프론트엔드 개발에서는 저역 상태 관리 도구의 사용이 일반적입니다.
하지만 모든 프로젝트에서 전역 상태 관리가 필요하다고는 생각하지 않습니다.
이 글에서는 전역 상태 관리가 왜 필요한지, 언제 사용하는 것이 적합한지에 대해 소개해보려고 합니다.
1. 전역 상태란? 📖
전역 상태는 앱의 여러 컴포넌트가 공통으로 사용하는 데이터를 의미합니다.
예를 들어
- 로그인된 사용자 정보
- 쇼핑몰의 장바구니 데이터
- 다크 모드와 같은 UI 설정
이러한 데이터는 앱 전반에서 공유되며, 여러 컴포넌트에서 접근하고 수정할 수 있어야 합니다.
2. 전역 상태 관리가 필요한 경우?📖
전역 상태 관리가 필요한지 판단하려면 데이터의 범위와 복잡성을 고려해야 합니다.
데이터가 여러 컴포넌트에서 사용될 때
예) 로그인된 사용자 정보
- 헤더에서 사용자 이름을 표시하고, 마이페이지에서 사용자 데이터를 사용한다면 전역 상태 관리가 유리합니다.
데이터가 여러 컴포넌트에 의해 수정될 때
예) 쇼핑몰의 장바구니
- 제품 상세 페이지에서 상품을 추가하고, 장바구니 페이지에서 확인 및 삭제하는 경우 전역 상태로 관리하는 것이 효율적입니다.
데이터를 지속적으로 동기화해야 할 때
예) 다크 모드 설정
- 사용자가 다크 모드로 전환하면 앱의 모든 페이지에서 즉시 적용되어야 합니다.
3. 전역 상태 관리가 불필요한 경우 📖
전역 상태 관리는 코드의 결합도를 증가시키므로, 반드시 필요한 경우에만 사용하는 것이 좋다고 생각합니다.
특정 컴포넌트에서만 사용되는 데이터
예) 모달의 열림/닫힘
- 모달 컴포넌트 내에서만 사용되므로 전역 상태로 관리할 필요가 없습니다.
데이터가 간단하고 변경이 적을 때
예) 단순한 UI 상태
- 이런 상태는 전역 상태로 관리하면 오히려 코드가 불필요하게 복잡해질 수 있습니다.
4. 전역 상태 관리의 단점 📖
결합도 증가
- 전역 상태는 앱 전체에서 참조되므로, 상태 변경의 책임이 분산 돼 추적과 관리가 어려울 수 있습니다.
유지보수 부담
- 코드의 의존성이 증가하고 신규 개발자나 팀원이 구조를 이해하는 데 더 많은 시간이 필요합니다.
결론 🧐
전역 상태 관리 도구는 개발 효율성을 높이는 데 강력한 도구가 될 수 있지만, 잘못 사용하면 불필요한 복잡성을 초래할 수 있다고 생각합니다.
프로젝트의 요구사항을 신중히 분석하고, 상황에 맞는 도구와 방식을 선택하는 것이 중요하다고 생각합니다.
반응형
'공부 > 상태 관리' 카테고리의 다른 글
Zustand 동작 원리 알아보기 (1) | 2024.09.06 |
---|---|
Zustand 알아보기 (0) | 2024.09.06 |
TanStack Query 알아보기 3 (Query Cancellation, Optimistic Updates, Prefetching, Paginated, Infinite Queries) (0) | 2024.09.06 |
TanStack Query 알아보기 2 (동작 원리) (0) | 2024.09.06 |
TanStack Query 알아보기 1 (기본 사용법) (0) | 2024.09.06 |