카테고리 없음

JooFarm 프로젝트 개요

joo_coding 2025. 8. 18. 15:11
# 프로젝트 개요 – JooFarm (C# WPF, Windows 10 기준)

## 1) 한눈에 보는 프로젝트
- **프로젝트명:** JooFarm  
- **플랫폼/기술:** C# (.NET 8) + WPF + MVVM (CommunityToolkit.Mvvm), Visual Studio 2022  
- **장르/목표:** 1주 스프린트로 만드는 **라이트 농장 경영 게임**(타일 기반 플롯 관리, 작물 성장 3단계, 수확·판매 루프)  
- **핵심 컨셉:** “**바이브 코딩(Vibe Coding)**”을 개발 방식 전면에 내세워, 
**AI와의 페어 프로그래밍**으로 설계·코드·에셋·문서를 빠르게 반복 개선  
- **어셈블리명:** `JooFarm` (pack URI 및 네임스페이스에 동일 사용)

---

## 2) 왜 ‘바이브 코딩’인가 (의도와 취지)
1. **시간 대비 결과 극대화**  
   1주라는 짧은 기간에 기획–UI–로직–테스트를 모두 통과하려면 기존 워터폴이나 순차 개발로는 비효율적임. 
바이브 코딩은 **“아이디어 → 즉시 프로토타입 → 플레이 피드백 → 즉시 수정”**의 고속 루프를 가능하게 해 
**완성도 대비 시간을 압축**함.

2. **AI 시대의 개발 역량 증명**  
   “AI가 만들어준 코드”가 아니라, **AI를 작업 파이프라인에 전략적으로 편성**하고 
**사람(개발자)이 품질·아키텍처·일관성을 통제**했음을 보여줌. 
즉, **AI 오케스트레이션 능력**(프롬프트 설계, 리팩토링 지시, 실패 복구, 테스트 자동화 지시 등)을 포트폴리오로 증명.

3. **설계 의도 기반 제작(Design-by-Intent)**  
   “이 화면은 어떤 감정/경험을 주어야 하는가?” 같은 **경험 목표(UX vibe)**를 먼저 정의하고, 
그 의도를 AI에 **맥락으로 주입**해 UI/텍스트/아이콘/마이크로인터랙션을 일관되게 생산. 
결과적으로 **게임의 톤&매너가 초기에 고정**되고 산만함이 줄어듦.

4. **반복 실험의 저비용화**  
   씨앗–성장–수확–판매 루프, 가격 밸런스, 성장 시간 등 **게임 변수를 빠르게 A/B 실험**. AI를 통해 
**테이블/스크립트 자동 생성**과 **테스트 시나리오 제안**이 가능해 **실험당 비용**을 현저히 낮춤.

5. **문서와 코드의 동시 생산**  
   게임 룰 설명, 개발일지, 체인지로그, 리드미, 주석 등 **문서화를 개발과 동시에** 진행하여, 
결과물의 **이해 가능성과 이식성**을 확보. 이는 SI/SM/솔루션 환경에서 중요한 **인수인계 품질**을 담보.

---

## 3) 게임 핵심 루프(초기 범위)
- **플롯(Plot) 배치 → 씨앗 심기 → 성장(3단계) → 수확 → 판매 → 재투자**  
- **성장 단계 아이콘 매핑**(예: `seed.png → stage2.png → stage3.png`)은 `Converters/CropStageToImageConverter`로 처리  
- **경제 루프 최소기능(MVP):** 상점(씨앗 구매), 인벤토리, 판매가·성장시간 테이블, 일시정지/저장  
- **UI/UX:** 간단한 타일 그리드, 툴팁, 상태바(시즌/자금/인벤토리 요약), 접근성 고려(폰트, 대비, 포커스 이동)

---

## 4) 아키텍처 개요 (WPF/MVVM)
- **레이어링**
  - `JooFarm.Models`: `Crop`, `Plot`, `InventoryItem` 등 순수 도메인
  - `JooFarm.ViewModels`: `MainViewModel`, `ShopViewModel`, `FarmViewModel` 등 상태·커맨드 관리
  - `JooFarm.Views`: XAML 화면(코드비하인드 최소화)
  - `JooFarm.Converters`: UI 바인딩 변환기 (예: 성장단계→아이콘 경로)
  - `JooFarm.Services`: 저장/로딩, 밸런스 테이블, 타이머/틱, 가격 정책
- **원칙**
  - 단방향 데이터 흐름(모델→VM→뷰), DI로 서비스 주입, **주석 필수(역할·입출력·예외)**  
  - 리소스/이미지 **Build Action=Resource**, pack URI `pack://application:,,,/JooFarm;component/Assets/...`

---

## 5) 바이브 코딩 운영 방식
1. **리드미블 프롬프트(Reusable Prompt) 설계**  
   기능 요청 → 제약(Windows 10, WPF, MVVM, .NET 8) → 입출력 스펙 → 예외/로깅 → 테스트 기준까지 **한 묶음**으로 정의.  
   예: “XAML 레이아웃+ViewModel+주석+테스트 지침까지 한번에” 요청.

