Files
little-fairy/moon/ai-guide.md
2025-08-13 01:49:42 +09:00

9.9 KiB

Claude AI와 함께하는 게임 개발 가이드

목차

  1. 프로젝트 구조
  2. claude.md 작성법
  3. 기획 문서 관리
  4. Claude와의 소통 방법론
  5. 지속적 개발 워크플로우
  6. Unit Test 전략

프로젝트 구조

GameProject/
├── claude.md                          # Claude 협업 가이드
├── docs/                              # 문서 폴더
│   ├── design/                        # 기획 문서
│   │   ├── game_design_document.md    # 핵심 게임 기획서
│   │   ├── technical_specs.md         # 기술 명세서
│   │   ├── ui_ux_specs.md            # UI/UX 명세서
│   │   └── feature_specs/             # 기능별 상세 명세
│   ├── development/                   # 개발 관련 문서
│   │   ├── coding_standards.md        # 코딩 표준
│   │   ├── architecture.md            # 아키텍처 문서
│   │   └── changelog.md               # 변경 로그
│   └── testing/                       # 테스트 관련 문서
│       ├── test_strategy.md           # 테스트 전략
│       └── test_cases.md              # 테스트 케이스
├── project.godot                      # Godot 프로젝트 파일
├── scenes/                            # 씬 파일들
├── scripts/                           # C# 스크립트
│   ├── Core/                          # 핵심 시스템
│   ├── Gameplay/                      # 게임플레이 로직
│   ├── UI/                           # UI 관련
│   └── Tests/                        # 단위 테스트
├── assets/                           # 게임 에셋
└── addons/                          # Godot 애드온

claude.md 작성법

기본 구조

# 프로젝트 개요
- **게임 제목**: [게임명]
- **장르**: [장르]
- **타겟 플랫폼**: [플랫폼]
- **개발 엔진**: Godot 4.x
- **주 언어**: C#

# 현재 개발 상태
- **버전**: v0.1.0
- **마지막 업데이트**: 2024-XX-XX
- **현재 작업 중인 기능**: [기능명]
- **다음 마일스톤**: [목표]

# 핵심 게임 컨셉
## 게임플레이 핵심
[간단한 게임플레이 설명]

## 주요 시스템
- [ ] 플레이어 캐릭터 시스템
- [ ] 인벤토리 시스템
- [ ] 전투 시스템
- [ ] UI 시스템

# 기술적 아키텍처
## 코어 시스템 설계
- **GameManager**: 게임 전반 관리
- **SceneManager**: 씬 전환 관리
- **SaveSystem**: 저장/불러오기
- **EventSystem**: 이벤트 기반 통신

## 코딩 컨벤션
- 클래스명: PascalCase
- 메서드명: PascalCase
- 변수명: camelCase
- 상수: UPPER_SNAKE_CASE

# Claude 협업 가이드라인
## 요청할 때 포함해야 할 정보
1. **현재 작업 컨텍스트**: 어떤 기능을 구현 중인지
2. **관련 파일**: 수정이 필요한 파일들
3. **요구사항**: 구체적인 기능 명세
4. **제약사항**: 성능, 메모리, 호환성 등

## 코드 리뷰 요청 시
- 전체 코드보다는 특정 기능 단위로 요청
- 의도한 동작과 실제 문제점 명시
- 관련 테스트 케이스 함께 제공

## 디버깅 요청 시
- 에러 메시지 전문 포함
- 재현 단계 상세히 기술
- 예상 동작 vs 실제 동작 비교

# 개발 우선순위
1. **높음**: 핵심 게임플레이 로직
2. **중간**: UI/UX 개선
3. **낮음**: 부가 기능, 최적화

# 테스트 전략
- Unit Test: 핵심 로직 테스트
- Integration Test: 시스템 간 연동 테스트
- Play Test: 실제 게임플레이 테스트

기획 문서 관리

1. 게임 기획서 구조 (docs/design/game_design_document.md)

# 게임 기획서

## 게임 개요
### 컨셉
### 타겟 유저
### 플랫폼

## 게임플레이
### 핵심 루프
### 플레이어 목표
### 진행 시스템

## 시스템 설계
### [시스템명]
- **목적**: 
- **구현 방법**: 
- **관련 클래스**: 
- **테스트 방법**: 

## 기술 요구사항
### 성능 목표
### 메모리 사용량
### 호환성 요구사항

## 개발 일정
- [ ] 프로토타입 (Week 1-2)
- [ ] 핵심 시스템 (Week 3-4)
- [ ] 콘텐츠 제작 (Week 5-6)

2. 기능별 명세서 (docs/design/feature_specs/)

각 주요 기능별로 개별 문서 작성:

  • player_system.md
  • combat_system.md
  • inventory_system.md
  • ui_system.md

Claude와의 소통 방법론

1. 효과적인 질문 패턴

🟢 좋은 예시

현재 Godot C#에서 인벤토리 시스템을 구현 중입니다.

**현재 상황:**
- Player 클래스에서 아이템을 관리
- 아이템은 ScriptableObject로 구현 예정
- docs/design/feature_specs/inventory_system.md에 명세 있음

**요구사항:**
1. 아이템 슬롯 기반 인벤토리
2. 드래그 앤 드롭 지원
3. 아이템 스택 기능

