Files
sam-docs/dev/TODO.md
권혁성 db63fcff85 refactor: [docs] 팀별 폴더 구조 재편 (공유/개발/프론트/기획)
- 개발팀 전용 폴더 dev/ 생성 (standards, guides, quickstart, changes, deploys, data, history, dev_plans 이동)
- 프론트엔드 전용 폴더 frontend/ 생성 (api/ → frontend/api-specs/)
- 기획팀 폴더 requests/ 생성
- plans/ → dev/dev_plans/ 이름 변경
- README.md 신규 (사람용 안내), INDEX.md 재작성 (Claude Code용)
- resources.md 신규 (노션 링크용, assets/brochure 이관 예정)
- CURRENT_WORKS.md 삭제, TODO.md → dev/ 이동
- 전체 참조 경로 업데이트

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 16:46:03 +09:00

151 lines
3.7 KiB
Markdown

# SAM Project TODO
> **마지막 업데이트**: 2025-12-21
---
## 🔴 긴급 (보안/필수)
### [TODO-001] Settings 권한 관리 localStorage → API 전환
**발견일**: 2025-12-20
**우선순위**: 🔴 긴급
**카테고리**: 보안
**현재 상태**:
- 권한 관리가 `localStorage`에 저장됨
- 파일: `react/src/components/settings/PermissionManagement/index.tsx`
- 키: `buddy_permissions`
**문제점**:
| 문제 | 설명 |
|------|------|
| 클라이언트 저장 | 권한이 브라우저에만 저장됨 |
| 조작 가능 | DevTools에서 누구나 수정 가능 |
| 서버 미검증 | 서버에서 권한 검증 안 함 |
| 세션 비공유 | 다른 브라우저/기기에서 권한 없음 |
**해결 방안**:
```
현재: localStorage → 브라우저에 저장
개선: API 호출 → DB에 저장 → 서버에서 검증
필요 API:
- GET /api/v1/roles
- POST /api/v1/roles
- PUT /api/v1/roles/{id}/permissions
- GET /api/v1/permissions
```
**관련 문서**:
- `docs/projects/api-integration/phase-3-api-mapping/gap-analysis.md`
---
## 🟡 중요 (기능 완성)
### [TODO-002] Mock 데이터 → API 연동 전환
**발견일**: 2025-12-20
**우선순위**: 🟡 중요
**카테고리**: 기능 개발
**현재 상태**:
- 109개 React 페이지 중 95개 (87.2%)가 Mock 데이터 사용
- `generateMockData()` 함수 패턴
**영향 모듈**:
| 모듈 | 페이지 수 | 상태 |
|------|----------|------|
| Accounting | 17 | 🆕 Mock |
| HR | 9 | 🆕 Mock |
| Board | 6 | 🆕 Mock |
| Approval | 4 | 🆕 Mock |
| Settings | 10 | 🆕 Mock |
| Dashboard | 1 | ⏳ 미구현 |
| Reports | 2 | 🆕 Mock |
| Customer Center | 6 | 🆕 Mock |
| Production | 4 | 🆕 Mock |
| Sales (일부) | 4 | 🆕 Mock |
**관련 문서**:
- `docs/projects/api-integration/phase-3-api-mapping/mapping-matrix.md`
- `docs/projects/api-integration/phase-3-api-mapping/gap-analysis.md`
### [TODO-004] 프론트엔드 client_type 코드값 전송 개선
**발견일**: 2025-12-21
**우선순위**: 🟡 중요
**카테고리**: 데이터 정합성
**현재 상태**:
- 프론트엔드에서 `client_type`에 한글 이름(`매입`, `매출`) 전송
- API는 `common_codes.code` 값(`PURCHASE`, `SALES`) 기대
- 422 Validation Error 발생
**임시 해결**:
- API `ClientStoreRequest`, `ClientUpdateRequest`에서 `prepareForValidation()` 추가
- 한글 name → code 자동 변환 처리
**영구 해결 필요**:
| 파일 | 수정 내용 |
|------|----------|
| `react/src/hooks/useClientList.ts` | client_type 전송 시 code 값 사용 |
| `react/src/components/clients/*` | 폼에서 code/name 구분 처리 |
**유효한 코드값**:
| code | name |
|------|------|
| `PURCHASE` | 매입 |
| `SALES` | 매출 |
| `BOTH` | 매입매출 |
**관련 에러**:
```json
{
"error": {
"details": {
"client_type": ["선택된 client type은(는) 유효하지 않습니다."]
}
}
}
```
---
## 🟢 개선 (최적화)
### [TODO-003] API 클라이언트 패턴 통일
**발견일**: 2025-12-20
**우선순위**: 🟢 개선
**카테고리**: 코드 품질
**현재 상태**:
| 패턴 | 사용처 | 비고 |
|------|--------|------|
| `/api/proxy/*` | Items, Clients | ✅ 표준 |
| `/api/v1/*` (Server Actions) | Pricing | 다른 패턴 |
| `generateMockData()` | 대부분 | Mock |
**권장사항**: `/api/proxy/*` 패턴으로 통일
---
## ✅ 완료
| ID | 제목 | 완료일 | 비고 |
|----|------|--------|------|
| - | - | - | - |
---
## 참고
- **Phase 3 분석 결과**: `docs/projects/api-integration/phase-3-api-mapping/`
- **전체 진행 상황**: `docs/projects/api-integration/PROGRESS.md`
---
*이 문서는 발견된 이슈와 개선사항을 추적합니다.*