2. **짧은 이터레이션(1~2h) 스프린트**  
   (a) 목표 한 줄, (b) 프롬프트, (c) AI 응답 적용, (d) 수동 코드 리뷰 & 리팩토링, (e) 미니 플레이 테스트, (f) 결론/다음 액션 기록.

3. **품질 게이트**  
   **컴파일 무경고**, **ViewModel 단위 테스트 통과**, 
**바인딩 오류 0**(디버그 출력 확인), **FPS/반응성 체크**, **리소스 경로 깨짐 0**.

4. **로그/문서 자동화**  
   “프롬프트 로그”, “의사결정 로그(왜 이 선택을 했는가)”, “체인지로그”, “버그/리그레션 시트”를 AI가 초안 생성 → 사람이 교정.

---

## 6) 기대 효과 (학습·포트폴리오 관점)
- **AI 활용 역량 증명:** “코드 자동 생성”이 아닌
 **시스템적 활용(프롬프트 전략, 실패 복구, 리팩토링 지시)**을 수치와 산출물로 제시.  
- **완성도 있는 MVP:** 1주 내 **플레이 가능한 결과물** 확보, 영상/문서/코드 공개.  
- **재사용 자산 축적:** MVVM 템플릿, 컨버터/비헤이비어/스타일 라이브러리, Prompt 패턴, 테스트 체크리스트.

---

## 7) 차별점
- **Windows 10 + WPF 전문 최적화**(사용자 선호 환경 명시), 가벼운 의존성, 네이티브 데스크톱 감성.  
- **리소스·바인딩·상태 동기화를 ‘주석과 규칙’로 엄격 관리**하여, AI 생성 코드의 흔한 와해를 방지.  
- **“의도-증거-결과” 문서화**: 어떤 의도로 어떤 프롬프트/설계를 택했고 어떤 결과가 나왔는지 **검증 가능**하게 기록.

---

## 8) 리스크와 대응
- **AI 응답 불안정/와해:** 스펙 고정 프롬프트 + 예제·금지 패턴 명시 + 소규모 단위 작업으로 분할.  
- **리소스 경로/빌드 액션 오류:** 리소스 규약(폴더/이름/Build Action) 문서화 + PR 체크리스트.  
- **아키텍처 일관성 붕괴:** MVVM 룰(코드비하인드 최소), DI 주입, 바인딩 에러를 빌드 게이트로 승격.  
- **스케줄 초과:** 스코프를 “핵심 루프” 중심으로 고정하고, 부가 기능은 백로그로 이월.

---

## 9) 개발 원칙 (요약)
1. **주석 의무화:** 파일/클래스/메서드/핵심 블록에 “역할·입력·출력·예외” 명시.  
2. **리소스 일관성:** `Assets/Crops/...` 등 **폴더·파일명 규약** 준수, 어셈블리명 `JooFarm` 고정.  
3. **테스트 우선:** 바인딩 오류 0, 성장 단계→아이콘 매핑 단위 테스트, 저장/로딩 회귀 테스트.  
4. **문서 동시화:** 구현과 동시에 프롬프트 로그/체인지로그 업데이트.  
5. **심플 퍼스트:** 먼저 동작하는 단순 루프 → 이후 밸런스/연출 확장.

---

## 10) 마일스톤(1주 예시)
- **D1:** 코어 모델/뷰모델 스캐폴딩, 플롯 배치/파종 MVP  
- **D2:** 성장 타이머/단계 전환, 아이콘 컨버터 연결  
- **D3:** 수확/인벤토리/상점(씨앗 구매)  
- **D4:** 저장/불러오기, 가격·성장시간 테이블  
- **D5:** UI 폴리싱(툴팁/상태바), 접근성, 바인딩 오류 제로화  
- **D6:** 밸런스 1차 튜닝, 버그 픽스, 문서 정리  
- **D7:** 릴리스 빌드, 플레이 영상/README, 회고(바이브 코딩 인사이트)

---

## 11) 성공 지표(KPI)
- 프롬프트→코드 적용 사이클 **1~2시간 내** 완료율.  
- 바인딩 오류/런타임 예외 **0건**(릴리스 기준).  
- 핵심 루프 플레이 타임 **10분** 확보(지루하지 않음).  
- 문서/로그 동기화 커밋률 **100%** (기능 커밋에 문서 동반).

---

## 12) 마무리
이 프로젝트는 **AI를 잘 쓰는 개발자**임을 증명하기 위한 **작은·완성형** 사례임. 
바이브 코딩을 통해 **설계 의도와 사용자 경험을 우선**으로 두고, **AI는 속도와 실험성**을 책임지게 함. 
최종 결과물은 **코드 품질, 플레이 가능성, 문서화 완성도, AI 활용 전략** 네 축에서 균형 있게 평가되도록 설계됨.