**질문:**
위 요구사항을 만족하는 InventoryManager 클래스 구조를 설계해주세요.
Unit Test도 함께 고려해주세요.

🔴 피해야 할 예시

게임 만드는데 도와주세요.

2. 컨텍스트 유지 전략

세션 시작 시 항상 포함할 정보

## 현재 프로젝트 상태
- 게임: [게임명]
- 엔진: Godot 4.x + C#
- 현재 작업: [기능명]
- 관련 파일: [파일 목록]
- 최근 변경사항: [요약]

파일 수정 시 패턴

## 수정 요청
**파일**: `scripts/Core/GameManager.cs`
**현재 코드**: [관련 코드 블록]
**요구사항**: [구체적인 변경 내용]
**제약사항**: [성능, 호환성 등]

3. 반복 개발 워크플로우

Phase 1: 기능 설계

## 기능 설계 요청
**기능명**: [기능명]
**기획 문서**: docs/design/feature_specs/[기능명].md 참고
**요구사항**:
1. [요구사항 1]
2. [요구사항 2]

**Claude 생성 요청**:
- 클래스 구조 설계
- 인터페이스 정의
- 테스트 케이스 설계

Phase 2: 구현

## 구현 요청
**설계**: [이전에 Claude가 제안한 설계 요약]
**구현할 클래스**: [클래스명]
**특별 고려사항**: [Godot 특화 사항, 성능 등]

Phase 3: 테스트 & 개선

## 코드 리뷰 요청
**구현된 코드**: [코드 블록]
**문제상황**: [발생한 문제]
**개선 요청**: [성능, 가독성, 테스트 등]

지속적 개발 워크플로우

1. 일일 개발 루틴

개발 시작 시

  1. claude.md 업데이트 (현재 상태, 목표)
  2. Claude에게 현재 상황 공유
  3. 오늘 작업할 기능 논의

개발 중

  1. 막힐 때마다 구체적 질문
  2. 코드 리뷰 요청
  3. 테스트 케이스 논의

개발 완료 시

  1. docs/development/changelog.md 업데이트
  2. 기획서에 변경사항 반영 요청
  3. 다음 작업 계획 수립

2. 기획서 동기화 프로세스

코드 변경 후 기획서 업데이트 요청 패턴

## 기획서 업데이트 요청
**변경된 코드**: [파일명과 주요 변경사항]
**영향받는 기획 문서**: docs/design/feature_specs/[기능명].md
**업데이트 필요 섹션**: 
- 기술 구현 방법
- 클래스 구조
- 테스트 방법

**요청**: 위 변경사항을 반영하여 기획서를 업데이트해주세요.

Unit Test 전략

1. 테스트 구조

// scripts/Tests/Core/GameManagerTests.cs
using NUnit.Framework;
using Godot;

[TestFixture]
public class GameManagerTests
{
    private GameManager _gameManager;

    [SetUp]
    public void Setup()
    {
        _gameManager = new GameManager();
    }

    [Test]
    public void Initialize_ShouldSetupGameState()
    {
        // Arrange
        // Act
        _gameManager.Initialize();
        // Assert
        Assert.IsTrue(_gameManager.IsInitialized);
    }

    [TearDown]
    public void TearDown()
    {
        _gameManager?.Cleanup();
    }
}

2. Claude와 TDD 협업

테스트 우선 개발 요청 패턴

## TDD 구현 요청
**기능**: [기능명]
**요구사항**: [상세 요구사항]

**1단계 요청**: 
해당 기능의 테스트 케이스를 먼저 작성해주세요.

**2단계 요청**: 
테스트를 통과하는 최소한의 구현을 작성해주세요.

**3단계 요청**: 
코드를 리팩토링해주세요.

3. 테스트 유형별 전략

Unit Test

  • 각 클래스의 public 메서드 테스트
  • 경계값, 예외 상황 테스트
  • Mocking을 활용한 의존성 분리

Integration Test

[TestFixture]
public class PlayerInventoryIntegrationTests
{
    [Test]
    public void Player_PickupItem_ShouldAddToInventory()
    {
        // 플레이어와 인벤토리 시스템 통합 테스트
    }
}

Performance Test

[TestFixture]
public class PerformanceTests
{
    [Test]
    public void GameLoop_Under60FPS_ShouldMaintainPerformance()
    {
        // 성능 관련 테스트
    }
}

Claude 활용 팁

1. 효율적인 질문 방법

  • 한 번에 하나의 기능에 집중
  • 구체적인 코드 블록과 함께 질문
  • 예상 결과와 실제 결과 비교 제시

2. 코드 품질 향상

## 코드 리뷰 요청 체크리스트
- [ ] SOLID 원칙 준수 확인
- [ ] Godot 베스트 프랙티스 적용
- [ ] 성능 최적화 검토
- [ ] 테스트 커버리지 확인
- [ ] 문서화 완성도 검토

3. 장기 프로젝트 관리

  • 주요 마일스톤마다 전체 아키텍처 리뷰
  • 정기적인 코드 리팩토링
  • 기술 부채 관리 계획 수립

마무리

이 가이드를 따라 Claude AI와 효과적으로 협업하면:

  • 일관성 있는 코드 품질 유지
  • 빠른 문제 해결과 개선
  • 체계적인 문서 관리
  • 지속 가능한 개발 프로세스

정기적으로 이 문서를 업데이트하며 프로젝트에 맞게 조정해나가세요.