# Claude Code 워크플로우 가이드 — TK Factory Services

## 1. CLAUDE.md 활용
- 프로젝트 루트의 `CLAUDE.md`가 매 세션 자동 로드 → 프로젝트 컨텍스트 즉시 파악
- 서비스별 CLAUDE.md 추가 가능 (예: `system1-factory/CLAUDE.md`) → 해당 디렉토리 작업 시 추가 로드
- git으로 관리되므로 팀원 간 공유 가능

## 2. 슬래시 커맨드 (.claude/commands/)

| 커맨드 | 설명 | 사용 예 |
|--------|------|---------|
| `/deploy` | 원클릭 NAS 배포 | `/deploy system1-web` |
| `/check-deploy` | NAS 서비스 상태 점검 | `/check-deploy` |
| `/cache-bust` | 변경된 JS/CSS 캐시 버스팅 일괄 갱신 | `/cache-bust` |
| `/add-page` | System1 새 HTML 페이지 스캐폴드 | `/add-page consumable/stock 소모품 재고` |
| `/add-api` | System1 새 API 엔드포인트 스캐폴드 | `/add-api consumable-stock` |

커스텀 추가: `.claude/commands/`에 `.md` 파일 추가하면 자동 인식.

## 3. Plan 모드 활용

적합한 작업:
- 여러 서비스에 걸친 기능 추가 (예: 새 마이크로서비스)
- DB 스키마 변경 + API + 프론트엔드 동시 수정
- 대규모 리팩터링 (30+ 파일 변경)

사용법:
1. `/plan`으로 Plan 모드 진입
2. Claude가 코드 탐색 → 구현 계획 작성
3. 계획 검토 · 수정 → 승인
4. 자동 실행

## 4. 서브에이전트 활용 패턴

| 에이전트 | 용도 | 예시 |
|----------|------|------|
| Explore | 코드베이스 탐색 | "system1과 system2에서 인증 처리 방식 비교해줘" |
| Plan | 구현 설계 | "tkeg에 새 모듈 추가 계획 세워줘" |

- 독립적 탐색은 병렬 실행 가능 (최대 3개)
- 넓은 범위 검색에 유용 (단순 파일 찾기는 직접 검색이 빠름)

## 5. 검증 피드백 루프 (Boris Cherny 패턴)

코드 변경 후 검증 사이클:
1. **빌드 확인** → `docker compose build <서비스>`
2. **배포** → `/deploy <서비스>`
3. **health check** → 자동 실행 (deploy에 포함)
4. **수동 확인** → 브라우저에서 모바일 + 데스크탑 테스트

## 6. 효율적 작업 패턴

### 프론트엔드 수정 (Vanilla JS 서비스)
1. HTML/JS/CSS 수정
2. `/cache-bust`로 캐시 버스팅 갱신
3. `git commit` + `/deploy system1-web`

### API 수정 (Node.js 서비스)
1. model → controller → route 수정
2. `git commit` + `/deploy system1-api`
3. `curl`로 API 테스트

### tkeg 수정 (React + FastAPI)
1. 프론트: `npm run build` (Vite 자동 해시, 캐시 버스팅 불필요)
2. 백엔드: FastAPI 코드 수정
3. `git commit` + `/deploy tkeg-api tkeg-web`

### 여러 서비스 동시 수정
1. `/plan`으로 계획 수립
2. 변경 실행
3. 영향받는 서비스 모두 재배포: `/deploy system1-api system1-web system2-api`

## 7. 자주 쓰는 디버깅 명령

```bash
# DB 접속 (NAS)
ssh hyungi@100.71.132.52 "docker exec tk-mariadb mysql -uhyungi_user -p'hyung-ddfdf3-D341@' hyungi"

# 로그 확인 (NAS)
ssh hyungi@100.71.132.52 "cd /volume1/docker/tk-factory-services && export PATH=\$PATH:/volume2/@appstore/ContainerManager/usr/bin && docker compose logs -f --tail=50 <서비스>"

# 컨테이너 상태 (NAS)
ssh hyungi@100.71.132.52 "cd /volume1/docker/tk-factory-services && export PATH=\$PATH:/volume2/@appstore/ContainerManager/usr/bin && docker compose ps"

# PostgreSQL 접속 (tkeg)
ssh hyungi@100.71.132.52 "docker exec tk-tkeg-postgres psql -U tkbom_user -d tk_bom"
```

## 8. 팁
- **작은 단위로 커밋**: 서비스별로 나눠서 커밋하면 롤백이 쉬움
- **CLAUDE.md 업데이트**: 새 서비스 추가 시 서비스 맵 테이블 갱신
- **메모리 활용**: 반복되는 피드백은 Claude가 자동 저장 → 다음 세션에도 적용
