## 역할
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
