BMAD-METHOD/docs/ko-kr/explanation/project-context.md

161 lines
6.8 KiB
Markdown

---
title: "프로젝트 컨텍스트"
description: project-context.md가 프로젝트 규칙과 선호도로 AI 에이전트를 안내하는 방법
sidebar:
order: 12
---
`project-context.md` 파일은 AI 에이전트를 위한 프로젝트 구현 가이드입니다. 다른 개발 체계의 "헌장"처럼 모든 워크플로에서 일관된 코드 생성을 보장하는 규칙, 패턴, 선호 사항을 포착합니다.
## 하는 일
AI 에이전트는 구현 중 계속 결정을 내립니다. 어떤 패턴을 따를지, 코드를 어떻게 구조화할지, 어떤 관례를 사용할지 등입니다. 명확한 안내가 없으면 다음이 일어날 수 있습니다.
- 코드베이스와 맞지 않는 범용 모범 사례를 따릅니다
- 스토리마다 일관되지 않은 결정을 내립니다
- 프로젝트별 요구사항이나 제약을 놓칩니다
`project-context.md` 파일은 에이전트가 알아야 할 것을 간결하고 LLM에 최적화된 형식으로 문서화해 이 문제를 해결합니다.
## 작동 방식
모든 구현 워크플로는 `project-context.md`가 있으면 자동으로 로드합니다. 아키텍트 워크플로도 아키텍처를 설계할 때 기술 선호 사항을 존중하기 위해 이 파일을 로드합니다.
**이 워크플로들이 로드합니다:**
- `bmad-create-architecture` - 솔루션 설계 중 기술 선호 사항을 존중합니다
- `bmad-create-story` - 프로젝트 패턴으로 스토리 작성을 안내합니다
- `bmad-dev-story` - 구현 결정을 안내합니다
- `bmad-code-review` - 프로젝트 표준과 비교해 검증합니다
- `bmad-quick-dev` - 사양을 구현할 때 패턴을 적용합니다
- `bmad-sprint-planning`, `bmad-retrospective`, `bmad-correct-course` - 프로젝트 전반의 컨텍스트를 제공합니다
## 언제 만들까요?
`project-context.md` 파일은 프로젝트 어느 단계에서든 유용합니다.
| 시나리오 | 만들 시점 | 목적 |
| --- | --- | --- |
| **새 프로젝트, 아키텍처 전** | `bmad-create-architecture` 전에 수동 작성 | 아키텍트가 기술 선호 사항을 존중하도록 문서화 |
| **새 프로젝트, 아키텍처 후** | `bmad-generate-project-context` 또는 수동 작성 | 구현 에이전트를 위해 아키텍처 결정 포착 |
| **기존 프로젝트** | `bmad-generate-project-context`로 생성 | 기존 패턴을 발견해 에이전트가 기존 관례를 따르게 함 |
| **빠른 흐름 프로젝트** | `bmad-quick-dev` 전 또는 중 | 빠른 구현이 패턴을 존중하도록 보장 |
:::tip[권장]
새 프로젝트에서 강한 기술 선호 사항이 있다면 아키텍처 전에 수동으로 만드세요. 그렇지 않다면 아키텍처 후 생성해 그 결정을 포착하세요.
:::
## 무엇이 들어가나요?
파일에는 두 주요 섹션이 있습니다.
### 기술 스택과 버전
프로젝트가 사용하는 프레임워크, 언어, 도구를 구체적 버전과 함께 문서화합니다.
```markdown
## 기술 스택과 버전
- Node.js 20.x, TypeScript 5.3, React 18.2
- 상태 관리: Zustand(Redux 아님)
- 테스트: Vitest, Playwright, MSW
- 스타일링: 커스텀 디자인 토큰을 사용하는 Tailwind CSS
```
### 중요한 구현 규칙
에이전트가 놓칠 수 있는 패턴과 관례를 문서화합니다.
```markdown
## 중요한 구현 규칙
**TypeScript 설정:**
- 엄격 모드 사용 - 명시적 승인 없이 `any` 타입 금지
- 공개 API에는 `interface`, 유니언/인터섹션에는 `type` 사용
**코드 구성:**
- 컴포넌트는 `/src/components/`에 두고 `.test.tsx`를 함께 배치
- 재사용 가능한 순수 함수는 `/src/lib/` 유틸리티에 배치
- API 호출은 `apiClient` 싱글턴 사용 - 직접 fetch 금지
**테스트 패턴:**
- 단위 테스트는 구현 세부사항이 아니라 비즈니스 로직에 집중
- 통합 테스트는 MSW로 API 응답을 모킹
- E2E 테스트는 중요한 사용자 여정만 다룸
**프레임워크별 규칙:**
- 모든 비동기 작업은 일관된 오류 처리를 위해 `handleError` 래퍼 사용
- 기능 플래그는 `@/lib/flags``featureFlag()`로 접근
- 새 라우트는 `/src/app/`의 파일 기반 라우팅 패턴을 따름
```
코드 스니펫을 읽고 에이전트가 추론하지 못할 **겉으로 잘 드러나지 않는 것**에 집중하세요. 보편적으로 적용되는 표준 관행은 문서화하지 마세요.
## 파일 만들기
세 가지 선택지가 있습니다.
### 수동 작성
`_bmad-output/project-context.md`에 파일을 만들고 규칙을 추가합니다.
```bash
# 프로젝트 루트에서
mkdir -p _bmad-output
touch _bmad-output/project-context.md
```
기술 스택과 구현 규칙을 편집하세요. 아키텍트와 구현 워크플로가 자동으로 찾아 로드합니다.
### 아키텍처 후 생성
아키텍처를 완료한 뒤 `bmad-generate-project-context` 워크플로를 실행합니다.
```bash
bmad-generate-project-context
```
이 워크플로는 아키텍처 문서와 프로젝트 파일을 스캔해 내려진 결정을 담은 컨텍스트 파일을 생성합니다.
### 기존 프로젝트용 생성
기존 프로젝트에서는 `bmad-generate-project-context`를 실행해 기존 패턴을 발견합니다.
```bash
bmad-generate-project-context
```
워크플로가 코드베이스를 분석해 관례를 식별한 뒤 검토하고 다듬을 수 있는 컨텍스트 파일을 생성합니다.
## 왜 중요한가
`project-context.md`가 없으면 에이전트는 프로젝트에 맞지 않는 가정을 할 수 있습니다.
| 컨텍스트 없음 | 컨텍스트 있음 |
| --- | --- |
| 일반 패턴 사용 | 기존 관례 따름 |
| 스토리마다 일관되지 않은 스타일 | 일관된 구현 |
| 프로젝트별 제약을 놓칠 수 있음 | 모든 기술 요구사항 존중 |
| 각 에이전트가 독립적으로 결정 | 모든 에이전트가 같은 규칙에 맞춰 동작 |
특히 다음에 중요합니다.
- **빠른 흐름** - PRD와 아키텍처를 건너뛰므로 컨텍스트 파일이 공백을 채웁니다
- **팀 프로젝트** - 모든 에이전트가 같은 표준을 따르게 합니다
- **기존 프로젝트** - 기존 패턴을 깨뜨리지 않게 합니다
## 편집과 업데이트
`project-context.md` 파일은 살아 있는 문서입니다. 다음 때 업데이트하세요.
- 아키텍처 결정이 바뀝니다
- 새 관례가 확립됩니다
- 구현 중 패턴이 진화합니다
- 에이전트 동작에서 공백을 발견합니다
언제든 수동으로 편집하거나, 큰 변경 후 `bmad-generate-project-context`를 다시 실행해 업데이트할 수 있습니다.
:::note[파일 위치]
기본 위치는 `_bmad-output/project-context.md`입니다. 워크플로는 그곳을 검색하고, 프로젝트 어디에 있든 `**/project-context.md`도 확인합니다.
:::