# 프로젝트 개요 – 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 활용 전략** 네 축에서 균형 있게 평가되도록 설계됨.
주코딩일지