article 생산성

claude-code-project-structure-guide

Claude Code 프로젝트 구조 가이드

어떤 프로젝트든 바로 적용할 수 있는 범용 구조. 셀피쉬클럽 공유회 CRM 자동화에서 검증됨.


1. 왜 이 구조가 필요한가

Claude Code는 매 세션마다 CLAUDE.md를 전부 읽습니다. 이 파일이 길면 컨텍스트 낭비가 심해지고, 실제 작업에 쓸 공간이 줄어듭니다. 프로젝트가 커질수록 스펙, 진행상태, 결정사항이 한 파일에 뒤섞여서 관리가 힘들어집니다.

해결책: 역할별로 파일을 분리하고, 각 파일이 언제 로드되는지 명확히 구분하세요.

검증된 성과:


2. 6개 저장 레이어 (이대로 구분하세요)

레이어위치로드 시점내용변경 빈도
CLAUDE.md프로젝트 루트매 세션 자동프로젝트 정체성 + 안전규칙 + 어디 보면 되는지거의 안 바뀜
prd/*.mdprd/에이전트가 필요할 때도메인별 스펙 (SSOT)스펙 변경 시만
agents/*.md.claude/agents/스킬 실행 시역할 정의 + PRD 참조거의 안 바뀜
memory/프로젝트별 메모리세션 시작 시 인덱스만결정/피드백/진행상태/참조매 세션
rules/*.md.claude/rules/매 세션 자동코딩 스타일/보안/워크플로우거의 안 바뀜
skills/.claude/skills/트리거 시업무 파이프라인 (독립 워크플로우)거의 안 바뀜

3. 각 레이어 상세 설명

CLAUDE.md (50~100줄 권장)

매 세션 전부 로드되므로 최소한으로 유지하세요.

반드시 포함:

절대 포함하면 안 됨:

기준: “이 파일만 읽으면 프로젝트가 뭔지 + 뭘 하면 안 되는지 + 어디 보면 되는지 알 수 있다”


PRD (도메인별 분리)

SSOT(Single Source of Truth) = 스펙의 단일 진실 공급원입니다.

예시:

CRM 프로젝트:

SaaS 프로젝트:


에이전트 (.claude/agents/)

재사용 가능한 역할 정의입니다.

# {에이전트명} — {한줄 역할}

## 참조 PRD
- prd/01-{}.md — {왜 참조하는지}
- prd/02-{}.md — {왜 참조하는지}

## 역할
{구체적으로 뭘 하는지}

## 도구
{사용하는 도구/API}

## 출력
{산출물 형식}

모델 선택:


메모리 (memory/)

바뀌는 정보는 메모리에, 안 바뀌는 정보는 CLAUDE.md에 저장하세요.

memory/MEMORY.md (인덱스)

- [진행 상태](progress.md) — 완료/진행중/남은작업
- [미팅 결정](meeting_0405_crm_v2.md) — 주요 결정사항
- [세션 기록](session_0405_n8n_test.md) — 작업 내역

memory/progress.md (매 세션 업데이트)

## 완료된 것
- ✅ 알림톡 템플릿 9종 확정
- ✅ n8n 크론 재설계

## 진행중
- 🔲 인스타 캐러셀 생성

## 남은 작업
- 🔲 Stibee 이메일 API 연동

## 주의사항
- ⚠️ testMode=true 유지 (A-Z 테스트 미완료)

룰 (.claude/rules/)

프로젝트 전체에 자동 적용되는 코딩 규칙입니다.

.claude/rules/
├── coding-style.md          # 코드 스타일
├── security.md               # 보안 체크리스트
├── git-workflow.md           # 커밋/PR 규칙
├── testing.md                # 테스트 커버리지
├── performance.md            # 모델 선택
└── karpathy-guidelines.md    # 코딩 훈련

에이전트가 아닌 모든 코드 작업에 자동 적용됩니다.


스킬 (.claude/skills/)

독립적인 워크플로우만 스킬로 분리하세요.

.claude/skills/
└── {스킬명}/
    ├── SKILL.md              # 스킬 정의
    ├── agents/               # 스킬 전용 에이전트
    ├── lib/                  # 유틸리티
    └── test/                 # 테스트

스킬 분리 기준:


4. 범용 프로젝트 폴더 템플릿

project-root/
├── CLAUDE.md                          # 프로젝트 정체성 (50~100줄)
├── README.md                          # 프로젝트 소개 (선택)
├── prd/                               # 도메인별 스펙 (SSOT)
│   ├── 00-overview.md                 # 전체 플로우 + 아키텍처
│   ├── 01-{도메인A}.md
│   ├── 02-{도메인B}.md
│   └── ...
├── .claude/
│   ├── agents/                        # 재사용 역할 정의
│   │   ├── {역할A}.md
│   │   ├── {역할B}.md
│   │   └── ...
│   ├── skills/                        # 독립 워크플로우
│   │   └── {스킬명}/
│   │       ├── SKILL.md
│   │       ├── agents/
│   │       ├── lib/
│   │       └── test/
│   └── rules/                         # 코딩 규칙 (자동 적용)
│       ├── coding-style.md
│       ├── security.md
│       ├── git-workflow.md
│       ├── testing.md
│       ├── performance.md
│       └── karpathy-guidelines.md
├── memory/                            # 진행상태/결정사항
│   ├── MEMORY.md                      # 인덱스
│   ├── progress.md                    # 현재 상태 (매번 업데이트)
│   ├── meeting_MMDD.md
│   └── session_MMDD.md
├── scripts/                           # 실행 스크립트
├── outputs/                           # 생성물
├── .env                               # 환경변수 (git ignore)
└── .gitignore

5. CLAUDE.md 작성 가이드 (복사해서 쓰세요)

# {프로젝트명}

## 프로젝트 목표
{한 줄로 요약}

## 상세 스펙 (PRD)
| 파일 | 내용 |
|------|------|
| prd/00-overview.md | 전체 플로우 + 아키텍처 |
| prd/01-{}.md | ... |
| prd/02-{}.md | ... |

## 구조 원칙
- 스킬 = 업무 파이프라인 (독립 워크플로우만)
- 에이전트 = 재사용 역할 (여러 스킬에서 공유)
- PRD = 규칙 원본 (SSOT, 에이전트가 참조만)

## 안전 규칙
- {절대 하면 안 되는 것 1}
- {절대 하면 안 되는 것 2}

## 작업 습관
- 커밋: `[영역] 내용` 형식
- 메모리: 결정/피드백은 memory/에 저장
- 변경 시: PRD 수정 → 에이전트도 함께 업데이트

## 연동 정보
- Slack: 채널 ID + 봇
- Supabase: URL + 키
- n8n: 워크플로우 ID + API 키

## 현재 진행 상태
→ memory/progress.md 참조

## 세션 종료 루틴
1. 중요 결정사항 → memory/meeting_{MMDD}.md
2. 진행상태 업데이트 → memory/progress.md
3. PRD/에이전트 변경 → 둘 다 함께 반영
4. 커밋 + 푸시

6. PRD 작성 가이드

# {번호} — {도메인명} PRD

## 개요
{이 도메인이 뭔지, 핵심 규칙 3줄}

## 스펙
### 템플릿 / 규칙
{구체적인 ID, 변수, 형식, 규칙 등}

### 플로우
{실행 순서, 조건, 선택지}

## 참조
- {관련 다른 PRD}
- {외부 문서 링크}

7. 에이전트 작성 가이드

# {에이전트명} — {한줄 역할}

모델: {haiku/sonnet/opus}

## 참조 PRD
- prd/01-{}.md — {구체적으로 뭘 참조하는지}
- prd/02-{}.md

## 역할
{이 에이전트가 정확히 뭘 하는지 (문장 3~5개)}

## 도구
- {API/도구 1}
- {API/도구 2}

## 입력
{받는 정보 형식}

## 출력
{산출물 형식, 예시 포함}

## 주의사항
- {프로세스에서 주의할 점}

8. 메모리 관리 가이드

인덱스 (MEMORY.md)

세션 시작 시 이것만 로드합니다. 한 줄씩만.

- [진행 상태](progress.md) — 완료/진행중/남은작업
- [4/5 CRM v2 미팅](meeting_0405_crm_v2.md) — 카카오모먼트 전환
- [4/5 n8n 테스트](session_0405_n8n_test.md) — ①~⑤ 성공, ⑥~⑨ 남음

progress.md (매 세션 끝에 업데이트)

## 완료된 것
- ✅ PRD 8개 분리
- ✅ 에이전트 7개 업데이트
- ✅ n8n 크론 재설계

## 진행중
- 🔲 인스타 캐러셀 생성

## 남은 작업
- 🔲 Stibee API 연동

## 주의사항
- ⚠️ testMode=true (A-Z 테스트 완료 후 false로)
- ⚠️ iid_999 = 테스트용 (나중에 삭제)

9. 판단 기준: 어디에 저장할지

이 정보는…저장 위치
프로젝트가 뭔지 설명하는 것CLAUDE.md
특정 도메인의 구체적 스펙prd/{도메인}.md
에이전트의 역할과 참조agents/{역할}.md
매 세션 바뀌는 진행 상태memory/progress.md
미팅에서 결정된 사항memory/meeting_{날짜}.md
코딩 스타일/보안 규칙.claude/rules/
독립적인 워크플로우.claude/skills/{스킬}/
API 키/비밀 정보.env
절대 하면 안 되는 것CLAUDE.md 안전 규칙

10. 적용 예시

예시 A: CRM 자동화 (실제 적용)

검증된 구조:

성과:


예시 B: SaaS 대시보드

prd/
├── 00-overview.md      (전체 아키텍처)
├── 01-auth.md          (인증/인가)
├── 02-billing.md       (결제)
├── 03-dashboard.md     (UI 규칙)
├── 04-api.md           (API 스펙)
└── 05-deploy.md        (배포 프로세스)

agents/
├── frontend-dev.md     (sonnet)
├── backend-dev.md      (sonnet)
├── db-admin.md         (sonnet)
└── tester.md           (haiku)

skills/
├── feature-ship/       (기능 개발 파이프라인)
└── hotfix/             (긴급 수정)

예시 C: 콘텐츠 마케팅

prd/
├── 00-overview.md      (전체 콘텐츠 전략)
├── 01-blog.md          (블로그 스펙)
├── 02-social.md        (SNS 톤앤매너)
├── 03-newsletter.md    (뉴스레터 형식)
└── 04-seo.md           (SEO 규칙)

agents/
├── writer.md           (sonnet)
├── designer.md         (sonnet)
├── analyst.md          (haiku)
└── publisher.md        (haiku)

skills/
├── content-pipeline/   (콘텐츠 생성→게시)
└── analytics-report/   (성과 분석)

11. 핵심 원칙 요약

  1. CLAUDE.md는 짧게

    • 50~100줄만 유지
    • “뭔지 + 뭘 하면 안 되는지 + 어디 보면 되는지” 만
  2. PRD = SSOT

    • 스펙은 한 곳에만 저장
    • 에이전트는 참조만 (복사하지 말 것)
  3. 바뀌는 것 ↔ 안 바뀌는 것 분리

    • 진행상태 → memory/
    • 규칙/원칙 → CLAUDE.md
  4. 에이전트 상단에 참조 PRD 명시

    • 의존성 추적 가능
    • PRD 수정 후 에이전트도 함께 업데이트
  5. 스킬은 독립 워크플로우만

    • 공유되는 로직 → 에이전트
    • 하나의 파이프라인 → 스킬
  6. 세션 끝에 반드시 저장

    • memory/progress.md 업데이트
    • 필요 시 PRD/에이전트 반영
    • 커밋 + 푸시

12. 체크리스트: 새 프로젝트 시작하기

프로젝트 설정
- [ ] CLAUDE.md 작성 (50~100줄)
- [ ] prd/00-overview.md 작성
- [ ] .claude/agents/ 디렉토리 생성
- [ ] .claude/rules/ 복사 (templates 사용)
- [ ] memory/MEMORY.md + progress.md 생성

규칙 정하기
- [ ] 안전 규칙 정의 (CLAUDE.md에)
- [ ] 커밋 형식 정의 (rules/git-workflow.md)
- [ ] 모델 선택 규칙 (rules/performance.md)
- [ ] 테스트 커버리지 (rules/testing.md)

첫 번째 작업
- [ ] PRD 1개 → 에이전트 1개 작성
- [ ] 스킬 트리거 정의
- [ ] memory/progress.md에 진행상태 기록

13. 추천 도구/워크플로우

oh-my-claudecode 스킬 활용:

추천 습관:


이 가이드는 실전에서 검증된 구조입니다. 프로젝트 크기와 복잡도에 맞게 조정하세요.

© 2026 SELFISH CLUB × AAA TEAM
home Home