harness/plugins/zioinfo/skills/zio-harness/references/folder-map.md
DESKTOP-TKLFCPR\ython 6caf43e1ed feat!: v2.0.0 — 4개 플러그인 zioinfo 단일 통합 + 최신 플러그인 기술 적용
- harness·zio-harness·proposal-builder·zioinfo → plugins/zioinfo (git mv 히스토리 보존)
- 스킬 4·커맨드 3(/zioinfo:pmo·proposal·wiki)·에이전트 15·graphify 훅·knowledge 통합
- 신규: /zioinfo:wiki (graphify LLM wiki — graphify-out/wiki/ 커뮤니티별 아티클)
- 신규: ZIO WISE 테마 (themes/zioinfo.json, experimental)
- manifest 최신화: $schema·displayName(ZIO INFOTECH Suite)·experimental.themes
- marketplace.json 단일 엔트리, 루트 plugin.json 제거
- CLAUDE.md·PROJECT_MAP·docs/plugins.md·README 3종·CHANGELOG·설치가이드 pptx 재구성

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 20:16:36 +09:00

4.9 KiB

Folder Map — PROJECT_MAP.md 생성 및 유지 가이드

Claude Code가 세션 간 프로젝트 구조를 기억하기 위한 PROJECT_MAP.md 시스템.


PROJECT_MAP.md 란

프로젝트 루트에 위치하는 폴더 구조 메모리 파일이다. 모든 에이전트가 작업 시작 시 이 파일을 먼저 읽어 "어떤 폴더에 무엇이 있는지" 파악한다.

왜 필요한가: Claude Code는 세션마다 새로 시작하므로, 프로젝트 구조를 매번 탐색하면 토큰 낭비가 크다. PROJECT_MAP.md 한 파일만 읽으면 전체 구조를 즉시 파악할 수 있다.


초기 생성 절차

프로젝트 루트에 PROJECT_MAP.md가 없을 때 실행한다:

  1. 프로젝트 루트에서 최상위 폴더 목록 스캔
  2. 각 폴더의 목적을 파악 (package.json, build.gradle, pubspec.yaml 등 메타파일 기준)
  3. 아래 템플릿으로 PROJECT_MAP.md 생성

PROJECT_MAP.md 템플릿 (React + Spring Boot + Mobile)

# PROJECT_MAP

> 마지막 업데이트: {YYYY-MM-DD HH:MM}
> 스택: React {version} | Spring Boot {version} | {Mobile Framework} {version}
> 업데이트 방법: "PROJECT_MAP 업데이트해줘" 또는 zio-harness 실행 시 자동 갱신

## 프로젝트 구조

### 루트
| 파일/폴더 | 용도 |
|----------|------|
| `frontend/` | React 웹 프론트엔드 |
| `backend/` | Spring Boot 백엔드 API |
| `mobile/` | 모바일 앱 (React Native / Flutter) |
| `e2e/` | Playwright E2E 테스트 |
| `docs/` | 프로젝트 문서 |
| `docker-compose.yml` | 로컬 개발 환경 |
| `PROJECT_MAP.md` | 이 파일 — 폴더 구조 메모리 |

### frontend/ (React)
| 경로 | 용도 |
|------|------|
| `src/pages/` | 페이지 컴포넌트 (라우트 단위) |
| `src/components/` | 공유 UI 컴포넌트 |
| `src/hooks/` | 커스텀 훅 |
| `src/store/` | 상태 관리 (Zustand / Redux) |
| `src/api/` | API 호출 함수 (Axios / fetch) |
| `src/types/` | TypeScript 타입 정의 |
| `src/utils/` | 유틸리티 함수 |
| `public/` | 정적 에셋 |
| `package.json` | 의존성 |
| `.env.local` | 로컬 환경 변수 (VITE_API_URL 등) |

### backend/ (Spring Boot)
| 경로 | 용도 |
|------|------|
| `src/main/java/{package}/controller/` | REST API 컨트롤러 |
| `src/main/java/{package}/service/` | 비즈니스 로직 |
| `src/main/java/{package}/repository/` | JPA 리포지토리 |
| `src/main/java/{package}/domain/` | 엔티티 / 도메인 모델 |
| `src/main/java/{package}/dto/` | Request / Response DTO |
| `src/main/java/{package}/config/` | Spring 설정 (Security, CORS 등) |
| `src/main/java/{package}/exception/` | 예외 처리 |
| `src/main/resources/application.yml` | 앱 설정 |
| `src/main/resources/db/migration/` | Flyway DB 마이그레이션 |
| `src/test/` | 단위/통합 테스트 |
| `build.gradle` | 의존성 |

### mobile/ (React Native / Flutter)
| 경로 | 용도 |
|------|------|
| `src/screens/` | 화면 컴포넌트 |
| `src/navigation/` | 네비게이션 설정 |
| `src/components/` | 공유 UI 컴포넌트 |
| `src/api/` | API 클라이언트 |
| `src/store/` | 상태 관리 |
| `src/types/` | 타입 정의 |
| `android/` | Android 네이티브 코드 |
| `ios/` | iOS 네이티브 코드 |

### e2e/ (Playwright)
| 경로 | 용도 |
|------|------|
| `tests/` | 테스트 파일 |
| `pages/` | 페이지 오브젝트 |
| `fixtures/` | 테스트 픽스처 |
| `playwright.config.ts` | Playwright 설정 |

## 핵심 컨벤션
- **API URL 패턴**: `GET /api/v1/{resource}`, `POST /api/v1/{resource}`
- **컴포넌트 네이밍**: PascalCase (예: `UserProfile.tsx`)
- **훅 네이밍**: `use` 접두사 (예: `useAuth.ts`)
- **서비스 네이밍**: `{Resource}Service.java`
- **DTO 네이밍**: `{Action}{Resource}Request.java`, `{Resource}Response.java`

## 환경 변수
| 변수 | 위치 | 설명 |
|------|------|------|
| `VITE_API_URL` | frontend/.env.local | 백엔드 API 주소 |
| `DB_URL` | backend/application.yml | 데이터베이스 주소 |
| `JWT_SECRET` | backend/application.yml | JWT 서명 키 |

## 최근 변경 이력
| 날짜 | 변경 내용 | 담당 에이전트 |
|------|----------|--------------|
| {YYYY-MM-DD} | 초기 맵 생성 | analyst |

업데이트 규칙

다음 상황에서 PROJECT_MAP.md를 업데이트한다:

  1. 새 폴더 생성 → 해당 폴더 행 추가
  2. 새 컨벤션 발견 → 핵심 컨벤션 섹션에 추가
  3. 새 환경 변수 추가 → 환경 변수 테이블 업데이트
  4. 구조 변경 → 해당 섹션 수정

업데이트 시 마지막 업데이트 날짜와 최근 변경 이력을 항상 갱신한다.


빠른 파악 프로토콜

에이전트가 새 작업을 시작할 때:

1. PROJECT_MAP.md 읽기 (없으면 생성)
2. 작업과 관련된 폴더 파악
3. 해당 폴더만 탐색 (전체 탐색 금지)
4. 작업 완료 후 새 파일/폴더가 생겼으면 PROJECT_MAP.md 갱신

이 순서를 지키면 탐색 토큰을 70% 이상 절약할 수 있다.