본문 바로가기
framework_library/react

코드디벨럽3

by 죄니안죄니 2026. 1. 11.
 

그럼 이 App에서 Redux가 필요한 순간은 언제인가

“편해서”가 아니라 “안 쓰면 틀려지는 순간”

지금 구조를 보면 솔직히 말해 Redux는 아직 필요 없다.
Zustand + 로컬 상태로도 충분히 예측 가능하고 안정적이다.

그럼에도 불구하고 Redux가 등장해야 하는 분기점은 명확하다.
아래는 **이 App 코드 기준으로 “여기부터는 Redux를 고민해야 한다”**는 실제 트리거들이다.


1️⃣ 상태가 “UI 편의”를 넘어 업무 규칙이 되는 순간

현재 상태 (Redux 불필요)

  • 탭 열림/닫힘
  • 메뉴 선택
  • 팝업 표시
  • 로그인 여부

이건 전부 UI 상태다.


Redux 필요 신호 ①

“이 상태가 바뀌는 순서가
업무 규칙으로 중요해졌다”

예시 (지금 코드에서 확장될 경우)

1. 메뉴 접근
2. 권한 확인
3. 승인 상태 조회
4. 승인 안 됐으면 접근 차단
5. 감사 로그 기록

이제 상태는:

  • 단순 값 ❌
  • 워크플로우

👉 Redux 후보


2️⃣ “누가 / 언제 / 왜”를 기록해야 할 때

Zustand까지는 보통 이런 질문에 약하다.

“이 메뉴가 왜 안 보였죠?”
“누가 탭을 닫았나요?”
“어제는 됐는데 오늘은 왜 안 되죠?”

Redux 필요 신호 ②

상태 변경 이력이 문제 분석의 핵심이 되는 순간

Redux가 강제하는 구조

ACTION: MENU_OPEN_REQUEST
ACTION: MENU_OPEN_DENIED (ROLE_MISSING)
ACTION: AUDIT_LOG_WRITTEN

👉 DevTools 타임라인 = 설명서


3️⃣ 메뉴 / 권한 / 라우팅이 정책이 될 때

지금은 메뉴가 단순 필터다.

filterMenus(allMenus, isMobile)

Redux가 필요한 시점은 이럴 때다.

Redux 필요 신호 ③

  • 메뉴 노출 규칙이 복잡해짐
  • 권한, 조직, 계약, 상태가 얽힘
  • “조건이 하나라도 바뀌면 결과가 달라짐”
 
if (ROLE_ADMIN && DEPT === 'HQ' && CONTRACT_ACTIVE)

이건 더 이상 UI 필터가 아니다.

👉 정책 엔진에 가까워짐 → Redux


4️⃣ 서버 상태와 클라이언트 상태가 얽히기 시작할 때

지금 구조는 깔끔하다.

  • 서버 → 데이터
  • 클라이언트 → UI

Redux 필요 신호 ④

“이 상태는 서버 값이면서
클라이언트에서도 변경된다”

예:

  • 승인 대기 → 승인 완료
  • 임시 저장 → 확정
  • 편집 중 → 제출 완료 → 반려

이건 상태 기계(state machine) 다.

Redux는 이걸 표현하는 데 특화돼 있다.


5️⃣ 팀 규모가 커지고 “규칙 통일”이 필요할 때

이건 기술 문제가 아니라 조직 문제다.

Redux 필요 신호 ⑤

  • 개발자 5명 이상
  • 상태 변경 규칙이 제각각
  • 코드 리뷰에서 “왜 여기서 바뀌죠?” 반복

Redux는 불편하지만 이런 걸 강제한다.

상태 변경은 반드시
Action → Reducer 경로를 거친다

👉 커뮤니케이션 비용 감소


6️⃣ 이 App 기준 “Redux 필요/불필요” 명확한 선

❌ Redux 불필요 (현재)

  • 인증
  • 메뉴 로딩
  • 탭 UI
  • 팝업
  • 모바일/PC 분기

⭕ Redux 필요해지는 순간

  • 메뉴 접근 정책이 규칙이 될 때
  • 권한/조직/상태가 얽힐 때
  • 승인·워크플로우·감사 요구 등장
  • 상태 변경 이력 자체가 중요해질 때

7️⃣ 중요한 오해 하나 정리

“앱이 커지면 Redux 써야 하는 거 아냐?”

❌ 아니다.

정확한 문장은 이거다.

“앱의 ‘상태 의미’가 커지면 Redux가 필요해진다”

UI가 커지는 건
Redux 이유가 아니다.


8️⃣ 최종 결론 (이 App에 딱 맞는 문장)

이 문장으로 Redux 판단을 끝내도 된다.

이 App에서 Redux는
‘전역 상태가 많아질 때’가 아니라
‘상태가 규칙과 책임을 갖기 시작할 때’ 등장한다

지금 구조는

  • Zustand (auth)
  • App 로컬 (shell UI)
  • Page 로컬 (화면 상태)

아주 건강하다.

Redux는
지금 당장 도입하면 과설계이고,
나중에 도입해도 늦지 않다.


여기까지 오면
React 상태 설계에 대해
“왜 이걸 쓰는지”를 설명할 수 있는 단계다.

다음으로 이어가면 딱 좋은 주제는 둘 중 하나다:

  • 👉 “이 App을 Redux로 바꾼다면 최소 구조는?”
  • 👉 “Context + Zustand + Redux를 같이 쓰는 구조는 언제 필요한가?”

원하는 방향 하나만 고르면 거기서 끝까지 정리해줄게.

'framework_library > react' 카테고리의 다른 글

컴포넌트의 유형  (0) 2026.01.23
코드디벨럽2  (0) 2026.01.10
코드 디벨럽  (0) 2026.01.10
React 소스 적용  (0) 2026.01.10
Redux는 왜 아직도 쓰이는가  (0) 2026.01.10

댓글