Recording/멋쟁이사자처럼 BE 13기

[멋쟁이사자처럼 부트캠프 TIL 회고] BE 13기_89일차_"프론트엔드 상태관리"

LEFT 2025. 4. 18. 18:24

🦁멋쟁이사자처럼 백엔드 부트캠프 13기 🦁
TIL 회고 - [89]일차

🚀89차 회고에는 프론트엔드에서 리액트의 상태관리에 대한 도구 개념을 학습해보았다.

학습 목표 : 프론트엔드의 상태관리 시 사용할 수 있는 솔루션을 알게되는 것

학습 과정 : 회고를 통해 작성


리액트 상태관리

  • 프론트엔드의 상태 : 렌더에 관련된 값
  • 리액트는 독립적인 컴포넌트 단위로 구성되어있어서
  • useState hook을 사용하여 하나의 컴포넌트에서 상태를 관리하고 props를 통해 부모-자식 간에 상태를 전파함

 

상태관리 툴을 사용해 효율적으로 상태 관리가 가능

  • 상태관리를 위한 툴로는 Context API, Redux, React Query, Zustand

Zustand

  • Zustand란 상태라는 뜻을 가진 독일어
  • 단순화된 Flux 원리를 사용
  • 작고 빠르며 확장 가능한 상태 관리 솔루션
  • Hooks에 기반해 편리한 API를 제공
  • 장점 :
    - 상태가 변경되면 불필요한 리렌더링을 일으키지 않음
    - 보일러플레이트(=최소한의 변경으로 여러 곳에서 재사용)이 거의 없다.

Redux

  • JavaScript 앱의 상태를 중앙에서 관리할 수 있게 도와주는 전역 상태 관리 라이브러리
  • 주로 React와 함께 사용
  • 컴포넌트 간에 상태를 공유 기능
  • 복잡한 앱에서 상태 추적이 어려울때 사용


Redux는 단방향의 데이터 흐름

[ UI ]
   ↓  dispatch(action)
[ Action ]
   ↓
[ Reducer ]
   ↓
[ Store (전역 상태) ]
   ↓
[ UI 업데이트 ]
  • Store : 전역 상태가 저장되는 공간
  • Action : 상태에 어떤 일이 일어났는지 설명하는 객체
  • Reducer : Action에 따라 상태를 어떻게 바꿀지 결정하는 순수 함수
  • Dispatch : Action을 발생시키는 함수
  • Selector : 상태에서 필요한 값을 꺼내는 함수 

전역 스토어

  • Redux, Zustand 모두 "전역 스토어"를 만들기 위한 도구
  • 앱 전체에서 공유되는 데이터 저장소를 의미
  • React의 Context API로도 구현 가능하지만, 복잡도가 커지면 Redux나 Zustand 같은 전문 도구를 사용

❓ Zustand vs Redux

  Zustand Redux
작은 프로젝트 적합 무리가 있음
빠른 개발 빠름 설정이 많이 필요
상태 추적, 디버깅 부족한 기능 강력한 기능
대규모, 팀 협업 제한적임 정형화 되어있음

🚀회고 결과 :

Next.js 프론트엔드 프로젝트를 진행하면서 리액트 상태관리에 대해서도 학습할 수 있는 기회였다.

Zustand와 Redux, 전역스토어와 같은 개념을 회고를 통해 정리할 수 있었다.

향후 계획 : 

- 프론트엔드 프로젝트에 상태관리 적용