사실 KindVerb 프로젝트를 7월 부터 진행하고 있었고, 출시까지 거의 모든 코드를 완성한 상태였다. 앱스토어커넥트(https://appstoreconnect.apple.com/)에 앱을 출시하기 위한 정보를 입력하고, SandBox계정으로 인앱결제 테스트를 진행하다가 막히는 부분이 있어 수정이 필요한 상황인데 AI가 아닌, 내가 맥락을 잊어버려 수정할 수 없는 상태가 되었다. (덕분에 썸네일의 앱아이콘은 건졌다.)
자책감이 많이 들었다. 솔직히 이전 프로젝트 였던 SaveFood 프로젝트를 수행 했으면, 이정도 앱은 집중과 몰입만 따라준다면 일주일이면 만들수 있어서다. ChatGPT5로 업그레이드된 모델은 .zip파일로 말아주기만 해도 전체 프로젝트를 분석해 줬고, Gemini 2.5 Pro와의 바이브코딩이 익숙한 상태였는데도 더이상 진행이 힘들다고 판단했다.
혼자 작업하는 1인개발자 혹은 솔로프리너(solopreneur)에게는 시간과 리듬이 참 중요하다고 느낀다. 육아를 하면서 앱을 개발하려니 수면→기저귀→수유→트림→놀이→수면 이라는 사이클에 한번 들어오면 시간과 집중력을 잃어버리곤 했다. 특히 어디 외출이라도 다녀오면 하루를 포기하게 되고, 이것이 반복이되어 일주일이 되면, 일을 한다는것을 포기 하게 됐다.
아, 난 육아휴직을 한것이었지...
내가 또 포기를 거듭하고 있는 동안 인공지능은 쉼없이 발전했다. 이전 프로젝트와 같이 PRD(Project Requirements Document)를 작성하면 안되겠다고 판단했다. GPT5가 업그레이드 되며 GPT-5 prompting guide 라는 것이 8월7일자로 공개 됐다.
GPT-5 prompting guide | OpenAI Cookbook
GPT-5, our newest flagship model, represents a substantial leap forward in agentic task performance, coding, raw intelligence, and steera...
cookbook.openai.com
이 가이드를 읽어보고, 나는 PRD를 AI-Ready 또는 AI-Friendly 하게 다시 작성하고 프로젝트를 재시작하기로 마음 먹었다. 기존에 내가 작성했던 PRD는 아래와 같다.
KindVerb AS-IS PRD
-
부제: 마음 연결을 위한 소통 안내서 (A Communication Guide for Connecting Hearts)
-
핵심 철학: 우리는 심리 전문가가 아니다. 우리는 세계적으로 검증된 소통 기술(NVC 등)을 사용자가 가장 필요한 순간에, 가장 사용하기 쉬운 형태로 제공하는 '똑똑하고 책임감 있는 소통 도구'를 만든다.
-
가족, 연인, 친구 등 가까운 사람과의 관계에서 어려움을 겪는 모든 사람.
-
말다툼 후 어색한 침묵을 깨고 먼저 화해의 손길을 내밀고 싶은 사람.
-
자신의 감정을 차분히 돌아보고, 상처주지 않는 건강한 방식으로 표현하고 싶은 사람.
-
심리 상담은 부담스럽지만, 관계 개선을 위한 실용적인 도구를 원하는 사람.
-
비폭력 대화법(NVC) 등 검증된 소통 기술을 쉽게 배우고 적용하고 싶은 사용자.
-
로그인 없이 즉시 사용 가능하며, 100% 오프라인에서 동작하는 프라이버시 존중 앱을 선호하는 사람.
- 상황별 화해 솔루션 (단계별 가이드)
- 관계 개선 라이브러리
- 지속적인 성장을 위한 '마음 노트'
- 프라이버시 및 즉시성
-
Language & Framework:
-
Core iOS Frameworks:
-
Localization (현지화):
-
Accessibility (접근성):
-
미니멀 & 차분함 (Minimal & Calm):
-
집중을 돕는 인터랙션:
-
텍스트 중심의 가독성:
-
긍정적이고 부드러운 UX Writing:
올해 3~4월에 CodeGuideDev를 통해서 작성 했던 그 방식 그대로 사용중 이었다. 난 이렇게 PRD를 작성 후 GPT나 Gemini에게 요청하여 구현계획문서(Implementation Plan), 프로젝트 요구사항 명세서(Project Requirements Document), 기능 명세서(Feature Specification Document), 앱 플로우 문서(App Flow Document), 비즈니스 모델 상세 명세서 (Business Model Specification), 백엔드 구조 명세서(Backend Structure Document), 프론트엔드 가이드라인 문서(Frontend Guidelines Document)를 인공지능이 작성하게 한 후 결과를 PRD와 함께 다시 인공지능에게 보내 바이브코딩을 시작하는 스타일 이었다.
문제는 이 짧은 PRD가 프로젝트가 커졌을때 인공지능이 코드 퀄리티를 높이거나 프로젝트를 끝낼 수 있는 과정에 대해 발목을 잡는다는것을 느꼈고, 더 상세하고 딥(Deep)하게 작성해야 겠다고 생각했다. 그리고 각 인공지능별 내가 원하는 바를 조금 더 명확히 입력해 두었다.
(나중에 내가 잊어버릴까봐 기록한다.)
ChatGPT
GPT의 개인맞춤설정에 들어가 보면, 'ChatGPT 맞춤 설정'에 들어갈 수 있다. 각 항목별 다음과 같이 입력 했다.
- 당신은 수익화 서비스를 발굴하는 최고의 기획자이자 마케터 입니다. 사용자로 부터 받은 아이디어 초안을 바탕으로 기가막히도록 수익화 측면에서 좋은 성과를 낼 만한 아이디어로 정리하여 보고합니다.
- 코드 작성이 끝나면 폴더 구조 부터 개별 파일의 역할 및 내용을 중학생도 이해 할 수 있도록 쉽게 설명해 주어야 합니다.
- 오류 처리는 NSError로 시작하는 옛날 방식으로 해서는 안되고, 조금더 현대화된 방식으로 해야 합니다.
- 프로그래밍 할 때는 completion 핸들러 방식이 사용되어서는 안되고, 최신 동시성 프로그래밍 방식인 async, await 방식으로 코드가 작성 되어야 합니다.
- SwiftUI로 프로젝트를 진행 할 때는 반드시 MVVM패턴으로 구현해야 하며, Best Practice 코드로 작성되어야 합니다.
- 모든 코드(전체 파일, AS-IS/TO-BE 형식의 일부 코드 포함)에는 고등학생 수준의 초보 개발자도 쉽게 이해할 수 있는 상세한 주석을 한 줄 한 줄 작성해야 합니다.
- 단순히 '무엇'을 하는 코드인지가 아니라, '왜' 이 코드를 사용해야 하는지, 어떤 원리로 작동하는지에 대한 설명을 포함해야 합니다.
- // MARK: - 와 // TODO:를 적극적으로 사용하여 코드의 가독성을 높여야 합니다.
- 모든 SwiftUI 버튼은 반드시 Button { // 액션 } label: { // 모양 } 형식으로만 작성해야 합니다.
- Button("텍스트") { ... } 과 같은 다른 형식은 절대 사용하지 마세요.
- 사용자에게 보이는 모든 텍스트(Text, Button, navigationTitle 등)는 코드에 직접 문자열을 입력하면 안 됩니다.
- 반드시 Localizable.xcstrings 파일에 고유한 **키(Key)**를 정의하고, 코드에서는 Text("정의한.키.이름") 처럼 키를 사용해야 합니다. 기본 언어는 항상 영어입니다.
Gemini
Gemini에도 마찬가지로 ChatGPT에 설정해둔 내용을 '저장된 정보'에 기입해 두었다. 이것을 입력해둔 상태에서 PRD를 온전히 내가 모두 작성하지 않고 인공지능을 통해 조금 더 고도화 시켰다. 그후 "AI-Ready PRD Super Guide & Fillable Template (Mobile App, SwiftUI + MVVM, async/awit) - GPT-5 Optimized" 라는 문서를 생성 할 수 있었고, 난 그것을 토대로 아래와 같은 목차로 PRD를 수정 해서 프로젝트를 시작하고 있다.
KindVerb TO-BE PRD
1. 요약 (Executive Summary)
2. 문제 정의 & 맥락 (Problem Statement & Context)
3. 목표, 비목표, 성공지표 (Goals, Non-Goals, Success Metrics)
4. 페르소나 & JTBD (Personas & Jobs To Be Done)
5. 주요 사용 사례 & 사용자 스토리 (Top Use Cases & User Stories)
6. 범위 & 우선순위 (Scope & Prioritization - Gherkin)
7. 앱플로우 & 정보구조 (App Flow & Information Architecture, IA)
8. UI/UX 요구사항 (UI/UX Requirements)
9. 플랫폼 & 기술결정 + 에러 도메인 (Platform & Tech Decisions + Error Domain)
10. 데이터모델 (Data Model - Entities, JSON, Relationships/States)
11. API개요 (API Overview - Auth, Endpoints, Errors, Rate)
12. 오프라인•동기화•캐싱 (Offline•Sync•Caching)
13. 보안•개인정보보호•컴플라이언스(Security•Privacy•Compliance)
14. 성능목표 & 품질기준 (Performance SLOs & Quality Bars)
15. 분석&텔레메트리 (Analytics & Telemetry)
16. 알림&인앱메시징 (Notifications & In-App Messaging)
17. 수익화&가격정책 (Monetization & Pricing)
18. 실험 (Experimentation - A/B, Feature Flags)
19. 수용기준&테스트계획 (Acceptance Criteria & Test Plan + Converage Mapping)
20. 위험•가정•의존성 (Risks•Assumptions•Dependencies)
21. 출시계획&마일스톤 (Release Plan & Milestones)
22. 범위 외 항목 (Out of Scope)
23. 용어집 (Glossary)
24. AI 프롬프트 엔벨로프 (AI Prompt Envelope - GPT5 Optimized Block)
25. 핸드오프 템플릿 (Handoffs Templates)
26. PRD 품질 체크리스트 (AI & Human)
'app > kindverb' 카테고리의 다른 글
Kindverb(카인드법) 프로젝트를 시작한 이유 (2) | 2025.08.15 |
---|