Files
distribution_erp/src/store/CLAUDE.md
T
chpark 6af863199f feat: 모모유통 유통관리 ERP (Next.js 16) — MOMO 브랜딩 + distribution DB + momo.junggomoa.com
- fito-nextjs 기반으로 재구성
- 로그인: MOMO 로고 + 모모유통 + 유통관리 ERP, 하단에 본사/지사 주소 표시
- 사이드바 상단: MOMO 아이콘 + 모모유통 + 유통관리 ERP
- 파비콘: /src/app/icon.svg (MOMO 그린 배지)
- layout.tsx title: 모모유통 | 유통관리 ERP
- DB: 183.99.177.40:5432/distribution (fito 스키마 import 완료)
- Traefik: Host(momo.junggomoa.com), 컨테이너 momo-erp
2026-04-25 02:44:40 +09:00

1.4 KiB

역할

Zustand 기반 전역 상태 관리. 인증(auth), 메뉴 네비게이션(menu), 테마(theme) 3가지 도메인을 독립적으로 관리하며, 각각 API 호출 및 로컬스토리지 동기화를 수행한다.

주요 파일

  • auth-store.ts — 로그인 사용자 정보 및 인증 상태. GET /api/auth/me로 사용자 조회, POST /api/auth/logout으로 로그아웃 후 /login 리다이렉트.
  • menu-store.ts — 상단/사이드 메뉴 계층 구조 관리. GET /api/menu/top(상단 메뉴), POST /api/menu(사이드 메뉴, body: { MENUOBJID }). 트리 빌드: level === "1" → 부모, 나머지 → 자식(parentObjId로 매칭).
  • theme-store.ts — 테마 전환. 로컬스토리지 키 "plm_theme", 허용 값 "sage" | "blue", DOM data-theme 속성에 적용.

연결 고리

  • auth-store.ts → User 타입 (@/types)
  • menu-store.ts → MenuItem 타입 (@/types), level이 문자열이므로 Number 변환 필수
  • Header 컴포넌트가 3개 store 모두 사용
  • Sidebar 컴포넌트가 menu-store 사용

숨겨진 스펙

  • 로그아웃 리다이렉트 경로 /login 하드코딩
  • 메뉴 API는 POST (GET 아님), body로 MENUOBJID 전달
  • 메뉴 트리 빌드 시 level === "1" (문자열 비교)과 Number(level) < 2 (숫자 비교) 혼용
  • 테마 기본값 "sage", SSR 안전을 위해 typeof window 체크

@MISTAKES.md