From f4b14fddf5ac5831edf83932333952b4c81f646c Mon Sep 17 00:00:00 2001 From: rupy1014 Date: Fri, 21 Nov 2025 07:07:35 +0900 Subject: [PATCH] Initial commit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ๐Ÿค– Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .claude/.DS_Store | Bin 0 -> 6148 bytes .claude/commands/README.appkit.md | 560 ++++++++++++ .claude/commands/appkit.customer.md | 279 ++++++ .claude/commands/appkit.design.md | 785 ++++++++++++++++ .claude/commands/appkit.merge.md | 506 +++++++++++ .claude/commands/appkit.mvp.md | 404 +++++++++ .claude/commands/appkit.new.md | 480 ++++++++++ .claude/commands/appkit.sales.md | 370 ++++++++ .claude/commands/appkit.spec.md | 430 +++++++++ .claude/commands/docs.md | 224 +++++ .claude/commands/market.channel.md | 516 +++++++++++ .claude/commands/market.communicate.md | 738 +++++++++++++++ .claude/commands/market.contents.md | 589 ++++++++++++ .claude/commands/market.customer.md | 434 +++++++++ .claude/skills/README.md | 195 ++++ .../skill.md | 554 ++++++++++++ .../skills/landing-page-copywriter/SKILL.md | 199 +++++ .claude/skills/ppt-slide-extractor/SKILL.md | 545 ++++++++++++ .../skills/youtube-narration-coach/SKILL.md | 840 ++++++++++++++++++ .specify/.DS_Store | Bin 0 -> 6148 bytes .specify/templates/spec-template.md | 115 +++ 21 files changed, 8763 insertions(+) create mode 100644 .claude/.DS_Store create mode 100644 .claude/commands/README.appkit.md create mode 100644 .claude/commands/appkit.customer.md create mode 100644 .claude/commands/appkit.design.md create mode 100644 .claude/commands/appkit.merge.md create mode 100644 .claude/commands/appkit.mvp.md create mode 100644 .claude/commands/appkit.new.md create mode 100644 .claude/commands/appkit.sales.md create mode 100644 .claude/commands/appkit.spec.md create mode 100644 .claude/commands/docs.md create mode 100644 .claude/commands/market.channel.md create mode 100644 .claude/commands/market.communicate.md create mode 100644 .claude/commands/market.contents.md create mode 100644 .claude/commands/market.customer.md create mode 100644 .claude/skills/README.md create mode 100644 .claude/skills/beginner-friendly-script-improver/skill.md create mode 100644 .claude/skills/landing-page-copywriter/SKILL.md create mode 100644 .claude/skills/ppt-slide-extractor/SKILL.md create mode 100644 .claude/skills/youtube-narration-coach/SKILL.md create mode 100644 .specify/.DS_Store create mode 100644 .specify/templates/spec-template.md diff --git a/.claude/.DS_Store b/.claude/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e22a2a07f4668e89f2d55d626e914a4d9b3b867b GIT binary patch literal 6148 zcmeHK%}T>S5Z<-bZYe?ziXIod7ObrlikA@U3mDOZN=;1BV45vWYY(N6tGSEM*bP!g)3> zndmQ?@Y@A@WQvX8_wD<`M1|n{2**jBOubA96wbx|KU2a83!(`m|H zciEJSUc1$lr=9L{Sr_|9$7h#=mt>TxH^U_d+O_OjEZ`lKwX$CQNt&qi34BFf5l=`A z5Cg;jF|a`l*h4@xHmGJQl^7rfe#QXq4-y)pYcV&dw+`s=`i%Z6A`0mEmOzviU5mLv z@PKfW3TRTfePVEv4t8ndT#LCulg_wa8RoGo7mpXNR|mV);f%WmsV4@AfmH@7X6WGg ze*u4)(ntPk3XO;XV&I=Kz^i?~??F-aY+Wl4&squX0U8R%<*0ywzH$kG0q!G*+G+d} ab%=8<<_2*VwCi+0x(H}Os3Qh`fq^d;?o7l0 literal 0 HcmV?d00001 diff --git a/.claude/commands/README.appkit.md b/.claude/commands/README.appkit.md new file mode 100644 index 0000000..253837b --- /dev/null +++ b/.claude/commands/README.appkit.md @@ -0,0 +1,560 @@ +# AppKit Framework + +**์•„์ด๋””์–ด๋ฅผ ๊ณ ๊ฐ ๊ฐ€์น˜๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋…ผ๋ฆฌ์  ์‚ฌ๊ณ  ํ”„๋ ˆ์ž„์›Œํฌ** + +--- + +## ๐ŸŽฏ Overview + +AppKit์€ ๋ง‰์—ฐํ•œ ์•„์ด๋””์–ด๋ฅผ ๊ณ ๊ฐ ์ค‘์‹ฌ์œผ๋กœ ๊ตฌ์ฒดํ™”ํ•˜์—ฌ MVP๋ถ€ํ„ฐ ์„ธ์ผ์ฆˆ๊นŒ์ง€ ์„ค๊ณ„ํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. + +**ํ•ต์‹ฌ ์ฒ ํ•™**: +1. ๊ณ ๊ฐ ๊ฐ€์น˜ ์šฐ์„  โ†’ ๊ธฐ๋Šฅ์ด ์•„๋‹Œ ๊ณ ๊ฐ์˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ์ค‘์‹ฌ +2. ๋…ผ๋ฆฌ์  ์‚ฌ๊ณ  ์—ฐ์Šต โ†’ ํฐ ์ž‘์—…์„ ์ž‘์€ ๋‹จ๊ณ„๋กœ ์ชผ๊ฐœ๊ธฐ +3. ์Šคํ† ๋ฆฌํ…”๋ง ๊ธฐ๋ฐ˜ โ†’ ๊ณ ๊ฐ์˜ ํ•˜๋ฃจ์™€ ๊ณ ๋ฏผ์„ ์ดํ•ดํ•˜๊ณ  ์„ค๋“ +4. MVP ์ค‘์‹ฌ ์‹คํ–‰ โ†’ ์ตœ์†Œํ•œ์˜ ๋ฒ”์œ„๋กœ ์ตœ๋Œ€ํ•œ์˜ ๊ฒ€์ฆ + +--- + +## ๐Ÿ“‹ Complete Workflow (๋…ผ๋ฆฌ์  ์‚ฌ๊ณ  7๋‹จ๊ณ„) + +``` +์•„์ด๋””์–ด ๊ตฌ์ฒดํ™” 7๋‹จ๊ณ„: +1. /appkit.new โ†’ ์•„์ด๋””์–ด ์Šค์ผ€์น˜ (์–ด๋–ค ์„œ๋น„์Šค์ธ์ง€?) +2. /appkit.spec โ†’ ๊ธฐ๋Šฅ ๊ตฌ์ฒดํ™” (๋ญ๊ฐ€ ํ•„์š”ํ• ๊นŒ? ๋ˆ„๊ฐ€ ์“ธ๊นŒ?) +3. /appkit.customer โ†’ ๊ณ ๊ฐ ์Šคํ† ๋ฆฌ (๊ณ ๊ฐ์˜ ํ•˜๋ฃจ, ๊ณ ๋ฏผ, ํ•ด๊ฒฐ) +4. /appkit.sales โ†’ ์„ธ์ผ์ฆˆ ๋žœ๋”ฉ ๊ตฌ์„ฑ (์–ด๋–ป๊ฒŒ ์„ค๋“ํ• ๊นŒ?) +5. /appkit.mvp โ†’ MVP ๋ฒ”์œ„ ์ •ํ•˜๊ธฐ (์ตœ์†Œํ•œ์œผ๋กœ ๊ฒ€์ฆํ•˜๋ ค๋ฉด?) +6. /appkit.merge โ†’ ๊ธฐํš ์ •๋ˆ (ํฉ์–ด์ง„ ๊ธฐํš ํ†ตํ•ฉ) +7. /appkit.design โ†’ ๊ฐœ๋ฐœ ์ค€๋น„ (API, ERD, ๊ธฐ์ˆ  ์ŠคํŽ™) +``` + +--- + +## ๐Ÿ”ง Commands + +### 1. `/appkit.new` - ์•„์ด๋””์–ด ์Šค์ผ€์น˜ + +**Purpose**: ๋ง‰์—ฐํ•œ ์•„์ด๋””์–ด๋ฅผ ์„œ๋น„์Šค ์ปจ์…‰์œผ๋กœ ๊ตฌ์ฒดํ™” + +**Input**: +``` +/appkit.new Tennis court booking app with coupons and promotions +``` + +**Output**: +- `docs/appkit/overview.md` - ์„œ๋น„์Šค ์ปจ์…‰ & ํ•ต์‹ฌ ๊ฐ€์น˜ +- `docs/appkit/specs/001-user/spec.md` - ๋นˆ ํ…œํ”Œ๋ฆฟ +- `docs/appkit/specs/002-venue/spec.md` - ๋นˆ ํ…œํ”Œ๋ฆฟ +- `docs/appkit/specs/003-booking/spec.md` - ๋นˆ ํ…œํ”Œ๋ฆฟ +- ... + +**Key Features**: +- ์„œ๋น„์Šค ๋ณธ์งˆ ํŒŒ์•… (๋ฌด์Šจ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋‚˜?) +- ์˜ˆ์ƒ ๊ณ ๊ฐ๊ตฐ ์ถ”๋ก  (๋ˆ„๊ฐ€ ์“ธ๊นŒ?) +- ํ•ต์‹ฌ ๊ฐ€์น˜ ์ œ์•ˆ (์™œ ์จ์•ผ ํ• ๊นŒ?) +- ๊ฒฝ์Ÿ ์ฐจ๋ณ„์  ์‹๋ณ„ (๋‹ค๋ฅธ ์„œ๋น„์Šค์™€ ๋ญ๊ฐ€ ๋‹ค๋ฅธ๊ฐ€?) + +--- + +### 2. `/appkit.spec` - ๊ธฐ๋Šฅ ๊ตฌ์ฒดํ™” + +**Purpose**: ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ๋„์ถœํ•˜๊ณ  ์‚ฌ์šฉ์ž ๊ด€์ ์—์„œ ๊ตฌ์ฒดํ™” + +**Input**: +``` +/appkit.spec 003-booking "search courts from main screen" +/appkit.spec 003-booking "time deal 30% discount within 2 days" +/appkit.spec 003-booking "cancel 24h+ before for 100% refund" +``` + +**Output**: +- `docs/appkit/specs/003-booking/spec.md` ์—…๋ฐ์ดํŠธ (์ฆ๋ถ„์‹ ๋ˆ„์ ) + +**Key Questions for Each Feature**: +- **๋ญ๊ฐ€ ํ•„์š”ํ• ๊นŒ?** โ†’ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋“ค ๋„์ถœ +- **๋ˆ„๊ฐ€ ์“ธ๊นŒ?** โ†’ ํƒ€๊ฒŸ ์‚ฌ์šฉ์ž ํ”„๋กœํŒŒ์ผ +- **์–ธ์ œ ์“ธ๊นŒ?** โ†’ ์‚ฌ์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค์™€ ์ƒํ™ฉ +- **์™œ ์“ธ๊นŒ?** โ†’ ํ•ด๊ฒฐํ•˜๋ ค๋Š” ๋ฌธ์ œ๋‚˜ ์š•๊ตฌ +- **์–ด๋–ป๊ฒŒ ์“ธ๊นŒ?** โ†’ ๊ตฌ์ฒด์ ์ธ ์‚ฌ์šฉ ํ”Œ๋กœ์šฐ +- **๊ฐ€์น˜๋Š”?** โ†’ ์‚ฌ์šฉ์ž๊ฐ€ ์–ป๋Š” ์ด์ต + +**์ค‘์š”**: ๊ธฐ์ˆ  ๊ตฌํ˜„๋ณด๋‹ค ์‚ฌ์šฉ์ž ๊ฐ€์น˜์— ์ง‘์ค‘! + +--- + +### 3. `/appkit.customer` - ๊ณ ๊ฐ ์Šคํ† ๋ฆฌ + +**Purpose**: ํƒ€๊ฒŸ ๊ณ ๊ฐ์„ ๋ช…ํ™•ํžˆ ํ•˜๊ณ  ๊ทธ๋“ค์˜ ํ•˜๋ฃจ์™€ ๊ณ ๋ฏผ์„ ์Šคํ† ๋ฆฌ๋กœ ๊ตฌ์„ฑ + +**Input**: +``` +/appkit.customer +/appkit.customer "30๋Œ€ ์ง์žฅ์ธ ์ฃผ๋ง ์šด๋™" +``` + +**Output**: +- `docs/appkit/customer-persona.md` - ๊ณ ๊ฐ ํŽ˜๋ฅด์†Œ๋‚˜ +- `docs/appkit/customer-journey.md` - ๊ณ ๊ฐ ์—ฌ์ • ์ง€๋„ + +**What it does**: +1. **ํŽ˜๋ฅด์†Œ๋‚˜ ๊ตฌ์„ฑ**: + - Demographics: ๋‚˜์ด, ์ง์—…, ์†Œ๋“, ๊ฑฐ์ฃผ์ง€ + - Psychographics: ๋ผ์ดํ”„์Šคํƒ€์ผ, ๊ฐ€์น˜๊ด€, ๊ด€์‹ฌ์‚ฌ + - Pain Points: ํ˜„์žฌ ๊ฒช๋Š” ๋ฌธ์ œ์™€ ๋ถˆํŽธํ•จ + - Goals: ๋‹ฌ์„ฑํ•˜๊ณ  ์‹ถ์€ ๋ชฉํ‘œ + +2. **๊ณ ๊ฐ์˜ ํ•˜๋ฃจ ์Šคํ† ๋ฆฌํ…”๋ง**: + ``` + 07:00 - ์ถœ๊ทผ ์ค€๋น„ํ•˜๋ฉฐ "์˜ค๋Š˜๋„ ์šด๋™ ๋ชปํ•˜๊ฒ ๋„ค..." + 09:00 - ํšŒ์‚ฌ ๋„์ฐฉ "์ฃผ๋ง์—” ๊ผญ ํ…Œ๋‹ˆ์Šค ์ณ์•ผ์ง€" + 12:00 - ์ ์‹ฌ์‹œ๊ฐ„ "์ฝ”ํŠธ ์˜ˆ์•ฝํ•˜๋ ค๋‹ˆ ์ „ํ™”ํ•ด์•ผ ํ•˜๋„ค..." + 18:00 - ํ‡ด๊ทผ "์ฃผ๋ง ์ฝ”ํŠธ ํ’€๋ถ€ํ‚น์ด๋ผ๋‹ˆ..." + 21:00 - ์ง‘ ๋„์ฐฉ "๋‚ด์ผ ์•„์นจ ์ผ์ฐ ์ „ํ™”ํ•ด์•ผ๊ฒ ๋‹ค" + ``` + +3. **๋ฌธ์ œ ํ•ด๊ฒฐ ์‹œ๋‚˜๋ฆฌ์˜ค**: + - Before: ๋ณต์žกํ•œ ์˜ˆ์•ฝ ๊ณผ์ •, ๋ถˆํ™•์‹คํ•œ ๊ฐ€๋Šฅ ์‹œ๊ฐ„ + - After: ์•ฑ์œผ๋กœ ๊ฐ„ํŽธ ์˜ˆ์•ฝ, ์‹ค์‹œ๊ฐ„ ํ™•์ธ, ํ• ์ธ๊นŒ์ง€ + +**์ค‘์š”**: ๊ณ ๊ฐ ์ค‘์‹ฌ ์‚ฌ๊ณ ์˜ ํ•ต์‹ฌ - ๊ธฐ๋Šฅ์ด ์•„๋‹Œ ๊ณ ๊ฐ์˜ ์‚ถ์„ ์ดํ•ด! + +--- + +### 4. `/appkit.sales` - ์„ธ์ผ์ฆˆ ๋žœ๋”ฉ ๊ตฌ์„ฑ + +**Purpose**: ๊ณ ๊ฐ์„ ์„ค๋“ํ•˜๋Š” ์„ธ์ผ์ฆˆ ๋ฉ”์‹œ์ง€ ๊ตฌ์„ฑ + +**Input**: +``` +/appkit.sales +/appkit.sales "time-saving for busy professionals" +``` + +**Output**: +- `docs/appkit/sales-landing.md` - ์„ธ์ผ์ฆˆ ๋žœ๋”ฉ ๊ตฌ์กฐ +- `docs/appkit/value-proposition.md` - ๊ฐ€์น˜ ์ œ์•ˆ + +**Landing Structure**: +1. **Hook (๋ฌธ์ œ ๊ณต๊ฐ)**: + - "๋งค๋ฒˆ ์ „ํ™”๋กœ ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝํ•˜๋А๋ผ ์ง€์น˜์…จ๋‚˜์š”?" + +2. **Problem Agitation (๋ฌธ์ œ ์‹ฌํ™”)**: + - ์ „ํ™” ๋Œ€๊ธฐ ์‹œ๊ฐ„ ํ‰๊ท  15๋ถ„ + - ์›ํ•˜๋Š” ์‹œ๊ฐ„๋Œ€ ์ด๋ฏธ ๋งŒ์„ + - ๊ฐ€๊ฒฉ ๋น„๊ต ๋ถˆ๊ฐ€๋Šฅ + +3. **Solution (ํ•ด๊ฒฐ์ฑ… ์ œ์‹œ)**: + - 3์ดˆ ๋งŒ์— ์‹ค์‹œ๊ฐ„ ์˜ˆ์•ฝ + - ๋ชจ๋“  ์ฝ”ํŠธ ๊ฐ€๊ฒฉ ํ•œ๋ˆˆ์— ๋น„๊ต + - ์ž๋™ ํ• ์ธ ์ ์šฉ + +4. **Social Proof (์‚ฌํšŒ์  ์ฆ๋ช…)**: + - "์ด๋ฏธ 5,000๋ช…์˜ ํ…Œ๋‹ˆ์Šค ๋™ํ˜ธ์ธ์ด ์‚ฌ์šฉ ์ค‘" + - ์‚ฌ์šฉ์ž ํ›„๊ธฐ์™€ ํ‰์  + +5. **CTA (ํ–‰๋™ ์œ ๋„)**: + - ์ฒซ ์˜ˆ์•ฝ 30% ํ• ์ธ + - ์ง€๊ธˆ ๊ฐ€์ž…ํ•˜๊ณ  ํ˜œํƒ๋ฐ›๊ธฐ + +**์ค‘์š”**: ๊ธฐ๋Šฅ ๋‚˜์—ด์ด ์•„๋‹Œ, ๊ณ ๊ฐ ๋ฌธ์ œ ํ•ด๊ฒฐ ์Šคํ† ๋ฆฌ! + +--- + +### 5. `/appkit.mvp` - MVP ๋ฒ”์œ„ ์ •์˜ + +**Purpose**: ์ตœ์†Œํ•œ์˜ ๊ธฐ๋Šฅ์œผ๋กœ ์ตœ๋Œ€ํ•œ์˜ ๊ฒ€์ฆ + +**Input**: +``` +/appkit.mvp +/appkit.mvp "2-week validation" +``` + +**Output**: +- `docs/appkit/mvp-scope.md` - MVP ๋ฒ”์œ„ ์ •์˜ +- `docs/appkit/mvp-metrics.md` - ๊ฒ€์ฆ ์ง€ํ‘œ + +**MVP Scoping Process**: +1. **ํ•ต์‹ฌ ๊ฐ€์น˜ ํŒŒ์•…**: + - ๊ณ ๊ฐ์ด ๊ฐ€์žฅ ์›ํ•˜๋Š” ONE thing์€? + - ์—†์œผ๋ฉด ์„œ๋น„์Šค ์˜๋ฏธ๊ฐ€ ์—†๋Š” ๊ธฐ๋Šฅ์€? + +2. **Phase ๋ถ„๋ฅ˜**: + ``` + Phase 0 (MVP - 2์ฃผ): + - ์ฝ”ํŠธ ๊ฒ€์ƒ‰/์˜ˆ์•ฝ (ํ•ต์‹ฌ) + - ๊ฐ„๋‹จํ•œ ๊ฒฐ์ œ + + Phase 1 (MVP+ - 1๊ฐœ์›”): + - ์‚ฌ์šฉ์ž ๋ฆฌ๋ทฐ + - ํ• ์ธ ์ฟ ํฐ + + Phase 2 (ํ™•์žฅ - 3๊ฐœ์›”): + - ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ๋Šฅ + - ์ฝ”์นญ ๋งค์นญ + ``` + +3. **๊ฒ€์ฆ ์ง€ํ‘œ ์„ค์ •**: + - Success Metrics: ์ฃผ๊ฐ„ ์˜ˆ์•ฝ 10๊ฑด + - Learning Metrics: ์ดํƒˆ ๊ตฌ๊ฐ„, ๋ถˆ๋งŒ ์‚ฌํ•ญ + - Next Decision: Phase 1 ์ง„ํ–‰ ์—ฌ๋ถ€ + +**MVP ์›์น™**: +- โŒ "์žˆ์œผ๋ฉด ์ข‹์„" ๊ธฐ๋Šฅ ์ œ์™ธ +- โœ… "์—†์œผ๋ฉด ์•ˆ๋˜๋Š”" ๊ธฐ๋Šฅ๋งŒ ํฌํ•จ +- ๋ชฉํ‘œ: ๋น ๋ฅธ ์‹œ์žฅ ๊ฒ€์ฆ, not ์™„๋ฒฝํ•œ ์ œํ’ˆ + +--- + + +## ๐ŸŒŠ Workflow Example (๊ณ ๊ฐ ์ค‘์‹ฌ ๋…ผ๋ฆฌ์  ์‚ฌ๊ณ ) + +### Example: Tennis Court Booking App + +```bash +# Step 1: ์•„์ด๋””์–ด ์Šค์ผ€์น˜ - "์–ด๋–ค ์„œ๋น„์Šค์ธ์ง€?" +$ /appkit.new Tennis court booking with coupons and time deals + +Claude: +๐Ÿ“‹ ์„œ๋น„์Šค ์ปจ์…‰: +- ๋ฌธ์ œ: ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ์ด ๋ฒˆ๊ฑฐ๋กญ๊ณ  ๋น„์‹ธ๋‹ค +- ํ•ด๊ฒฐ: ๋ชจ๋ฐ”์ผ๋กœ ๊ฐ„ํŽธ ์˜ˆ์•ฝ + ์ž๋™ ํ• ์ธ +- ํƒ€๊ฒŸ: ์ฃผ๋ง ์šด๋™์„ ์›ํ•˜๋Š” 30-40๋Œ€ ์ง์žฅ์ธ +- ๊ฐ€์น˜: ์‹œ๊ฐ„ ์ ˆ์•ฝ, ๋น„์šฉ ์ ˆ๊ฐ + +์ฃผ์š” ๊ธฐ๋Šฅ ๋ถ„๋ฅ˜: +- 001-user: ์‚ฌ์šฉ์ž ์ธ์ฆ +- 002-venue: ์ฝ”ํŠธ ๊ด€๋ฆฌ +- 003-booking: ์˜ˆ์•ฝ/๊ฒฐ์ œ +- 004-promotion: ํ• ์ธ/์ฟ ํฐ +- 005-review: ๋ฆฌ๋ทฐ + +โœ… Created service concept & 5 feature specs + +# Step 2: ๊ธฐ๋Šฅ ๊ตฌ์ฒดํ™” - "๋ญ๊ฐ€ ํ•„์š”ํ• ๊นŒ? ๋ˆ„๊ฐ€ ์“ธ๊นŒ?" +$ /appkit.spec 003-booking "search courts from main screen" + +๐Ÿ’ก ์‚ฌ์šฉ์ž ๊ฐ€์น˜ ๋ถ„์„: +- ๋ญ๊ฐ€ ํ•„์š”? โ†’ ์‹ค์‹œ๊ฐ„ ์ฝ”ํŠธ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ +- ๋ˆ„๊ฐ€? โ†’ ํ‡ด๊ทผ ํ›„ ํ”ผ๊ณคํ•œ ์ง์žฅ์ธ +- ์–ธ์ œ? โ†’ ์ง€ํ•˜์ฒ /๋ฒ„์Šค์—์„œ ์ด๋™ ์ค‘ +- ์™œ? โ†’ ๋น ๋ฅด๊ฒŒ ์ฃผ๋ง ์šด๋™ ๊ณ„ํš ์„ธ์šฐ๊ธฐ +- ์–ด๋–ป๊ฒŒ? โ†’ ์›ํ„ฐ์น˜๋กœ ๊ฐ€๊นŒ์šด ์ฝ”ํŠธ ์ฐพ๊ธฐ +- ๊ฐ€์น˜? โ†’ 5์ดˆ ๋งŒ์— ์˜ˆ์•ฝ ๊ฐ€๋Šฅ ํ™•์ธ + +โœ… User value added to spec + +$ /appkit.spec 003-booking "time deal 30% within 2 days" + +๐Ÿ’ก ์‚ฌ์šฉ์ž ๊ฐ€์น˜ ๋ถ„์„: +- ๋ญ๊ฐ€ ํ•„์š”? โ†’ ์‹œ๊ฐ„ ๊ธฐ๋ฐ˜ ์ž๋™ ํ• ์ธ ์‹œ์Šคํ…œ +- ๋ˆ„๊ฐ€? โ†’ ์œ ์—ฐํ•œ ์‹œ๊ฐ„๋Œ€ ๊ฐ€๋Šฅํ•œ ํ”„๋ฆฌ๋žœ์„œ +- ์–ธ์ œ? โ†’ ๊ฐ‘์ž๊ธฐ ์‹œ๊ฐ„์ด ์ƒ๊ฒผ์„ ๋•Œ +- ์™œ? โ†’ ์ €๋ ดํ•˜๊ฒŒ ์šด๋™ํ•˜๊ณ  ์‹ถ์–ด์„œ +- ๊ฐ€์น˜? โ†’ ์ •๊ฐ€์˜ 70%๋กœ ์ฆ‰์‹œ ์˜ˆ์•ฝ + +โœ… Features defined with user value + +# Step 3: ๊ณ ๊ฐ ์Šคํ† ๋ฆฌ - "๊ณ ๊ฐ์˜ ํ•˜๋ฃจ, ๊ณ ๋ฏผ, ํ•ด๊ฒฐ" +$ /appkit.customer + +๐ŸŽฏ Primary Persona: ๊น€๋Œ€๋ฆฌ (35์„ธ, IT ๊ธฐ์—…) + +ํ•˜๋ฃจ ์Šคํ† ๋ฆฌ: +07:00 - "์˜ค๋Š˜๋„ ์šด๋™ ๋ชปํ•˜๊ฒ ๋„ค..." (์ฃ„์ฑ…๊ฐ) +12:00 - "์ฃผ๋ง์—” ํ…Œ๋‹ˆ์Šค ์ณ์•ผ์ง€" (๊ฒฐ์‹ฌ) +18:00 - "์ฝ”ํŠธ ์˜ˆ์•ฝ ์ „ํ™”... ๊ท€์ฐฎ๋‹ค" (์ขŒ์ ˆ) +19:00 - [์•ฑ ๋ฐœ๊ฒฌ] "3์ดˆ ๋งŒ์— ์˜ˆ์•ฝ?" (ํฌ๋ง) +19:02 - "ํ† ์š”์ผ ์˜ค์ „ ์˜ˆ์•ฝ ์™„๋ฃŒ!" (๋งŒ์กฑ) +ํ† ์š”์ผ - "์šด๋™ ํ›„ ์ƒ์พŒํ•œ ์ฃผ๋ง" (์„ฑ์ทจ) + +โœ… Customer persona & journey mapped + +# Step 4: ์„ธ์ผ์ฆˆ ๋žœ๋”ฉ ๊ตฌ์„ฑ - "์–ด๋–ป๊ฒŒ ์„ค๋“ํ• ๊นŒ?" +$ /appkit.sales + +๐Ÿ“ข Landing Message: + +[Hook] +"๋งค์ฃผ ํ…Œ๋‹ˆ์Šค ์น˜๊ณ  ์‹ถ์€๋ฐ, ์˜ˆ์•ฝ์ด ๋„ˆ๋ฌด ๋ฒˆ๊ฑฐ๋กœ์šฐ์‹ ๊ฐ€์š”?" + +[Problem] +- ์ „ํ™” ๋Œ€๊ธฐ 15๋ถ„ +- ์›ํ•˜๋Š” ์‹œ๊ฐ„ ํ•ญ์ƒ ๋งŒ์„ +- ๋น„์‹ผ ์ •๊ฐ€ + +[Solution] +"3์ดˆ ์˜ˆ์•ฝ, ์ž๋™ ํ• ์ธ, ์‹ค์‹œ๊ฐ„ ๊ณต์„ ํ™•์ธ" + +[Proof] +"์ด๋ฏธ 5,000๋ช…์ด ๋งค์ฃผ ์‚ฌ์šฉ ์ค‘" + +[CTA] +"์ง€๊ธˆ ๊ฐ€์ž…ํ•˜๊ณ  ์ฒซ ์˜ˆ์•ฝ 30% ํ• ์ธ๋ฐ›๊ธฐ" + +โœ… Sales landing created + +# Step 5: MVP ๋ฒ”์œ„ - "์ตœ์†Œํ•œ์œผ๋กœ ๊ฒ€์ฆํ•˜๋ ค๋ฉด?" +$ /appkit.mvp + +๐ŸŽฏ MVP Scope (2์ฃผ ๊ฒ€์ฆ): + +Phase 0 (ํ•ต์‹ฌ๋งŒ): +- ์ฝ”ํŠธ ๊ฒ€์ƒ‰/์˜ˆ์•ฝ +- ๊ฐ„๋‹จ ๊ฒฐ์ œ +๋ชฉํ‘œ: ์ฃผ 10๊ฑด ์˜ˆ์•ฝ + +Phase 1 (1๊ฐœ์›”): +- ํ• ์ธ ์ฟ ํฐ +- ์‚ฌ์šฉ์ž ๋ฆฌ๋ทฐ +๋ชฉํ‘œ: ์žฌ๋ฐฉ๋ฌธ์œจ 30% + +Phase 2 (3๊ฐœ์›”): +- ์ปค๋ฎค๋‹ˆํ‹ฐ +- ์ฝ”์นญ ๋งค์นญ + +โœ… MVP phases defined + +# Step 6: ๊ธฐํš ์ •๋ˆ - "๊ธฐํš์ด ์ผ๊ด€์ ์ธ๊ฐ€?" +$ /appkit.merge + +๐Ÿ”„ Planning Consolidation: + +์šฉ์–ด ํ†ต์ผ์„ฑ ํ™•์ธ: +- "์˜ˆ์•ฝ" vs "๋ถ€ํ‚น" โ†’ "์˜ˆ์•ฝ"์œผ๋กœ ํ†ต์ผ +- "์‚ฌ์šฉ์ž" vs "์œ ์ €" โ†’ "์‚ฌ์šฉ์ž"๋กœ ํ†ต์ผ + +๊ธฐ๋Šฅ ์ค‘๋ณต ์ œ๊ฑฐ: +- spec 3๊ฐœ์†Œ์—์„œ ๋ฐœ๊ฒฌ๋œ "์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ" โ†’ ํ•˜๋‚˜๋กœ ํ†ตํ•ฉ +- customer journey์™€ sales์˜ ๋ฉ”์‹œ์ง€ ์ผ๊ด€์„ฑ ํ™•๋ณด + +๊ณ ๊ฐ ์—ฌ์ • - ๊ธฐ๋Šฅ ๋งคํ•‘: +โœ… "์ฃผ๋ง ์šด๋™ ๊ณ„ํš" โ†’ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ +โœ… "๊ฐ„ํŽธํ•œ ์˜ˆ์•ฝ" โ†’ ์›ํ„ฐ์น˜ ์˜ˆ์•ฝ +โœ… "๋น„์šฉ ์ ˆ๊ฐ" โ†’ ์ž๋™ ํ• ์ธ + +โœ… Planning consolidated + +# Step 7: ๊ฐœ๋ฐœ ์ค€๋น„ - "์–ด๋–ป๊ฒŒ ๋งŒ๋“ค๊นŒ?" +$ /appkit.design + +๐Ÿ—๏ธ Technical Design: + +ERD ์„ค๊ณ„: +- User, Venue, Booking, Payment ์—”ํ‹ฐํ‹ฐ +- ๊ด€๊ณ„ ์ •์˜ ๋ฐ ์ œ์•ฝ์กฐ๊ฑด + +API ์—”๋“œํฌ์ธํŠธ: +- POST /bookings (์˜ˆ์•ฝ ์ƒ์„ฑ) +- GET /venues?location=... (์ฝ”ํŠธ ๊ฒ€์ƒ‰) +- POST /payments (๊ฒฐ์ œ ์ฒ˜๋ฆฌ) + +๊ธฐ์ˆ  ์ •์ฑ…: +- Rate Limiting: ์‹œ๊ฐ„๋‹น 100ํšŒ +- Error Handling: ์žฌ์‹œ๋„ 3ํšŒ +- Content Safety: ํ•„ํ„ฐ ๊ทœ์น™ + +โœ… ์•„์ด๋””์–ด ๊ตฌ์ฒดํ™” ์™„๋ฃŒ! +์ด์ œ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +``` + +--- + +### 6. `/appkit.merge` - ๊ธฐํš ์ •๋ˆ + +**Purpose**: ํฉ์–ด์ง„ ๊ธฐํš ๋ฌธ์„œ๋“ค์„ ํ†ตํ•ฉํ•˜๊ณ  ์ผ๊ด€์„ฑ ํ™•๋ณด + +**Input**: +``` +/appkit.merge +/appkit.merge "์šฉ์–ด ํ†ต์ผ ์ค‘์ " +``` + +**Output**: +- `docs/appkit/merge/concept-map.md` - ํ†ตํ•ฉ ์ปจ์…‰ ๋งต +- `docs/appkit/merge/journey-feature-map.md` - ๊ณ ๊ฐ ์—ฌ์ • - ๊ธฐ๋Šฅ ๋งคํ•‘ +- `docs/appkit/merge/terminology.md` - ํ‘œ์ค€ ์šฉ์–ด ์‚ฌ์ „ +- `docs/appkit/merge/consolidated-specs.md` - ํ†ตํ•ฉ๋œ ๊ธฐ๋Šฅ ๋ช…์„ธ + +**What it does**: +1. **์šฉ์–ด ํ†ต์ผ์„ฑ ํ™•์ธ**: + - spec, customer, mvp์˜ ์šฉ์–ด ๋น„๊ต + - ํ‘œ์ค€ ์šฉ์–ด ์‚ฌ์ „ ์ƒ์„ฑ + +2. **๊ธฐ๋Šฅ ์ค‘๋ณต ์ œ๊ฑฐ**: + - ์—ฌ๋Ÿฌ ๋ฌธ์„œ์— ํฉ์–ด์ง„ ๋™์ผ ๊ธฐ๋Šฅ ํ†ตํ•ฉ + - ๊ธฐํš ๋ ˆ๋ฒจ์—์„œ ์ค‘๋ณต ํ•ด์†Œ + +3. **๊ณ ๊ฐ ๊ฐ€์น˜ ์ผ๊ด€์„ฑ**: + - customer journey์™€ sales ๋ฉ”์‹œ์ง€ ์ผ๊ด€์„ฑ + - ํ•ต์‹ฌ ๊ฐ€์น˜ ์ œ์•ˆ ๋ช…ํ™•ํ™” + +**์ค‘์š”**: MVP ๋ฒ”์œ„ ์ •์˜ ํ›„, ๊ฐœ๋ฐœ ์ค€๋น„ ์ „์— ์‹คํ–‰! + +--- + +### 7. `/appkit.design` - ๊ฐœ๋ฐœ ์ค€๋น„ + +**Purpose**: ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ๊ธฐ์ˆ  ์ŠคํŽ™ ์ƒ์„ฑ (ERD, API, ์ •์ฑ…) + +**Input**: +``` +/appkit.design +/appkit.design "RESTful API ์ค‘์ " +``` + +**Output**: +- `docs/appkit/design/entities.md` - ERD ๋ฐ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ +- `docs/appkit/design/apis.md` - API ์—”๋“œํฌ์ธํŠธ ์„ค๊ณ„ +- `docs/appkit/design/tech-policies.md` - ๊ธฐ์ˆ  ์ •์ฑ… +- `docs/appkit/design/screen-api-map.md` - ํ™”๋ฉด-API ๋งคํ•‘ + +**What it does**: +1. **ERD ์„ค๊ณ„**: + - ์—”ํ‹ฐํ‹ฐ ๋ฐ ๊ด€๊ณ„ ์ •์˜ + - Mermaid ๋‹ค์ด์–ด๊ทธ๋žจ ์ƒ์„ฑ + +2. **API ์—”๋“œํฌ์ธํŠธ ์„ค๊ณ„**: + - RESTful API ๋ช…์„ธ + - Request/Response ์˜ˆ์‹œ + +3. **๊ธฐ์ˆ  ์ •์ฑ… ์ •์˜**: + - Rate Limiting + - Error Handling + - Content Safety + - Data Management + +**์ค‘์š”**: merge ์™„๋ฃŒ ํ›„ ๊ฐœ๋ฐœ ์ง์ „์— ์‹คํ–‰! + +--- + + +--- + +## ๐ŸŽ“ ๋…ผ๋ฆฌ์  ์‚ฌ๊ณ  7๋‹จ๊ณ„์™€ ๋ช…๋ น์–ด + +| ๋‹จ๊ณ„ | ์งˆ๋ฌธ | ๋ช…๋ น์–ด | +|------|------|--------| +| 1. ์•„์ด๋””์–ด ์Šค์ผ€์น˜ | ์–ด๋–ค ์„œ๋น„์Šค์ธ๊ฐ€? | `/appkit.new` | +| 2. ๊ธฐ๋Šฅ ๊ตฌ์ฒดํ™” | ๋ญ๊ฐ€ ํ•„์š”ํ• ๊นŒ? ๋ˆ„๊ฐ€/์–ด๋–ป๊ฒŒ ์“ธ๊นŒ? | `/appkit.spec` | +| 3. ๊ณ ๊ฐ ์Šคํ† ๋ฆฌ | ๊ณ ๊ฐ์˜ ํ•˜๋ฃจ, ๊ณ ๋ฏผ, ํ•ด๊ฒฐ์€? | `/appkit.customer` | +| 4. ์„ธ์ผ์ฆˆ ๊ตฌ์„ฑ | ์–ด๋–ป๊ฒŒ ์„ค๋“ํ• ๊นŒ? | `/appkit.sales` | +| 5. MVP ๋ฒ”์œ„ | ์ตœ์†Œํ•œ์œผ๋กœ ๊ฒ€์ฆํ•˜๋ ค๋ฉด? | `/appkit.mvp` | +| 6. ๊ธฐํš ์ •๋ˆ | ๊ธฐํš์ด ์ผ๊ด€์ ์ธ๊ฐ€? | `/appkit.merge` | +| 7. ๊ฐœ๋ฐœ ์ค€๋น„ | ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค๊นŒ? | `/appkit.design` | + +--- + +## ๐Ÿ’ก Best Practices (๋…ผ๋ฆฌ์  ์‚ฌ๊ณ  ์—ฐ์Šต) + +### 1. ๊ณ ๊ฐ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ธฐ +- ๊ธฐ๋Šฅ์ด ์•„๋‹Œ ๊ณ ๊ฐ์˜ ๋ฌธ์ œ๋ถ€ํ„ฐ ์ƒ๊ฐํ•˜์„ธ์š” +- "๋ˆ„๊ฐ€ ์“ธ๊นŒ?" ์งˆ๋ฌธ์„ ๊ณ„์†ํ•˜์„ธ์š” + +### 2. ์ž‘์€ ๋‹จ๊ณ„๋กœ ์ชผ๊ฐœ๊ธฐ +- ํฐ ์ž‘์—…์„ 7-10๊ฐœ ์ž‘์€ ๋‹จ๊ณ„๋กœ ๋‚˜๋ˆ„์„ธ์š” +- ๊ฐ ๋‹จ๊ณ„๊ฐ€ ๋ช…ํ™•ํ•œ ๊ฒฐ๊ณผ๋ฌผ์„ ๊ฐ–๋„๋ก ํ•˜์„ธ์š” + +### 3. ์Šคํ† ๋ฆฌํ…”๋ง์œผ๋กœ ๊ฒ€์ฆ +- ๊ณ ๊ฐ์˜ ํ•˜๋ฃจ๋ฅผ ๊ทธ๋ ค๋ณด์„ธ์š” +- Before/After ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๊ตฌ์„ฑํ•˜์„ธ์š” + +### 4. MVP ๋จผ์ €, ์™„๋ฒฝ์€ ๋‚˜์ค‘์— +- "์—†์œผ๋ฉด ์•ˆ๋˜๋Š”" ๊ธฐ๋Šฅ๋งŒ Phase 0์— +- "์žˆ์œผ๋ฉด ์ข‹์€" ๊ธฐ๋Šฅ์€ Phase 1+๋กœ + +### 5. ์„ธ์ผ์ฆˆ ๊ด€์  ์œ ์ง€ +- ๊ธฐ๋Šฅ ์„ค๋ช…์ด ์•„๋‹Œ ๊ฐ€์น˜ ์„ค๋ช… +- ๊ณ ๊ฐ์ด ์–ป๋Š” ์ด์ต ์ค‘์‹ฌ์œผ๋กœ + +### 6. ๋น ๋ฅธ ๊ฒ€์ฆ, ๋น ๋ฅธ ํ”ผ๋ฒ— +- 2์ฃผ ์•ˆ์— MVP ๊ฒ€์ฆ +- ์‹คํŒจํ•ด๋„ ๋น ๋ฅด๊ฒŒ ๋ฐฉํ–ฅ ์ „ํ™˜ + +### 7. ์ธก์ • ๊ฐ€๋Šฅํ•œ ๋ชฉํ‘œ +- ๋ชจ๋“  Phase์— ๊ตฌ์ฒด์  ์ง€ํ‘œ ์„ค์ • +- ์ •์„ฑ์  + ์ •๋Ÿ‰์  ์ง€ํ‘œ ๊ท ํ˜• + +--- + +## ๐Ÿ“‚ Generated File Structure + +``` +docs/appkit/ +โ”œโ”€โ”€ overview.md # 1. ์„œ๋น„์Šค ์ปจ์…‰ (/appkit.new) +โ”œโ”€โ”€ specs/ +โ”‚ โ”œโ”€โ”€ 001-search/ +โ”‚ โ”‚ โ””โ”€โ”€ spec.md # 2. ๊ธฐ๋Šฅ ๊ตฌ์ฒดํ™” (/appkit.spec) +โ”‚ โ”œโ”€โ”€ 002-booking/ +โ”‚ โ”‚ โ””โ”€โ”€ spec.md +โ”‚ โ””โ”€โ”€ ... +โ”œโ”€โ”€ customer-persona.md # 3. ํƒ€๊ฒŸ ๊ณ ๊ฐ (/appkit.customer) +โ”œโ”€โ”€ customer-journey.md # 3. ๊ณ ๊ฐ ์Šคํ† ๋ฆฌ (/appkit.customer) +โ”œโ”€โ”€ sales-landing.md # 4. ์„ธ์ผ์ฆˆ ๋ฉ”์‹œ์ง€ (/appkit.sales) +โ”œโ”€โ”€ value-proposition.md # 4. ๊ฐ€์น˜ ์ œ์•ˆ (/appkit.sales) +โ”œโ”€โ”€ mvp-scope.md # 5. MVP ๋ฒ”์œ„ (/appkit.mvp) +โ”œโ”€โ”€ mvp-metrics.md # 5. ๊ฒ€์ฆ ์ง€ํ‘œ (/appkit.mvp) +โ”œโ”€โ”€ merge/ # 6. ๊ธฐํš ์ •๋ˆ (/appkit.merge) +โ”‚ โ”œโ”€โ”€ concept-map.md # ํ†ตํ•ฉ ์ปจ์…‰ ๋งต +โ”‚ โ”œโ”€โ”€ journey-feature-map.md # ๊ณ ๊ฐ ์—ฌ์ • - ๊ธฐ๋Šฅ ๋งคํ•‘ +โ”‚ โ”œโ”€โ”€ terminology.md # ํ‘œ์ค€ ์šฉ์–ด ์‚ฌ์ „ +โ”‚ โ””โ”€โ”€ consolidated-specs.md # ํ†ตํ•ฉ๋œ ๊ธฐ๋Šฅ ๋ช…์„ธ +โ””โ”€โ”€ design/ # 7. ๊ฐœ๋ฐœ ์ค€๋น„ (/appkit.design) + โ”œโ”€โ”€ entities.md # ERD ๋ฐ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ + โ”œโ”€โ”€ apis.md # API ์—”๋“œํฌ์ธํŠธ ์„ค๊ณ„ + โ”œโ”€โ”€ tech-policies.md # ๊ธฐ์ˆ  ์ •์ฑ… + โ””โ”€โ”€ screen-api-map.md # ํ™”๋ฉด-API ๋งคํ•‘ +``` + +--- + +## ๐Ÿš€ Quick Start + +```bash +# 1. ์•„์ด๋””์–ด ์Šค์ผ€์น˜ +/appkit.new "๋‹น๊ทผ๋งˆ์ผ“์ฒ˜๋Ÿผ ์ค‘๊ณ ๊ฑฐ๋ž˜ ์•ฑ" + +# 2. ๊ธฐ๋Šฅ ๊ตฌ์ฒดํ™” +/appkit.spec 001-search "์œ„์น˜ ๊ธฐ๋ฐ˜ ์ƒํ’ˆ ๊ฒ€์ƒ‰" +/appkit.spec 002-chat "๊ตฌ๋งค์ž์™€ ํŒ๋งค์ž ์ฑ„ํŒ…" + +# 3. ๊ณ ๊ฐ ์Šคํ† ๋ฆฌ +/appkit.customer "20-30๋Œ€ ์ค‘๊ณ ๊ฑฐ๋ž˜ ์„ ํ˜ธ" + +# 4. ์„ธ์ผ์ฆˆ ๋ฉ”์‹œ์ง€ ๊ตฌ์„ฑ +/appkit.sales "ํŽธ๋ฆฌํ•จ๊ณผ ์‹ ๋ขฐ ๊ฐ•์กฐ" + +# 5. MVP ๋ฒ”์œ„ ์ •์˜ +/appkit.mvp "2์ฃผ ๋‚ด ์ถœ์‹œ ๋ชฉํ‘œ" + +# 6. ๊ธฐํš ์ •๋ˆ +/appkit.merge + +# 7. ๊ฐœ๋ฐœ ์ค€๋น„ +/appkit.design +``` + +--- + + +## ๐Ÿ“– Philosophy (๋…ผ๋ฆฌ์  ์‚ฌ๊ณ  ์ฒ ํ•™) + +> "์•„์ด๋””์–ด๋Š” ๊ณ ๊ฐ์˜ ๋ฌธ์ œ์—์„œ ์‹œ์ž‘๋˜๊ณ , ๋…ผ๋ฆฌ์  ๋‹จ๊ณ„๋กœ ๊ตฌ์ฒดํ™”๋œ๋‹ค." + +AppKit์€ ๋‹ค์Œ์„ ๋ฏฟ์Šต๋‹ˆ๋‹ค: + +1. **๊ณ ๊ฐ ๋ฌธ์ œ ์šฐ์„ **: ๊ธฐ๋Šฅ๋ณด๋‹ค ๊ณ ๊ฐ์˜ Pain Point ํ•ด๊ฒฐ +2. **๋…ผ๋ฆฌ์  ๋ถ„ํ•ด**: ํฐ ์ž‘์—…์„ ์ž‘์€ ๋‹จ๊ณ„๋กœ ์ชผ๊ฐœ๊ธฐ +3. **์Šคํ† ๋ฆฌํ…”๋ง**: ๊ณ ๊ฐ์˜ ํ•˜๋ฃจ๋ฅผ ์ดํ•ดํ•˜๊ณ  ๊ณต๊ฐ +4. **๋น ๋ฅธ ๊ฒ€์ฆ**: MVP๋กœ ์‹œ์žฅ ๋ฐ˜์‘ ๋จผ์ € ํ™•์ธ +5. **๊ฐ€์น˜ ์ค‘์‹ฌ**: ๊ธฐ์ˆ ์ด ์•„๋‹Œ ๊ณ ๊ฐ ๊ฐ€์น˜๋กœ ์„ค๋“ +6. **์ธก์ •๊ณผ ํ•™์Šต**: ๋ชจ๋“  ๋‹จ๊ณ„์—์„œ ๋ฐฐ์šฐ๊ณ  ๊ฐœ์„  + +--- + +**Built with โค๏ธ for Product Managers, Designers, and Developers** + +**Version**: 5.0.0 (7-Step Logical Thinking) +**Last Updated**: 2025-11-20 +**Key Update**: ๋…ผ๋ฆฌ์  ์‚ฌ๊ณ  7๋‹จ๊ณ„๋กœ ์žฌ๊ตฌ์„ฑ, merge(๊ธฐํš ์ •๋ˆ)์™€ design(๊ฐœ๋ฐœ ์ค€๋น„) ๋ถ„๋ฆฌ diff --git a/.claude/commands/appkit.customer.md b/.claude/commands/appkit.customer.md new file mode 100644 index 0000000..a75c3f5 --- /dev/null +++ b/.claude/commands/appkit.customer.md @@ -0,0 +1,279 @@ +# appkit.customer + +**ํƒ€๊ฒŸ ๊ณ ๊ฐ์„ ๋ช…ํ™•ํžˆ ํ•˜๊ณ  ๊ทธ๋“ค์˜ ์Šคํ† ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ช…๋ น์–ด** + +--- + +## Overview + +**This is Step 3 of the logical thinking 7-step workflow**: + +``` +๋…ผ๋ฆฌ์  ์‚ฌ๊ณ  7๋‹จ๊ณ„: +1. /appkit.new โ†’ ์•„์ด๋””์–ด ์Šค์ผ€์น˜ (์–ด๋–ค ์„œ๋น„์Šค์ธ์ง€?) +2. /appkit.spec โ†’ ๊ธฐ๋Šฅ ๊ตฌ์ฒดํ™” (๋ญ๊ฐ€ ํ•„์š”ํ• ๊นŒ? ๋ˆ„๊ฐ€ ์“ธ๊นŒ?) +3. /appkit.customer โ†’ ๊ณ ๊ฐ ์Šคํ† ๋ฆฌ (๊ณ ๊ฐ์˜ ํ•˜๋ฃจ, ๊ณ ๋ฏผ, ํ•ด๊ฒฐ) โ† YOU ARE HERE +4. /appkit.sales โ†’ ์„ธ์ผ์ฆˆ ๋žœ๋”ฉ ๊ตฌ์„ฑ (์–ด๋–ป๊ฒŒ ์„ค๋“ํ• ๊นŒ?) +5. /appkit.mvp โ†’ MVP ๋ฒ”์œ„ ์ •ํ•˜๊ธฐ (์ตœ์†Œํ•œ์œผ๋กœ ๊ฒ€์ฆํ•˜๋ ค๋ฉด?) +6. /appkit.merge โ†’ ๊ธฐํš ์ •๋ˆ (ํฉ์–ด์ง„ ๊ธฐํš ํ†ตํ•ฉ) +7. /appkit.design โ†’ ๊ฐœ๋ฐœ ์ค€๋น„ (API, ERD, ๊ธฐ์ˆ  ์ŠคํŽ™) +``` + +## Purpose + +ํƒ€๊ฒŸ ๊ณ ๊ฐ์„ ๊ตฌ์ฒดํ™”ํ•˜๊ณ  ๊ทธ๋“ค์˜ ์ผ์ƒ๊ณผ ๋ฌธ์ œ๋ฅผ ์Šคํ† ๋ฆฌํ…”๋ง์œผ๋กœ ํ’€์–ด๋‚ด์–ด, +์„œ๋น„์Šค๊ฐ€ ์–ด๋–ค ๊ฐ€์น˜๋ฅผ ์ œ๊ณตํ•˜๋Š”์ง€ ๋ช…ํ™•ํžˆ ํ•ฉ๋‹ˆ๋‹ค. + +**ํ•ต์‹ฌ ์งˆ๋ฌธ**: "๋ˆ„๊ฐ€, ์™œ ์ด ์„œ๋น„์Šค๋ฅผ ์“ธ๊นŒ?" + +--- + +## When to Use + +- `/appkit.spec`์œผ๋กœ ๊ธฐ๋Šฅ๋“ค์„ ๊ตฌ์ฒดํ™”ํ•œ ํ›„ (Step 2 ์™„๋ฃŒ ํ›„) +- ํƒ€๊ฒŸ ๊ณ ๊ฐ์ด ์—ฌ์ „ํžˆ ๋ชจํ˜ธํ•  ๋•Œ +- ๊ณ ๊ฐ์˜ ๊ตฌ์ฒด์ ์ธ ์‚ฌ์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ํ•„์š”ํ•  ๋•Œ +- ์„ธ์ผ์ฆˆ ๋ฉ”์‹œ์ง€ ์ž‘์„ฑ ์ „ ๊ณ ๊ฐ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•  ๋•Œ + +--- + +## Usage + +```bash +/appkit.customer +/appkit.customer "30๋Œ€ ์ง์žฅ์ธ ์ฃผ๋ง ์šด๋™" +/appkit.customer "persona: busy professional" +/appkit.customer "journey: from problem to solution" +``` + +--- + +## What I'll Do + +### 1. ๊ณ ๊ฐ ํŽ˜๋ฅด์†Œ๋‚˜ ๊ตฌ์„ฑ (Customer Persona) + +**Primary Persona** (์ฃผ์š” ๊ณ ๊ฐ): +```markdown +## Primary Persona: [์ด๋ฆ„] ([๋‚˜์ด], [์ง์—…]) + +### Demographics (์ธ๊ตฌํ†ต๊ณ„) +- ๋‚˜์ด: 30-40๋Œ€ +- ์ง์—…: IT ๊ธฐ์—… ์ง์žฅ์ธ +- ์†Œ๋“: ์—ฐ 5000-8000๋งŒ์› +- ๊ฑฐ์ฃผ์ง€: ์„œ์šธ/๊ฒฝ๊ธฐ ์•„ํŒŒํŠธ +- ๊ฐ€์กฑ: ๊ธฐํ˜ผ, ์ž๋…€ 1-2๋ช… + +### Psychographics (์‹ฌ๋ฆฌ/ํ–‰๋™) +- ๋ผ์ดํ”„์Šคํƒ€์ผ: ์›Œ๋ผ๋ฐธ ์ถ”๊ตฌ, ๊ฑด๊ฐ• ๊ด€์‹ฌ ์ฆ๊ฐ€ +- ๊ฐ€์น˜๊ด€: ์‹œ๊ฐ„ ํšจ์œจ์„ฑ, ํŽธ์˜์„ฑ ์ค‘์‹œ +- ๊ด€์‹ฌ์‚ฌ: ์ฃผ๋ง ์šด๋™, ๊ฐ€์กฑ๊ณผ ์‹œ๊ฐ„ +- ๊ธฐ์ˆ  ์นœ์ˆ™๋„: ๋†’์Œ, ๋ชจ๋ฐ”์ผ ์•ฑ ์ผ์ƒํ™” + +### Pain Points (ํ˜„์žฌ ๊ณ ๋ฏผ) +1. ์šด๋™ํ•˜๊ณ  ์‹ถ์€๋ฐ ์‹œ๊ฐ„์ด ์—†๋‹ค +2. ์ฝ”ํŠธ ์˜ˆ์•ฝ์ด ๋„ˆ๋ฌด ๋ฒˆ๊ฑฐ๋กญ๋‹ค +3. ์›ํ•˜๋Š” ์‹œ๊ฐ„๋Œ€๋Š” ํ•ญ์ƒ ๋งŒ์„ +4. ๊ฐ€๊ฒฉ ๋น„๊ต๊ฐ€ ์–ด๋ ต๋‹ค + +### Goals (๋‹ฌ์„ฑํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ) +- ๊ทœ์น™์ ์ธ ์ฃผ๋ง ์šด๋™ +- ์ŠคํŠธ๋ ˆ์Šค ์—†๋Š” ์˜ˆ์•ฝ ๊ณผ์ • +- ํ•ฉ๋ฆฌ์ ์ธ ๊ฐ€๊ฒฉ์œผ๋กœ ์šด๋™ +- ๊ฐ€์กฑ/์นœ๊ตฌ์™€ ํ•จ๊ป˜ํ•˜๋Š” ์‹œ๊ฐ„ +``` + +**Secondary Personas** (๋ณด์กฐ ๊ณ ๊ฐ): +- ํ”„๋ฆฌ๋žœ์„œ (์‹œ๊ฐ„ ์œ ์—ฐ, ๊ฐ€๊ฒฉ ๋ฏผ๊ฐ) +- ๋Œ€ํ•™์ƒ (์ €๋ ดํ•œ ๊ฐ€๊ฒฉ ์„ ํ˜ธ) +- ์ฃผ๋ถ€ (ํ‰์ผ ๋‚ฎ ์‹œ๊ฐ„ ํ™œ์šฉ) + +### 2. ๊ณ ๊ฐ ์—ฌ์ • ๋งต (Customer Journey Map) + +**ํ•˜๋ฃจ์˜ ์Šคํ† ๋ฆฌํ…”๋ง**: + +```markdown +## ๊น€๋Œ€๋ฆฌ์˜ ํ•˜๋ฃจ (ํ˜„์žฌ - Problem State) + +### ํ‰์ผ +07:00 ๐Ÿ˜ด "์˜ค๋Š˜๋„ ์šด๋™ ๋ชปํ•˜๊ฒ ๋„ค..." (์ฃ„์ฑ…๊ฐ) +08:30 ๐Ÿš‡ ์ง€ํ•˜์ฒ ์—์„œ "์ฃผ๋ง์—” ๊ผญ ํ…Œ๋‹ˆ์Šค ์ณ์•ผ์ง€" (๋‹ค์ง) +12:00 ๐Ÿฝ๏ธ ์ ์‹ฌ์‹œ๊ฐ„ "์ฝ”ํŠธ ์˜ˆ์•ฝํ•˜๋ ค๋‹ˆ... ์ „ํ™”ํ•ด์•ผ ํ•˜๋‚˜?" (๊ท€์ฐฎ์Œ) +15:00 โ˜Ž๏ธ "์˜ˆ์•ฝ ์ „ํ™”... ํ†ตํ™”์ค‘์ด๋„ค" (์งœ์ฆ) +18:00 ๐Ÿ˜” "์ฃผ๋ง ์ฝ”ํŠธ ๋‹ค ์ฐผ๋Œ€..." (์‹ค๋ง) +21:00 ๐Ÿ  "๋‚ด์ผ ์•„์นจ ์ผ์ฐ ์ „ํ™”ํ•ด๋ณผ๊นŒ?" (๋ฏธ๋ฃธ) + +### ์ฃผ๋ง +ํ† ์š”์ผ ์˜ค์ „ - ๊ฒฐ๊ตญ ์šด๋™ ๋ชปํ•จ +์ผ์š”์ผ - ๊ฐ€์กฑ๊ณผ ์‹œ๊ฐ„ ๋ณด๋‚ด๋А๋ผ ํฌ๊ธฐ + +--- + +## ๊น€๋Œ€๋ฆฌ์˜ ํ•˜๋ฃจ (๋ฏธ๋ž˜ - Solution State) + +### ํ‰์ผ +07:00 ๐Ÿ“ฑ ์นจ๋Œ€์—์„œ ์•ฑ ์—ด๊ธฐ (3์ดˆ) +07:01 โœ… "ํ† ์š”์ผ ์˜ค์ „ 10์‹œ ์˜ˆ์•ฝ ์™„๋ฃŒ!" (๋งŒ์กฑ) +12:00 ๐Ÿ’ฐ "ํƒ€์ž„๋”œ 30% ํ• ์ธ ์•Œ๋ฆผ" (๊ธฐ์จ) +18:00 ๐Ÿ‘ฅ "๋™๋ฃŒ๋“ค๋„ ๊ฐ™์ด ์˜ˆ์•ฝํ• ๊นŒ?" (๊ณต์œ ) + +### ์ฃผ๋ง +ํ† ์š”์ผ 10:00 - ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ์—์„œ ์šด๋™ ์ค‘ +ํ† ์š”์ผ 12:00 - "์šด๋™ ํ›„ ์ƒ์พŒํ•ด!" (์„ฑ์ทจ๊ฐ) +์ผ์š”์ผ - ๊ฐ€์กฑ๊ณผ ์—ฌ์œ ๋กญ๊ฒŒ ์‹œ๊ฐ„ ๋ณด๋‚ด๊ธฐ +``` + +### 3. ๋ฌธ์ œ-ํ•ด๊ฒฐ ์‹œ๋‚˜๋ฆฌ์˜ค + +**Before (ํ˜„์žฌ ์ƒํ™ฉ)**: +``` +1. ์˜ˆ์•ฝํ•˜๋ ค๋ฉด โ†’ ์ „ํ™”ํ•ด์•ผ ํ•จ (15๋ถ„ ๋Œ€๊ธฐ) +2. ๊ฐ€๊ฒฉ ํ™•์ธ โ†’ ์ผ์ผ์ด ๋ฌผ์–ด๋ด์•ผ ํ•จ +3. ์‹œ๊ฐ„๋Œ€ ํ™•์ธ โ†’ ์ „ํ™”๋กœ๋งŒ ๊ฐ€๋Šฅ +4. ์ทจ์†Œ/๋ณ€๊ฒฝ โ†’ ๋˜ ์ „ํ™” +5. ๊ฒฐ๊ณผ โ†’ ํฌ๊ธฐํ•˜๊ฑฐ๋‚˜ ๋น„์‹ผ ๊ฐ’ ์ง€๋ถˆ +``` + +**After (์„œ๋น„์Šค ์‚ฌ์šฉ ํ›„)**: +``` +1. ์˜ˆ์•ฝ โ†’ ์•ฑ์—์„œ 3์ดˆ (์‹ค์‹œ๊ฐ„) +2. ๊ฐ€๊ฒฉ โ†’ ํ•œ๋ˆˆ์— ๋น„๊ต (ํˆฌ๋ช…) +3. ์‹œ๊ฐ„๋Œ€ โ†’ ๋‹ฌ๋ ฅ์œผ๋กœ ํ™•์ธ (์ง๊ด€์ ) +4. ์ทจ์†Œ/๋ณ€๊ฒฝ โ†’ ํด๋ฆญ ํ•œ ๋ฒˆ (๊ฐ„ํŽธ) +5. ๊ฒฐ๊ณผ โ†’ ๊ทœ์น™์  ์šด๋™ + 30% ์ ˆ์•ฝ +``` + +### 4. ๊ฐ์ • ๊ณก์„  (Emotional Journey) + +``` +ํ˜„์žฌ ๊ฒฝํ—˜: +๊ธฐ๋Œ€ โ†’ ๊ฒ€์ƒ‰ โ†’ ์ขŒ์ ˆ โ†’ ํฌ๊ธฐ +๐Ÿ˜Š โ†’ ๐Ÿ˜ โ†’ ๐Ÿ˜ค โ†’ ๐Ÿ˜” + +์„œ๋น„์Šค ๊ฒฝํ—˜: +๋ฐœ๊ฒฌ โ†’ ์‹œ๋„ โ†’ ์„ฑ๊ณต โ†’ ๋งŒ์กฑ โ†’ ์ถ”์ฒœ +๐Ÿ˜ โ†’ ๐Ÿ˜Š โ†’ ๐Ÿ˜ƒ โ†’ ๐Ÿ˜ โ†’ ๐ŸŽ‰ +``` + +### 5. ๊ณ ๊ฐ ์ธ์‚ฌ์ดํŠธ ๋„์ถœ + +**ํ•ต์‹ฌ ์ธ์‚ฌ์ดํŠธ**: +1. **์‹œ๊ฐ„์ด ๋ˆ๋ณด๋‹ค ์ค‘์š”**: 15๋ถ„ ๊ธฐ๋‹ค๋ฆฌ๋А๋‹ˆ ์กฐ๊ธˆ ๋” ๋‚ด๊ณ  ์•ฑ ์‚ฌ์šฉ +2. **์ฆ‰์‹œ์„ฑ ์ค‘์š”**: "์ง€๊ธˆ ๋‹น์žฅ" ์˜ˆ์•ฝ ํ™•์ • ๋ฐ›๊ณ  ์‹ถ์Œ +3. **ํˆฌ๋ช…์„ฑ ์š”๊ตฌ**: ๊ฐ€๊ฒฉ, ์‹œ๊ฐ„, ์œ„์น˜ ํ•œ๋ฒˆ์— ๋ณด๊ณ  ์‹ถ์Œ +4. **Social Proof**: ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๋„ ์“ฐ๋Š”์ง€ ๊ถ๊ธˆ +5. **์Šต๊ด€ ํ˜•์„ฑ**: ๊ทœ์น™์  ์šด๋™์„ ์›ํ•˜์ง€๋งŒ ์˜ˆ์•ฝ์ด ๋ฐฉํ•ด๋ฌผ + +--- + +## Output Files + +### ์ƒ์„ฑ๋  ํŒŒ์ผ๋“ค: + +1. **`docs/appkit/customer-persona.md`** + - Primary & Secondary ํŽ˜๋ฅด์†Œ๋‚˜ + - Demographics & Psychographics + - Pain Points & Goals + +2. **`docs/appkit/customer-journey.md`** + - ํ˜„์žฌ vs ๋ฏธ๋ž˜ ํ•˜๋ฃจ ์Šคํ† ๋ฆฌ + - ๊ฐ์ • ๊ณก์„  + - ํ„ฐ์น˜ํฌ์ธํŠธ ๋ถ„์„ + - ๊ธฐํšŒ ์˜์—ญ ์‹๋ณ„ + +--- + +## Integration Points + +### ๋‹ค๋ฅธ ๋ช…๋ น์–ด์™€์˜ ์—ฐ๊ณ„: + +- **From `/appkit.spec`**: ๊ธฐ๋Šฅ๋ณ„ ์‚ฌ์šฉ์ž ํ”„๋กœํŒŒ์ผ ์ˆ˜์ง‘ +- **To `/appkit.sales`**: ํŽ˜๋ฅด์†Œ๋‚˜๋ณ„ ๋ฉ”์‹œ์ง€ ๊ตฌ์„ฑ +- **To `/appkit.mvp`**: ํ•ต์‹ฌ ๊ณ ๊ฐ์˜ ํ•ต์‹ฌ ๋ฌธ์ œ ์šฐ์„  ํ•ด๊ฒฐ +- **To `/appkit.design`**: ์‚ฌ์šฉ์ž ํ”Œ๋กœ์šฐ ์„ค๊ณ„ ๊ธฐ์ดˆ + +--- + +## Examples + +### Example 1: ํ…Œ๋‹ˆ์Šค ์˜ˆ์•ฝ ์•ฑ +```bash +$ /appkit.customer + +๐ŸŽฏ Target Customer Analysis + +Primary: 30-40๋Œ€ ์ง์žฅ์ธ +- Pain: ์ „ํ™” ์˜ˆ์•ฝ ๋ฒˆ๊ฑฐ๋กœ์›€ +- Want: ๋น ๋ฅธ ์˜ˆ์•ฝ, ์ฃผ๋ง ์šด๋™ +- Value: ์‹œ๊ฐ„ ์ ˆ์•ฝ > ๋น„์šฉ ์ ˆ์•ฝ + +Journey Highlights: +- Morning: ์šด๋™ ๊ณ„ํš (์˜์ง€) +- Lunch: ์˜ˆ์•ฝ ์‹œ๋„ (์ขŒ์ ˆ) +- Evening: ํฌ๊ธฐ (์‹ค๋ง) +- Weekend: ์šด๋™ ๋ชปํ•จ (์ฃ„์ฑ…๊ฐ) + +Key Insight: +"์˜ˆ์•ฝ friction์ด ์šด๋™ ์˜์ง€๋ฅผ ๊บพ๋Š”๋‹ค" + +โœ… Generated customer-persona.md +โœ… Generated customer-journey.md +``` + +### Example 2: ์ถ”๊ฐ€ ํŽ˜๋ฅด์†Œ๋‚˜ ์ •์˜ +```bash +$ /appkit.customer "freelancer flexible schedule" + +๐ŸŽฏ Secondary Persona Added + +ํ”„๋ฆฌ๋žœ์„œ (28์„ธ): +- Pain: ๋น„์‹ผ prime time ๊ฐ€๊ฒฉ +- Want: ํ‰์ผ ๋‚ฎ ํ• ์ธ +- Value: ๊ฐ€๊ฒฉ > ์‹œ๊ฐ„๋Œ€ + +Opportunity: +"ํ‰์ผ ๋‚ฎ ์œ ํœด ์‹œ๊ฐ„ + ๊ฐ€๊ฒฉ ๋ฏผ๊ฐ ๊ณ ๊ฐ ๋งค์นญ" + +โœ… Updated customer-persona.md +``` + +--- + +## Key Principles + +### ๊ณ ๊ฐ ์ดํ•ด์˜ ์›์น™: + +1. **๊ณต๊ฐ ๋จผ์ €, ๊ธฐ๋Šฅ ๋‚˜์ค‘**: ๊ณ ๊ฐ์˜ ๊ฐ์ •์„ ์ดํ•ดํ•˜๋ผ +2. **๊ตฌ์ฒด์  ์Šคํ† ๋ฆฌ**: "30๋Œ€ ์ง์žฅ์ธ"์ด ์•„๋‹Œ "๊น€๋Œ€๋ฆฌ์˜ ํ•˜๋ฃจ" +3. **Before/After ๋Œ€๋น„**: ๋ณ€ํ™”๋ฅผ ๋ช…ํ™•ํžˆ ๋ณด์—ฌ์ฃผ๊ธฐ +4. **๊ฐ์ • ์ถ”์ **: ๊ฐ ๋‹จ๊ณ„์—์„œ ๊ณ ๊ฐ์ด ๋А๋ผ๋Š” ๊ฐ์ • +5. **์ธ์‚ฌ์ดํŠธ ๋„์ถœ**: ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹Œ ํ–‰๋™ ํŒจํ„ด ๋ฐœ๊ฒฌ + +--- + +## Tips + +### ํšจ๊ณผ์ ์ธ ํŽ˜๋ฅด์†Œ๋‚˜ ์ž‘์„ฑ: + +1. **์ด๋ฆ„์„ ๋ถ™์—ฌ๋ผ**: "User A"๊ฐ€ ์•„๋‹Œ "๊น€๋Œ€๋ฆฌ" +2. **ํ•˜๋ฃจ๋ฅผ ๊ทธ๋ ค๋ผ**: ์•„์นจ๋ถ€ํ„ฐ ์ €๋…๊นŒ์ง€ ๊ตฌ์ฒด์ ์œผ๋กœ +3. **๊ฐ์ •์„ ํ‘œํ˜„ํ•˜๋ผ**: ๐Ÿ˜Š๐Ÿ˜”๐Ÿ˜ค ์ด๋ชจ์ง€ ํ™œ์šฉ +4. **๋Œ€ํ™”์ฒด ์‚ฌ์šฉ**: "์•„, ๋˜ ๋งŒ์„์ด๋„ค..." ์‹ค์ œ ํ˜ผ์žฃ๋ง +5. **์ˆซ์ž๋กœ ๊ตฌ์ฒดํ™”**: "๋งŽ์ด"๊ฐ€ ์•„๋‹Œ "15๋ถ„ ๋Œ€๊ธฐ" + +--- + +## Next Steps + +### ์ด ๋ช…๋ น์–ด ์‹คํ–‰ ํ›„: + +**๐Ÿ“ ๋‹ค์Œ ๋‹จ๊ณ„: Step 4 - `/appkit.sales`** (์„ธ์ผ์ฆˆ ๋žœ๋”ฉ ๊ตฌ์„ฑ) +- ๊ณ ๊ฐ ํŽ˜๋ฅด์†Œ๋‚˜์™€ ์Šคํ† ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ค๋“ ๋ฉ”์‹œ์ง€ ์ž‘์„ฑ +- ๊ณ ๊ฐ์˜ ๋ฌธ์ œ์™€ ํ•ด๊ฒฐ์ฑ…์„ ์ค‘์‹ฌ์œผ๋กœ ๊ตฌ์„ฑ + +--- + +## Version + +- **Version**: 1.0.0 +- **Created**: 2025-11-19 +- **Philosophy**: "๊ธฐ๋Šฅ์ด ์•„๋‹Œ ๊ณ ๊ฐ์˜ ์‚ถ์„ ๋””์ž์ธํ•˜๋ผ" \ No newline at end of file diff --git a/.claude/commands/appkit.design.md b/.claude/commands/appkit.design.md new file mode 100644 index 0000000..130aea5 --- /dev/null +++ b/.claude/commands/appkit.design.md @@ -0,0 +1,785 @@ +# appkit.design + +**๊ฐœ๋ฐœ ์ค€๋น„ - API, ERD, ๊ธฐ์ˆ  ์ŠคํŽ™ ์„ค๊ณ„** + +--- + +## Overview + +**This is Step 7 of the logical thinking 7-step workflow**: + +``` +๋…ผ๋ฆฌ์  ์‚ฌ๊ณ  7๋‹จ๊ณ„: +1. /appkit.new โ†’ ์•„์ด๋””์–ด ์Šค์ผ€์น˜ (์–ด๋–ค ์„œ๋น„์Šค์ธ์ง€?) +2. /appkit.spec โ†’ ๊ธฐ๋Šฅ ๊ตฌ์ฒดํ™” (๋ญ๊ฐ€ ํ•„์š”ํ• ๊นŒ? ๋ˆ„๊ฐ€ ์“ธ๊นŒ?) +3. /appkit.customer โ†’ ๊ณ ๊ฐ ์Šคํ† ๋ฆฌ (๊ณ ๊ฐ์˜ ํ•˜๋ฃจ, ๊ณ ๋ฏผ, ํ•ด๊ฒฐ) +4. /appkit.sales โ†’ ์„ธ์ผ์ฆˆ ๋žœ๋”ฉ ๊ตฌ์„ฑ (์–ด๋–ป๊ฒŒ ์„ค๋“ํ• ๊นŒ?) +5. /appkit.mvp โ†’ MVP ๋ฒ”์œ„ ์ •ํ•˜๊ธฐ (์ตœ์†Œํ•œ์œผ๋กœ ๊ฒ€์ฆํ•˜๋ ค๋ฉด?) +6. /appkit.merge โ†’ ๊ธฐํš ์ •๋ˆ (ํฉ์–ด์ง„ ๊ธฐํš ํ†ตํ•ฉ) +7. /appkit.design โ†’ ๊ฐœ๋ฐœ ์ค€๋น„ (API, ERD, ๊ธฐ์ˆ  ์ŠคํŽ™) โ† YOU ARE HERE +``` + +## Purpose + +merge์—์„œ ์ •๋ˆ๋œ ๊ธฐํš์„ ๊ธฐ๋ฐ˜์œผ๋กœ, ์‹ค์ œ ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ **๊ธฐ์ˆ  ์ŠคํŽ™**์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. +๊ธฐํš ๋ ˆ๋ฒจ(merge)๊ณผ ๊ตฌํ˜„ ๋ ˆ๋ฒจ(๊ฐœ๋ฐœ) ์‚ฌ์ด์˜ ๋‹ค๋ฆฌ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. + +**ํ•ต์‹ฌ ์งˆ๋ฌธ**: "๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ญ˜ ์ „๋‹ฌํ•ด์•ผ ํ•˜๋‚˜? ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค๊นŒ?" + +--- + +## When to Use + +- `/appkit.merge`๋กœ ๊ธฐํš์„ ์ •๋ˆํ•œ ํ›„ (Step 6 ์™„๋ฃŒ ํ›„) +- ๊ฐœ๋ฐœ ์‹œ์ž‘ ์ง์ „ +- ๊ธฐ์ˆ  ์ŠคํŽ™์ด ํ•„์š”ํ•  ๋•Œ +- ERD, API ์„ค๊ณ„๊ฐ€ ํ•„์š”ํ•  ๋•Œ + +--- + +## Usage + +```bash +/appkit.design +/appkit.design "persona ๋„๋ฉ”์ธ ์ง‘์ค‘" +/appkit.design "API ์šฐ์„ " +``` + +--- + +## What I'll Do + +### 1. ์†Œ์Šค ๋ฌธ์„œ ์ฝ๊ธฐ + +**์ฝ์„ ํŒŒ์ผ๋“ค**: +- `docs/appkit/merge/concept-map.md` (ํ†ตํ•ฉ ์ปจ์…‰) +- `docs/appkit/merge/consolidated-specs.md` (ํ†ตํ•ฉ ์ŠคํŽ™) +- `docs/appkit/merge/journey-feature-map.md` (๊ธฐ๋Šฅ ๋งคํ•‘) +- `docs/appkit/mvp-scope.md` (MVP ๋ฒ”์œ„) + +### 2. ๋ฐ์ดํ„ฐ ์—”ํ‹ฐํ‹ฐ ์„ค๊ณ„ (ERD) + +**Output**: `docs/appkit/design/entities.md` + +```markdown +# Data Entity Design (ERD) + +*์ƒ์„ฑ ๊ธฐ์ค€: concept-map.md, consolidated-specs.md* +*์ƒ์„ฑ์ผ: 2025-11-20* + +--- + +## Entity Relationship Diagram + +```mermaid +erDiagram + Persona ||--o{ Content : generates + Content ||--|| Post : becomes + Schedule ||--o{ Post : manages + + Persona { + int id PK + string name + int age + string personality + string tone + string language + json style_rules + datetime created_at + } + + Content { + int id PK + int persona_id FK + string topic + string image_url + text caption + json hashtags + enum status + datetime generated_at + } + + Post { + int id PK + int content_id FK + string platform + datetime scheduled_at + datetime posted_at + enum status + } + + Schedule { + int id PK + time execution_time + bool is_active + json target_personas + } +``` +``` + +--- + +## Entity Details + +### Entity: Persona + +**Purpose**: ์บ๋ฆญํ„ฐ๋ณ„ ํŽ˜๋ฅด์†Œ๋‚˜ ์ •๋ณด ์ €์žฅ + +**Table Name**: `personas` + +**Fields**: + +| Field | Type | Constraints | Description | +|-------|------|-------------|-------------| +| id | INT | PK, AUTO_INCREMENT | ํŽ˜๋ฅด์†Œ๋‚˜ ๊ณ ์œ  ID | +| name | VARCHAR(100) | NOT NULL | ์บ๋ฆญํ„ฐ ์ด๋ฆ„ | +| age | INT | NOT NULL | ์บ๋ฆญํ„ฐ ๋‚˜์ด | +| personality | TEXT | NOT NULL | ์„ฑ๊ฒฉ ์„ค๋ช… | +| tone | VARCHAR(50) | NOT NULL | ๋งํˆฌ (๋ฐ์€/์ „๋ฌธ๊ฐ€/์นœ๊ทผํ•œ) | +| language | VARCHAR(10) | NOT NULL | ์–ธ์–ด (ko/en/ja) | +| style_rules | JSON | NULL | ์Šคํƒ€์ผ ๊ทœ์น™ (์ด๋ชจํ‹ฐ์ฝ˜, ๋ฐ˜๋ง/์กด๋Œ“๋ง) | +| created_at | DATETIME | NOT NULL, DEFAULT NOW() | ์ƒ์„ฑ ์‹œ๊ฐ„ | + +**Relationships**: +- `Persona.id` โ†’ `Content.persona_id` (1:N) + +**Business Rules**: +- ํ•œ ํŽ˜๋ฅด์†Œ๋‚˜๋Š” ์—ฌ๋Ÿฌ ์ฝ˜ํ…์ธ  ์ƒ์„ฑ ๊ฐ€๋Šฅ +- ํŽ˜๋ฅด์†Œ๋‚˜ ์‚ญ์ œ ์‹œ ์ƒ์„ฑ๋œ ์ฝ˜ํ…์ธ ๋Š” ๋ณด์กด (FK: RESTRICT) + +**Sample Data**: +```json +{ + "id": 1, + "name": "๋ฐ์€ 20๋Œ€ ์—ฌ์„ฑ", + "age": 25, + "personality": "๊ธ์ •์ ์ด๊ณ  ์นœ๊ทผํ•œ ์„ฑ๊ฒฉ", + "tone": "๋ฐ์€", + "language": "ko", + "style_rules": { + "emoji_frequency": "high", + "formality": "casual", + "hashtag_style": "trendy" + }, + "created_at": "2025-01-01T10:00:00Z" +} +``` + +--- + +### Entity: Content + +**Purpose**: AI๊ฐ€ ์ƒ์„ฑํ•œ ์ฝ˜ํ…์ธ  ์ €์žฅ + +**Table Name**: `contents` + +**Fields**: + +| Field | Type | Constraints | Description | +|-------|------|-------------|-------------| +| id | INT | PK, AUTO_INCREMENT | ์ฝ˜ํ…์ธ  ๊ณ ์œ  ID | +| persona_id | INT | FK โ†’ personas.id, NOT NULL | ์ƒ์„ฑํ•œ ํŽ˜๋ฅด์†Œ๋‚˜ | +| topic | VARCHAR(200) | NOT NULL | ์ฃผ์ œ | +| image_url | VARCHAR(500) | NOT NULL | ์ด๋ฏธ์ง€ URL (Midjourney) | +| caption | TEXT | NOT NULL | ์บก์…˜ (GPT ์ƒ์„ฑ) | +| hashtags | JSON | NULL | ํ•ด์‹œํƒœ๊ทธ ๋ฐฐ์—ด | +| status | ENUM | NOT NULL | draft, approved, posted | +| generated_at | DATETIME | NOT NULL, DEFAULT NOW() | ์ƒ์„ฑ ์‹œ๊ฐ„ | + +**Enums**: +- `status`: `draft` (์ƒ์„ฑ๋จ), `approved` (๊ฒ€ํ†  ์™„๋ฃŒ), `posted` (ํฌ์ŠคํŒ…๋จ) + +**Relationships**: +- `Content.persona_id` โ†’ `Persona.id` (N:1) +- `Content.id` โ†’ `Post.content_id` (1:1) + +**Business Rules**: +- ํ•˜๋‚˜์˜ ์ฝ˜ํ…์ธ ๋Š” ํ•˜๋‚˜์˜ ํฌ์ŠคํŠธ๋กœ ๋ณ€ํ™˜ +- ์บก์…˜ ๊ธธ์ด: ์ตœ์†Œ 50์ž, ์ตœ๋Œ€ 2200์ž (Instagram ์ œํ•œ) + +--- + +### Entity: Post + +**Purpose**: ์‹ค์ œ ํฌ์ŠคํŒ… ๊ธฐ๋ก + +**Table Name**: `posts` + +**Fields**: + +| Field | Type | Constraints | Description | +|-------|------|-------------|-------------| +| id | INT | PK, AUTO_INCREMENT | ํฌ์ŠคํŠธ ๊ณ ์œ  ID | +| content_id | INT | FK โ†’ contents.id, UK, NOT NULL | ์—ฐ๊ฒฐ๋œ ์ฝ˜ํ…์ธ  | +| platform | VARCHAR(50) | NOT NULL | instagram, twitter, etc | +| scheduled_at | DATETIME | NOT NULL | ์˜ˆ์•ฝ ์‹œ๊ฐ„ | +| posted_at | DATETIME | NULL | ์‹ค์ œ ํฌ์ŠคํŒ… ์‹œ๊ฐ„ | +| status | ENUM | NOT NULL | pending, posted, failed | + +**Enums**: +- `status`: `pending` (๋Œ€๊ธฐ), `posted` (์™„๋ฃŒ), `failed` (์‹คํŒจ) + +**Relationships**: +- `Post.content_id` โ†’ `Content.id` (1:1) + +**Business Rules**: +- ํ•˜๋‚˜์˜ ์ฝ˜ํ…์ธ ๋Š” ํ•˜๋‚˜์˜ ํฌ์ŠคํŠธ +- ํฌ์ŠคํŒ… ์‹คํŒจ ์‹œ ์žฌ์‹œ๋„ ๋กœ์ง ํ•„์š” + +--- + +## Summary + +- **Total Entities**: 4 (Persona, Content, Post, Schedule) +- **Total Relationships**: 3 (1:N, 1:1) +- **Foreign Keys**: 3 + +**Entity Dependencies** (๊ตฌํ˜„ ์ˆœ์„œ): +1. **No dependencies**: Persona, Schedule (๋จผ์ € ๊ตฌํ˜„) +2. **Depends on 1**: Content (needs Persona) +3. **Depends on 2**: Post (needs Content) +``` + +### 3. API ์—”๋“œํฌ์ธํŠธ ์„ค๊ณ„ + +**Output**: `docs/appkit/design/apis.md` + +```markdown +# API Endpoint Design + +*์ƒ์„ฑ ๊ธฐ์ค€: entities.md, consolidated-specs.md* +*API Style: RESTful* +*Base URL: `/api/v1`* + +--- + +## 1. Persona APIs + +### 1.1 Create Persona + +**Endpoint**: `POST /personas` + +**Description**: ์ƒˆ๋กœ์šด ํŽ˜๋ฅด์†Œ๋‚˜ ์ƒ์„ฑ + +**Request Body**: +```json +{ + "name": "๋ฐ์€ 20๋Œ€ ์—ฌ์„ฑ", + "age": 25, + "personality": "๊ธ์ •์ ์ด๊ณ  ์นœ๊ทผํ•œ ์„ฑ๊ฒฉ", + "tone": "๋ฐ์€", + "language": "ko", + "style_rules": { + "emoji_frequency": "high", + "formality": "casual" + } +} +``` + +**Success Response** (201 Created): +```json +{ + "persona": { + "id": 1, + "name": "๋ฐ์€ 20๋Œ€ ์—ฌ์„ฑ", + "age": 25, + "tone": "๋ฐ์€", + "created_at": "2025-01-01T10:00:00Z" + } +} +``` + +**Error Responses**: +- 400 Bad Request: Validation failed + +**Related Spec**: 001-persona/spec.md +**Related Entity**: Persona + +--- + +### 1.2 List Personas + +**Endpoint**: `GET /personas` + +**Description**: ๋ชจ๋“  ํŽ˜๋ฅด์†Œ๋‚˜ ์กฐํšŒ + +**Success Response** (200 OK): +```json +{ + "personas": [ + { + "id": 1, + "name": "๋ฐ์€ 20๋Œ€ ์—ฌ์„ฑ", + "age": 25, + "tone": "๋ฐ์€" + }, + { + "id": 2, + "name": "์ „๋ฌธ๊ฐ€ 30๋Œ€ ๋‚จ์„ฑ", + "age": 32, + "tone": "์ „๋ฌธ๊ฐ€" + } + ], + "total": 2 +} +``` + +--- + +## 2. Content APIs + +### 2.1 Generate Content + +**Endpoint**: `POST /contents/generate` + +**Description**: AI๋กœ ์ฝ˜ํ…์ธ  ์ž๋™ ์ƒ์„ฑ + +**Request Body**: +```json +{ + "persona_id": 1, + "topic": "์˜ค๋Š˜์˜ ์šด๋™ ๋ฃจํ‹ด", + "auto_post": false +} +``` + +**Success Response** (201 Created): +```json +{ + "content": { + "id": 101, + "persona_id": 1, + "topic": "์˜ค๋Š˜์˜ ์šด๋™ ๋ฃจํ‹ด", + "image_url": "https://midjourney.com/...", + "caption": "์˜ค๋Š˜๋„ ์—ด์‹ฌํžˆ ์šด๋™ํ–ˆ์–ด์š”! ๐Ÿ’ช...", + "hashtags": ["์šด๋™", "ํ—ฌ์Šค", "๋ฃจํ‹ด"], + "status": "draft", + "generated_at": "2025-01-01T07:00:00Z" + } +} +``` + +**Business Logic**: +1. persona_id๋กœ ํŽ˜๋ฅด์†Œ๋‚˜ ์ •๋ณด ์กฐํšŒ +2. Midjourney API ํ˜ธ์ถœ (์ด๋ฏธ์ง€ ์ƒ์„ฑ) +3. GPT API ํ˜ธ์ถœ (์บก์…˜ ์ƒ์„ฑ, ํŽ˜๋ฅด์†Œ๋‚˜ ํ†ค ๋ฐ˜์˜) +4. ์ƒ์„ฑ๋œ ์ฝ˜ํ…์ธ  DB ์ €์žฅ (status: draft) +5. auto_post = true๋ฉด ์ž๋™ ํฌ์ŠคํŒ… ์˜ˆ์•ฝ + +**Error Responses**: +- 404 Not Found: Persona not found +- 502 Bad Gateway: Midjourney/GPT API ์‹คํŒจ +- 503 Service Unavailable: API rate limit ์ดˆ๊ณผ + +**Related Spec**: 002-content/spec.md +**Related Entity**: Content, Persona + +--- + +### 2.2 List Contents + +**Endpoint**: `GET /contents` + +**Query Parameters**: +``` +?persona_id=1 // Filter by persona +&status=draft // Filter by status +&date=2025-01-01 // Filter by generation date +&limit=20 +&page=1 +``` + +**Success Response** (200 OK): +```json +{ + "contents": [ + { + "id": 101, + "persona_id": 1, + "topic": "์˜ค๋Š˜์˜ ์šด๋™ ๋ฃจํ‹ด", + "image_url": "https://...", + "status": "draft", + "generated_at": "2025-01-01T07:00:00Z" + } + ], + "pagination": { + "total": 45, + "page": 1, + "limit": 20 + } +} +``` + +--- + +## 3. Schedule APIs + +### 3.1 Create Schedule + +**Endpoint**: `POST /schedules` + +**Description**: ์ž๋™ ์ƒ์„ฑ ์Šค์ผ€์ค„ ๋“ฑ๋ก + +**Request Body**: +```json +{ + "execution_time": "07:00", + "target_personas": [1, 2, 3], + "is_active": true +} +``` + +**Success Response** (201 Created): +```json +{ + "schedule": { + "id": 1, + "execution_time": "07:00", + "target_personas": [1, 2, 3], + "is_active": true + } +} +``` + +**Business Logic**: +- Cron job ์ƒ์„ฑ (๋งค์ผ 07:00 ์‹คํ–‰) +- ์‹คํ–‰ ์‹œ target_personas์˜ ๊ฐ ํŽ˜๋ฅด์†Œ๋‚˜๋กœ ์ฝ˜ํ…์ธ  ์ƒ์„ฑ +- ์ƒ์„ฑ ํ›„ ์ž๋™ ํฌ์ŠคํŒ… + +**Related Spec**: 003-schedule/spec.md +**Related Entity**: Schedule + +--- + +## 4. Post APIs + +### 4.1 Create Post + +**Endpoint**: `POST /posts` + +**Description**: ์ฝ˜ํ…์ธ ๋ฅผ ํฌ์ŠคํŒ…์œผ๋กœ ์˜ˆ์•ฝ + +**Request Body**: +```json +{ + "content_id": 101, + "platform": "instagram", + "scheduled_at": "2025-01-01T12:00:00Z" +} +``` + +**Success Response** (201 Created): +```json +{ + "post": { + "id": 201, + "content_id": 101, + "platform": "instagram", + "scheduled_at": "2025-01-01T12:00:00Z", + "status": "pending" + } +} +``` + +**Business Logic**: +1. content_id๋กœ ์ฝ˜ํ…์ธ  ์กฐํšŒ +2. ํฌ์ŠคํŠธ ์ƒ์„ฑ (status: pending) +3. scheduled_at ์‹œ๊ฐ„์— Instagram API ํ˜ธ์ถœ +4. ์„ฑ๊ณต ์‹œ status = posted, ์‹คํŒจ ์‹œ status = failed + +**Related Spec**: 003-schedule/spec.md (ํฌ์ŠคํŒ…) +**Related Entity**: Post, Content + +--- + +## API Summary + +| Domain | Endpoints | Description | +|--------|-----------|-------------| +| Persona | 3 (create, list, update) | ํŽ˜๋ฅด์†Œ๋‚˜ ๊ด€๋ฆฌ | +| Content | 2 (generate, list) | ์ฝ˜ํ…์ธ  ์ƒ์„ฑ | +| Schedule | 2 (create, list) | ์Šค์ผ€์ค„ ๊ด€๋ฆฌ | +| Post | 2 (create, list) | ํฌ์ŠคํŒ… ๊ด€๋ฆฌ | + +**Total Endpoints**: 9 + +--- + +## Error Response Format + +**Standard Error Response**: +```json +{ + "error": { + "code": "API_RATE_LIMIT", + "message": "Midjourney API rate limit exceeded", + "details": { + "limit": 50, + "current": 51, + "reset_at": "2025-01-01T08:00:00Z" + } + } +} +``` + +**Error Codes**: +- `VALIDATION_ERROR`: ์ž…๋ ฅ ๊ฒ€์ฆ ์‹คํŒจ +- `API_RATE_LIMIT`: API ์ œํ•œ ์ดˆ๊ณผ +- `GENERATION_FAILED`: ์ฝ˜ํ…์ธ  ์ƒ์„ฑ ์‹คํŒจ +- `NOT_FOUND`: ๋ฆฌ์†Œ์Šค ์—†์Œ +``` + +### 4. ๊ธฐ์ˆ  ์ •์ฑ… ์ •์˜ + +**Output**: `docs/appkit/design/tech-policies.md` + +```markdown +# Technical Policies + +*๊ธฐ์ˆ  ๊ตฌํ˜„ ๊ด€๋ จ ์ •์ฑ…* + +--- + +## API Rate Limiting + +### Midjourney API +- **Limit**: ์‹œ๊ฐ„๋‹น 50ํšŒ +- **๋™์‹œ ์ฒ˜๋ฆฌ**: ์ตœ๋Œ€ 3๊ฐœ +- **์ดˆ๊ณผ ์‹œ**: 429 ์—๋Ÿฌ, ๋‹ค์Œ ์‹œ๊ฐ„๊นŒ์ง€ ๋Œ€๊ธฐ +- **Queue**: FIFO ๋ฐฉ์‹ + +### OpenAI GPT-4 API +- **Limit**: ๋ถ„๋‹น 60ํšŒ +- **ํ† ํฐ**: ์ผ 500,000 ์ œํ•œ +- **์ดˆ๊ณผ ์‹œ**: 429 ์—๋Ÿฌ +- **Retry**: Exponential backoff (1s, 2s, 4s) + +### Instagram Graph API +- **Limit**: ํ•˜๋ฃจ 200๊ฐœ ํฌ์ŠคํŠธ +- **์‹œ๊ฐ„๋‹น**: 25ํšŒ +- **์ดˆ๊ณผ ์‹œ**: 403 ์—๋Ÿฌ + +**๊ตฌํ˜„ ๋ฐฉ์•ˆ**: +- Rate Limiter ๋ชจ๋“ˆ ๊ตฌํ˜„ +- ์šฐ์„ ์ˆœ์œ„ ํ ์‹œ์Šคํ…œ +- API ํ˜ธ์ถœ ๋กœ๊ทธ ๊ธฐ๋ก + +--- + +## Error Handling + +### ์žฌ์‹œ๋„ ์ •์ฑ… + +**API ์‹คํŒจ**: +- ์žฌ์‹œ๋„ ํšŸ์ˆ˜: 3ํšŒ +- ๋ฐฉ์‹: Exponential backoff +- ๋Œ€๊ธฐ ์‹œ๊ฐ„: 1s, 2s, 4s + +**์ƒ์„ฑ ์‹คํŒจ**: +- ์žฌ์‹œ๋„ ํšŸ์ˆ˜: 2ํšŒ +- ๋ฐฉ์‹: ์ฆ‰์‹œ ์žฌ์‹œ๋„ +- ์‹คํŒจ ์‹œ: ์—๋Ÿฌ ๋กœ๊ทธ ๊ธฐ๋ก, ์•Œ๋ฆผ + +**ํ’ˆ์งˆ ๋ถˆ๋Ÿ‰**: +- ํŒ๋‹จ ๊ธฐ์ค€: ์ด๋ฏธ์ง€ ํ•ด์ƒ๋„ < 1080x1080 +- ์ฒ˜๋ฆฌ: ์ž๋™ ์žฌ์ƒ์„ฑ (1ํšŒ) + +### ๋กœ๊น… + +**๋กœ๊ทธ ์ข…๋ฅ˜**: +- `error.log`: ๋ชจ๋“  ์—๋Ÿฌ +- `api-calls.log`: API ํ˜ธ์ถœ ๊ธฐ๋ก +- `generation.log`: ์ฝ˜ํ…์ธ  ์ƒ์„ฑ ๊ธฐ๋ก + +**๋กœ๊ทธ ๋ ˆ๋ฒจ**: +- ERROR: ์‹œ์Šคํ…œ ์˜ค๋ฅ˜ +- WARN: API ์ œํ•œ ๊ทผ์ ‘ +- INFO: ์ •์ƒ ์‹คํ–‰ + +--- + +## Content Safety + +### ๋ธŒ๋žœ๋“œ ์•ˆ์ „์„ฑ +- ์„ฑ์ธ ์ฝ˜ํ…์ธ : GPT moderation API๋กœ ์ž๋™ ์ฐจ๋‹จ +- ํญ๋ ฅ/ํ˜์˜ค: ํ•„ํ„ฐ ์ ์šฉ +- ์ €์ž‘๊ถŒ: ํ•™์Šต ๋ฐ์ดํ„ฐ ์™ธ ์ฐธ์กฐ ๊ธˆ์ง€ + +### ํ’ˆ์งˆ ๊ฒ€์ฆ +- ์ด๋ฏธ์ง€: ์ตœ์†Œ 1080x1080 +- ์บก์…˜: ์ตœ์†Œ 50์ž, ์ตœ๋Œ€ 2200์ž +- ํ•ด์‹œํƒœ๊ทธ: 5-30๊ฐœ + +--- + +## Data Management + +### ์ €์žฅ ์œ„์น˜ +- ํŽ˜๋ฅด์†Œ๋‚˜: Database (personas table) +- ์ฝ˜ํ…์ธ : Database (contents table) +- ์ด๋ฏธ์ง€: S3 (Midjourney URL ์ €์žฅ) +- ๋กœ๊ทธ: `logs/` directory + +### ๋ฐฑ์—… +- DB ๋ฐฑ์—…: ์ผ 1ํšŒ (์ž์ •) +- S3 ๋ฐฑ์—…: ์ž๋™ (versioning) +- ๋กœ๊ทธ ๋ณด์กด: 90์ผ +``` + +### 5. ํ™”๋ฉด-API ๋งคํ•‘ + +**Output**: `docs/appkit/design/screen-api-map.md` + +```markdown +# Screen to API Mapping + +*UI ํ™”๋ฉด๊ณผ API ํ˜ธ์ถœ ๋งคํ•‘* + +--- + +## Flow: ์ฝ˜ํ…์ธ  ์ž๋™ ์ƒ์„ฑ + +### Screen 1: ํŽ˜๋ฅด์†Œ๋‚˜ ์„ค์ • + +**User Actions**: +- ํŽ˜๋ฅด์†Œ๋‚˜ ๋ชฉ๋ก ์กฐํšŒ +- ์ƒˆ ํŽ˜๋ฅด์†Œ๋‚˜ ์ƒ์„ฑ + +**API Calls**: +``` +1. GET /personas + โ†’ Returns: ํŽ˜๋ฅด์†Œ๋‚˜ ๋ฆฌ์ŠคํŠธ + +2. (On create) POST /personas + โ†’ Returns: ์ƒ์„ฑ๋œ ํŽ˜๋ฅด์†Œ๋‚˜ +``` + +--- + +### Screen 2: ์Šค์ผ€์ค„ ์„ค์ • + +**User Actions**: +- ์Šค์ผ€์ค„ ๋“ฑ๋ก +- ์‹คํ–‰ ์‹œ๊ฐ„ ์„ค์ • +- ๋Œ€์ƒ ํŽ˜๋ฅด์†Œ๋‚˜ ์„ ํƒ + +**API Calls**: +``` +1. GET /personas + โ†’ Returns: ์„ ํƒ ๊ฐ€๋Šฅํ•œ ํŽ˜๋ฅด์†Œ๋‚˜ + +2. (On save) POST /schedules + โ†’ Returns: ์ƒ์„ฑ๋œ ์Šค์ผ€์ค„ +``` + +--- + +### Screen 3: ์ฝ˜ํ…์ธ  ํ™•์ธ + +**User Actions**: +- ์ƒ์„ฑ๋œ ์ฝ˜ํ…์ธ  ์กฐํšŒ +- ์Šน์ธ/๊ฑฐ๋ถ€ + +**API Calls**: +``` +1. GET /contents?status=draft + โ†’ Returns: Draft ์ฝ˜ํ…์ธ  ๋ชฉ๋ก + +2. (On approve) PATCH /contents/{id} + โ†’ Body: { "status": "approved" } + โ†’ Returns: ์—…๋ฐ์ดํŠธ๋œ ์ฝ˜ํ…์ธ  +``` + +--- + +## Complete Sequence Diagram + +```mermaid +sequenceDiagram + actor User + participant UI + participant API + participant Midjourney + participant GPT + participant Instagram + + User->>UI: ์Šค์ผ€์ค„ ๋“ฑ๋ก + UI->>API: POST /schedules + API-->>UI: Schedule created + + Note over API: ๋งค์ผ 07:00 Cron ์‹คํ–‰ + + API->>API: GET /personas (target) + loop Each Persona + API->>Midjourney: Generate Image + Midjourney-->>API: Image URL + API->>GPT: Generate Caption + GPT-->>API: Caption Text + API->>API: Save Content (draft) + end + + User->>UI: ์ฝ˜ํ…์ธ  ํ™•์ธ + UI->>API: GET /contents?status=draft + API-->>UI: Content List + + User->>UI: ์Šน์ธ + UI->>API: PATCH /contents/{id} + API->>Instagram: Post Content + Instagram-->>API: Success + API-->>UI: Posted +``` +``` + +--- + +## Output Files + +### ์ƒ์„ฑ๋  ํŒŒ์ผ๋“ค: + +``` +docs/appkit/design/ +โ”œโ”€โ”€ entities.md # ERD ๋ฐ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ +โ”œโ”€โ”€ apis.md # API ์—”๋“œํฌ์ธํŠธ ์„ค๊ณ„ +โ”œโ”€โ”€ tech-policies.md # ๊ธฐ์ˆ  ์ •์ฑ… +โ””โ”€โ”€ screen-api-map.md # ํ™”๋ฉด-API ๋งคํ•‘ +``` + +--- + +## Integration Points + +### ๋‹ค๋ฅธ ๋ช…๋ น์–ด์™€์˜ ์—ฐ๊ณ„: + +- **From `/appkit.merge`**: concept-map.md ์‚ฌ์šฉ +- **To ๊ฐœ๋ฐœํŒ€**: ์„ค๊ณ„ ๋ฌธ์„œ ์ „๋‹ฌ +- **To `/appkit.verify`**: ์„ค๊ณ„ ์™„์„ฑ๋„ ์ฒดํฌ (ํ–ฅํ›„) + +--- + +## Key Principles + +### ์„ค๊ณ„ ์›์น™: + +1. **Planning only, no code**: ์„ค๊ณ„ ๋ฌธ์„œ๋งŒ ์ƒ์„ฑ, ์ฝ”๋“œ ์ž‘์„ฑ ์•ˆ ํ•จ +2. **Entity-first approach**: ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ถ€ํ„ฐ ์„ค๊ณ„ +3. **API follows entity**: API๋Š” ์—”ํ‹ฐํ‹ฐ ๊ด€๊ณ„์—์„œ ๋„์ถœ +4. **Traceability**: ๋ชจ๋“  ์„ค๊ณ„๋Š” spec๊ณผ ์—ฐ๊ฒฐ + +--- + +## Next Steps + +### ์ด ๋ช…๋ น์–ด ์‹คํ–‰ ํ›„: + +**๐Ÿ“ 7๋‹จ๊ณ„ ์™„๋ฃŒ!** +- ๊ธฐํš๋ถ€ํ„ฐ ์„ค๊ณ„๊นŒ์ง€ ๋ชจ๋“  ๋ฌธ์„œ ์™„์„ฑ +- ๊ฐœ๋ฐœํŒ€์—๊ฒŒ ์ „๋‹ฌ ๊ฐ€๋Šฅ +- MVP Phase 0 ๊ฐœ๋ฐœ ์‹œ์ž‘ + +--- + +## Version + +- **Version**: 1.0.0 +- **Created**: 2025-11-20 +- **Philosophy**: "์„ค๊ณ„๋Š” ๊ธฐํš๊ณผ ๊ตฌํ˜„ ์‚ฌ์ด์˜ ๋‹ค๋ฆฌ" diff --git a/.claude/commands/appkit.merge.md b/.claude/commands/appkit.merge.md new file mode 100644 index 0000000..0d68cb2 --- /dev/null +++ b/.claude/commands/appkit.merge.md @@ -0,0 +1,506 @@ +# appkit.merge + +**๊ธฐํš ์ •๋ˆ - ํฉ์–ด์ง„ ๊ธฐํš ๋ฌธ์„œ๋ฅผ ์ผ๊ด€๋˜๊ฒŒ ํ†ตํ•ฉ** + +--- + +## Overview + +**This is Step 6 of the logical thinking 7-step workflow**: + +``` +๋…ผ๋ฆฌ์  ์‚ฌ๊ณ  7๋‹จ๊ณ„: +1. /appkit.new โ†’ ์•„์ด๋””์–ด ์Šค์ผ€์น˜ (์–ด๋–ค ์„œ๋น„์Šค์ธ์ง€?) +2. /appkit.spec โ†’ ๊ธฐ๋Šฅ ๊ตฌ์ฒดํ™” (๋ญ๊ฐ€ ํ•„์š”ํ• ๊นŒ? ๋ˆ„๊ฐ€ ์“ธ๊นŒ?) +3. /appkit.customer โ†’ ๊ณ ๊ฐ ์Šคํ† ๋ฆฌ (๊ณ ๊ฐ์˜ ํ•˜๋ฃจ, ๊ณ ๋ฏผ, ํ•ด๊ฒฐ) +4. /appkit.sales โ†’ ์„ธ์ผ์ฆˆ ๋žœ๋”ฉ ๊ตฌ์„ฑ (์–ด๋–ป๊ฒŒ ์„ค๋“ํ• ๊นŒ?) +5. /appkit.mvp โ†’ MVP ๋ฒ”์œ„ ์ •ํ•˜๊ธฐ (์ตœ์†Œํ•œ์œผ๋กœ ๊ฒ€์ฆํ•˜๋ ค๋ฉด?) +6. /appkit.merge โ†’ ๊ธฐํš ์ •๋ˆ (ํฉ์–ด์ง„ ๊ธฐํš ํ†ตํ•ฉ) โ† YOU ARE HERE +7. /appkit.design โ†’ ๊ฐœ๋ฐœ ์ค€๋น„ (API, ERD, ๊ธฐ์ˆ  ์ŠคํŽ™) +``` + +## Purpose + +MVP ๋ฒ”์œ„๊ฐ€ ์ •ํ•ด์ง€๋ฉด, ์ด์ œ ์ง€๊ธˆ๊นŒ์ง€ ๋งŒ๋“  ๊ธฐํš ๋ฌธ์„œ๋“ค์„ ์ •๋ฆฌํ•  ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค. +spec, customer, mvp๋ฅผ ๊ฐ๊ฐ ๋งŒ๋“ค๋‹ค ๋ณด๋ฉด AI๊ฐ€ ๋งฅ๋ฝ์„ ๋†“์น˜๊ณ  ์ผ๊ด€์„ฑ ์—†์ด ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. +**๊ธฐํš ๋ ˆ๋ฒจ**์—์„œ ํฉ์–ด์ง„ ๋‚ด์šฉ์„ ํ†ตํ•ฉํ•˜๊ณ , ์ค‘๋ณต๊ณผ ์ถฉ๋Œ์„ ํ•ด์†Œํ•ฉ๋‹ˆ๋‹ค. + +**ํ•ต์‹ฌ ์งˆ๋ฌธ**: "๊ธฐํš์ด ์ผ๊ด€์ ์ธ๊ฐ€? ์ค‘๋ณต์€? ์šฉ์–ด๊ฐ€ ํ†ต์ผ๋๋‚˜?" + +--- + +## When to Use + +- `/appkit.mvp`๋กœ MVP ๋ฒ”์œ„๋ฅผ ์ •ํ•œ ํ›„ (Step 5 ์™„๋ฃŒ ํ›„) +- spec, customer, mvp ๊ฒฐ๊ณผ๋ฌผ์ด ์ค€๋น„๋˜์—ˆ์„ ๋•Œ +- ๊ธฐํš ๋ฌธ์„œ ๊ฐ„ ์ค‘๋ณต์ด๋‚˜ ์ถฉ๋Œ์ด ๋ณด์ผ ๋•Œ +- ์šฉ์–ด์™€ ์ปจ์…‰์„ ํ†ต์ผํ•ด์•ผ ํ•  ๋•Œ +- ๊ฐœ๋ฐœ ์ค€๋น„(design) ์ „ ๊ธฐํš์„ ์ •๋ˆํ•˜๊ณ  ์‹ถ์„ ๋•Œ + +--- + +## Usage + +```bash +/appkit.merge +/appkit.merge "ํŠนํžˆ spec๊ณผ customer ์šฉ์–ด ํ†ต์ผ" +/appkit.merge "MVP ๋ฒ”์œ„ ๊ธฐ๋ฐ˜์œผ๋กœ ์šฐ์„ ์ˆœ์œ„ ์žฌ์กฐ์ •" +``` + +--- + +## What I'll Do + +### 1. ์†Œ์Šค ๋ฌธ์„œ ์ˆ˜์ง‘ + +**์ฝ์„ ํŒŒ์ผ๋“ค**: +- `docs/appkit/specs/*/spec.md` (๋ชจ๋“  ๊ธฐ๋Šฅ ์ŠคํŽ™) +- `docs/appkit/customer-persona.md` (ํƒ€๊ฒŸ ๊ณ ๊ฐ) +- `docs/appkit/customer-journey.md` (๊ณ ๊ฐ ์—ฌ์ •) +- `docs/appkit/mvp-scope.md` (MVP ๋ฒ”์œ„) +- `docs/appkit/mvp-metrics.md` (๊ฒ€์ฆ ์ง€ํ‘œ) + +### 2. ๊ธฐํš ์ผ๊ด€์„ฑ ๋ถ„์„ + +**๋ถ„์„ ํ•ญ๋ชฉ**: + +#### A. ์šฉ์–ด ํ†ต์ผ์„ฑ +```markdown +## ์šฉ์–ด ์ถฉ๋Œ ๋ฐœ๊ฒฌ + +โŒ **Spec์—์„œ**: "ํŽ˜๋ฅด์†Œ๋‚˜ ์„ค์ •" +โŒ **Customer์—์„œ**: "์บ๋ฆญํ„ฐ ํ”„๋กœํ•„" +โŒ **MVP์—์„œ**: "์ธ๋ฌผ ์ •๋ณด" + +โœ… **ํ†ต์ผ ์ œ์•ˆ**: +โ†’ ํ‘œ์ค€ ์šฉ์–ด: "ํŽ˜๋ฅด์†Œ๋‚˜" +โ†’ ๋ชจ๋“  ๋ฌธ์„œ์— ์ผ๊ด€๋˜๊ฒŒ ์ ์šฉ +``` + +#### B. ๊ธฐ๋Šฅ ์ค‘๋ณต ํ™•์ธ +```markdown +## ์ค‘๋ณต ๊ธฐ๋Šฅ ๋ฐœ๊ฒฌ + +โŒ **001-persona/spec.md**: +- ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๊ธฐ๋Šฅ ์–ธ๊ธ‰ + +โŒ **002-content/spec.md**: +- ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๊ธฐ๋Šฅ ์ค‘๋ณต ์„ค๋ช… + +โœ… **ํ†ตํ•ฉ ์ œ์•ˆ**: +โ†’ 002-content์—์„œ ํ†ตํ•ฉ ๊ด€๋ฆฌ +โ†’ 001-persona๋Š” 002-content ์ฐธ์กฐ +``` + +#### C. ๊ณ ๊ฐ ๊ฐ€์น˜ ์ผ๊ด€์„ฑ +```markdown +## ๊ฐ€์น˜ ์ œ์•ˆ ์ถฉ๋Œ + +โŒ **Spec**: "100๋ช… ์ž๋™ ๊ด€๋ฆฌ" +โŒ **Customer**: "15์‹œ๊ฐ„ โ†’ 1์‹œ๊ฐ„ ์‹œ๊ฐ„ ์ ˆ์•ฝ" +โŒ **Sales**: "์›” 1์–ต ์ˆ˜์ต" + +โœ… **ํ•ต์‹ฌ ๊ฐ€์น˜ ํ†ต์ผ**: +โ†’ Primary Value: "์‹œ๊ฐ„ ์ ˆ์•ฝ (15์‹œ๊ฐ„ โ†’ 1์‹œ๊ฐ„)" +โ†’ Secondary Value: "ํ™•์žฅ์„ฑ (100๋ช… ๊ด€๋ฆฌ)" +โ†’ Ultimate Goal: "์›” 1์–ต ์ˆ˜์ต ๋‹ฌ์„ฑ" +``` + +### 3. MVP ๋ฒ”์œ„ ๊ธฐ๋ฐ˜ ์šฐ์„ ์ˆœ์œ„ ์กฐ์ • +```markdown +## MVP ๋ฒ”์œ„ ์žฌํ™•์ธ + +**Phase 0 (MVP - 2์ฃผ)**: +โœ… ํŽ˜๋ฅด์†Œ๋‚˜ ๊ด€๋ฆฌ (001-persona) +โœ… ์ฝ˜ํ…์ธ  ์ž๋™ ์ƒ์„ฑ (002-content) +โœ… ์Šค์ผ€์ค„๋ง (003-schedule) +โŒ ์„ฑ๊ณผ ๋ถ„์„ (004-analytics) โ†’ Phase 1๋กœ ์ด๋™ +โŒ ์ˆ˜์ตํ™” ๊ด€๋ฆฌ (005-monetize) โ†’ Phase 2๋กœ ์ด๋™ + +**์šฐ์„ ์ˆœ์œ„ ์กฐ์ •**: +1. **Must Have** (์—†์œผ๋ฉด MVP ๋ถˆ๊ฐ€): + - 001-persona, 002-content, 003-schedule + +2. **Should Have** (์žˆ์œผ๋ฉด ์ข‹์Œ): + - 004-analytics (Phase 1) + +3. **Nice to Have** (๋‚˜์ค‘์—): + - 005-monetize (Phase 2) + +โ†’ Spec ๋ฌธ์„œ์—์„œ Phase 0 ์™ธ ๊ธฐ๋Šฅ์€ "Future" ์„น์…˜์œผ๋กœ ์ด๋™ +``` + +### 4. ์ปจ์…‰ ๋งต ์ƒ์„ฑ + +**Output**: `docs/appkit/merge/concept-map.md` + +```markdown +# Concept Map (ํ†ตํ•ฉ ์ปจ์…‰ ๋งต) + +*์ƒ์„ฑ ๊ธฐ์ค€: spec, customer, mvp ํ†ตํ•ฉ* +*์ƒ์„ฑ์ผ: 2025-11-20* + +--- + +## ํ•ต์‹ฌ ์ปจ์…‰ ์ •์˜ + +### ์„œ๋น„์Šค ์ปจ์…‰ +"AI ์ธํ”Œ๋ฃจ์–ธ์„œ 100๋ช…์„ ์ž๋™์œผ๋กœ ์šด์˜ํ•˜๋Š” ์‹œ์Šคํ…œ" + +### ํ•ต์‹ฌ ๊ฐ€์น˜ (ํ†ต์ผ) +1. **Primary**: ์‹œ๊ฐ„ ์ ˆ์•ฝ (15์‹œ๊ฐ„ โ†’ 1์‹œ๊ฐ„) +2. **Secondary**: ํ™•์žฅ์„ฑ (100๋ช… ์ž๋™ ๊ด€๋ฆฌ) +3. **Ultimate Goal**: ์›” 1์–ต ์ˆ˜์ต + +### ํƒ€๊ฒŸ ์‚ฌ์šฉ์ž +- **Primary**: ๋ณธ์ธ (AI ์ธํ”Œ๋ฃจ์–ธ์„œ ์šด์˜์ž) +- **Pain Point**: ์ˆ˜๋™ ์ž‘์—… ๋ถˆ๊ฐ€๋Šฅ +- **Goal**: ์™„์ „ ์ž๋™ํ™” + +--- + +## ๊ธฐ๋Šฅ ํ†ตํ•ฉ ๋งต + +### Phase 0 (MVP - 2์ฃผ) + +**001-persona** (ํŽ˜๋ฅด์†Œ๋‚˜ ๊ด€๋ฆฌ) +- ์ •์˜: ์บ๋ฆญํ„ฐ๋ณ„ ์„ฑ๊ฒฉ, ํ†ค์•ค๋งค๋„ˆ ์„ค์ • +- ์ž…๋ ฅ: ์บ๋ฆญํ„ฐ ์ •๋ณด (์ด๋ฆ„, ๋‚˜์ด, ์„ฑ๊ฒฉ) +- ์ถœ๋ ฅ: ํŽ˜๋ฅด์†Œ๋‚˜ DB ์ €์žฅ +- ์˜์กด์„ฑ: ์—†์Œ + +**002-content** (์ฝ˜ํ…์ธ  ์ž๋™ ์ƒ์„ฑ) +- ์ •์˜: ํŽ˜๋ฅด์†Œ๋‚˜ ๊ธฐ๋ฐ˜ ์ด๋ฏธ์ง€ + ์บก์…˜ ์ž๋™ ์ƒ์„ฑ +- ์ž…๋ ฅ: ํŽ˜๋ฅด์†Œ๋‚˜ ID, ์ฃผ์ œ +- ์ถœ๋ ฅ: ์ด๋ฏธ์ง€ (Midjourney), ์บก์…˜ (GPT) +- ์˜์กด์„ฑ: 001-persona (ํ•„์ˆ˜) + +**003-schedule** (์Šค์ผ€์ค„๋ง) +- ์ •์˜: ๋งค์ผ ์•„์นจ 7์‹œ ์ž๋™ ์ƒ์„ฑ ์‹คํ–‰ +- ์ž…๋ ฅ: ์Šค์ผ€์ค„ ์„ค์ • +- ์ถœ๋ ฅ: Cron job ์‹คํ–‰ +- ์˜์กด์„ฑ: 002-content (ํ•„์ˆ˜) + +--- + +## ์šฉ์–ด ์‚ฌ์ „ (ํ†ต์ผ๋œ ํ‘œํ˜„) + +| ๊ฐœ๋… | ํ‘œ์ค€ ์šฉ์–ด | ๊ธˆ์ง€ ์šฉ์–ด | +|------|-----------|-----------| +| ์บ๋ฆญํ„ฐ ์ •๋ณด | ํŽ˜๋ฅด์†Œ๋‚˜ | ์บ๋ฆญํ„ฐ ํ”„๋กœํ•„, ์ธ๋ฌผ ์ •๋ณด | +| ์ž๋™ ์ƒ์„ฑ | ์ฝ˜ํ…์ธ  ์ƒ์„ฑ | ํฌ์ŠคํŠธ ์ œ์ž‘, ๊ธ€์“ฐ๊ธฐ | +| ์˜ˆ์•ฝ ์‹คํ–‰ | ์Šค์ผ€์ค„๋ง | ํƒ€์ด๋จธ, ์ž๋™ ์‹คํ–‰ | +| ์„ฑ๊ณผ ์ถ”์  | ๋ถ„์„ | ํ†ต๊ณ„, ๋ชจ๋‹ˆํ„ฐ๋ง | + +--- + +## ๋ฐ์ดํ„ฐ ํ๋ฆ„ + +``` +[ํŽ˜๋ฅด์†Œ๋‚˜ DB] โ†’ [์ฝ˜ํ…์ธ  ์ƒ์„ฑ] โ†’ [Instagram API] + โ†‘ โ†‘ โ†‘ + 001-persona 002-content 003-schedule +``` + +**๋ฐ์ดํ„ฐ ์—”ํ‹ฐํ‹ฐ** (๊ธฐํš ๋ ˆ๋ฒจ): +1. Persona (ํŽ˜๋ฅด์†Œ๋‚˜ ์ •๋ณด) +2. Content (์ƒ์„ฑ๋œ ์ฝ˜ํ…์ธ ) +3. Schedule (์Šค์ผ€์ค„ ์„ค์ •) +4. Post (ํฌ์ŠคํŒ… ๊ธฐ๋ก) + +*์ƒ์„ธ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์€ /appkit.design์—์„œ ์ƒ์„ฑ* +``` + +### 5. ๊ณ ๊ฐ ์—ฌ์ •๊ณผ ๊ธฐ๋Šฅ ๋งคํ•‘ + +**Output**: `docs/appkit/merge/journey-feature-map.md` + +```markdown +# ๊ณ ๊ฐ ์—ฌ์ • - ๊ธฐ๋Šฅ ๋งคํ•‘ + +*Customer Journey โ†’ Feature Mapping* + +--- + +## ํ˜„์žฌ ์ƒํ™ฉ (Before) + +**์ƒˆ๋ฒฝ 6์‹œ**: "100๊ฐœ ์ฝ˜ํ…์ธ  ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์ง€..." (๋ง‰๋ง‰) +โ†’ **ํ•ด๊ฒฐ ๊ธฐ๋Šฅ**: ์—†์Œ (์ˆ˜๋™ ์ž‘์—…) + +**์˜ค์ „ 9์‹œ**: 20๊ฐœ์งธ ์ด๋ฏธ์ง€ ์ƒ์„ฑ ์ค‘ (์ง€์นจ) +โ†’ **ํ•ด๊ฒฐ ๊ธฐ๋Šฅ**: 002-content (์ž๋™ ์ƒ์„ฑ) + +**์˜คํ›„ 3์‹œ**: 50๊ฐœ์งธ ์บก์…˜ ์ž‘์„ฑ ์ค‘ (๋ฒˆ์•„์›ƒ) +โ†’ **ํ•ด๊ฒฐ ๊ธฐ๋Šฅ**: 002-content (์ž๋™ ์ƒ์„ฑ) + +**์ €๋… 9์‹œ**: ๊ฒฐ๊ตญ 20๊ฐœ ๋ชป ์˜ฌ๋ฆผ (์ขŒ์ ˆ) +โ†’ **ํ•ด๊ฒฐ ๊ธฐ๋Šฅ**: 003-schedule (์ž๋™ ํฌ์ŠคํŒ…) + +--- + +## ๋ฏธ๋ž˜ ์ƒํ™ฉ (After - MVP ์ ์šฉ) + +**์ „๋‚  ๋ฐค 11์‹œ**: ๋‚ด์ผ ์ฃผ์ œ๋งŒ ์„ค์ • (5๋ถ„) +โ†’ **์‚ฌ์šฉ ๊ธฐ๋Šฅ**: 001-persona (์ฃผ์ œ ์ž…๋ ฅ) + +**์•„์นจ 7์‹œ**: ์‹œ์Šคํ…œ์ด 100๊ฐœ ์ž๋™ ์ƒ์„ฑ (๋ฌด์ธ) +โ†’ **์‚ฌ์šฉ ๊ธฐ๋Šฅ**: 003-schedule โ†’ 002-content + +**์•„์นจ 8์‹œ**: ์ปคํ”ผ ๋งˆ์‹œ๋ฉฐ ํ€„๋ฆฌํ‹ฐ ์ฒดํฌ (30๋ถ„) +โ†’ **์‚ฌ์šฉ ๊ธฐ๋Šฅ**: 004-analytics (Phase 1) + +--- + +## ๊ธฐ๋Šฅ๋ณ„ ๊ณ ๊ฐ ๊ฐ€์น˜ + +**001-persona**: +- Pain ํ•ด์†Œ: "๋งค๋ฒˆ ์บ๋ฆญํ„ฐ ์„ค์ • ๋ฐ˜๋ณต" โ†’ "ํ•œ๋ฒˆ ์„ค์ •, ๊ณ„์† ์‚ฌ์šฉ" +- ์‹œ๊ฐ„ ์ ˆ์•ฝ: 10๋ถ„/์บ๋ฆญํ„ฐ โ†’ 1๋ถ„ (์ฒซ ์„ค์ •) + +**002-content**: +- Pain ํ•ด์†Œ: "100๊ฐœ ์ˆ˜๋™ ์ƒ์„ฑ ๋ถˆ๊ฐ€๋Šฅ" โ†’ "100๊ฐœ ์ž๋™ ์ƒ์„ฑ" +- ์‹œ๊ฐ„ ์ ˆ์•ฝ: 10์‹œ๊ฐ„ โ†’ 0์‹œ๊ฐ„ + +**003-schedule**: +- Pain ํ•ด์†Œ: "์•„์นจ๋งˆ๋‹ค ์‹คํ–‰ ํ•„์š”" โ†’ "์ž๋™ ์‹คํ–‰" +- ์‹œ๊ฐ„ ์ ˆ์•ฝ: 5๋ถ„/์ผ โ†’ 0๋ถ„ +``` + +### 6. ํ†ตํ•ฉ ํ›„ ๊ตฌ์กฐ ์žฌ์ •์˜ + +**Before (๋ถ„์‚ฐ)**: +``` +docs/appkit/ +โ”œโ”€โ”€ specs/ +โ”‚ โ”œโ”€โ”€ 001-persona/spec.md (์šฉ์–ด ๋ถˆ์ผ์น˜) +โ”‚ โ”œโ”€โ”€ 002-content/spec.md (์ค‘๋ณต ์„ค๋ช…) +โ”‚ โ””โ”€โ”€ 003-schedule/spec.md +โ”œโ”€โ”€ customer-persona.md (์šฉ์–ด ๋‹ค๋ฆ„) +โ”œโ”€โ”€ customer-journey.md +โ”œโ”€โ”€ mvp-scope.md (์šฐ์„ ์ˆœ์œ„ ๋ชจํ˜ธ) +โ””โ”€โ”€ mvp-metrics.md +``` + +**After (ํ†ตํ•ฉ)**: +``` +docs/appkit/merge/ +โ”œโ”€โ”€ concept-map.md # ํ•ต์‹ฌ: ํ†ตํ•ฉ ์ปจ์…‰ ๋งต +โ”œโ”€โ”€ journey-feature-map.md # ๊ณ ๊ฐ ์—ฌ์ • - ๊ธฐ๋Šฅ ๋งคํ•‘ +โ”œโ”€โ”€ terminology.md # ํ‘œ์ค€ ์šฉ์–ด ์‚ฌ์ „ +โ”œโ”€โ”€ consolidated-specs.md # ํ†ตํ•ฉ๋œ ๊ธฐ๋Šฅ ๋ช…์„ธ +โ””โ”€โ”€ mvp-priority.md # ์žฌ์กฐ์ •๋œ ์šฐ์„ ์ˆœ์œ„ +``` + +**๊ตฌ์กฐ ์„ค๋ช…**: +- `concept-map.md`: ๋ชจ๋“  ๋ฌธ์„œ์˜ ์ปจ์…‰์„ ํ•˜๋‚˜๋กœ ํ†ตํ•ฉ +- `journey-feature-map.md`: ๊ณ ๊ฐ ์—ฌ์ •๊ณผ ๊ธฐ๋Šฅ ๋งคํ•‘ +- `terminology.md`: ํ†ต์ผ๋œ ์šฉ์–ด ์‚ฌ์ „ +- `consolidated-specs.md`: ์ค‘๋ณต ์ œ๊ฑฐ๋œ ๊ธฐ๋Šฅ ๋ช…์„ธ +- `mvp-priority.md`: MVP ๊ธฐ๋ฐ˜ ์šฐ์„ ์ˆœ์œ„ + +### 7. ์ถฉ๋Œ ํ•ด๊ฒฐ + +**์ถฉ๋Œ ํŒจํ„ด ์‹๋ณ„**: + +```markdown +## Conflicts Detected + +โš ๏ธ **Conflict #1**: ์ด๋ฏธ์ง€ ์ƒ์„ฑ ํ•ด์ƒ๋„ +- 001-persona: 512x512 +- 002-content: 1080x1080 +โ†’ **ํ•ด๊ฒฐ**: content-safety.md์— ์šฉ๋„๋ณ„ ์ตœ์†Œ ํ•ด์ƒ๋„ ์ •์˜ + +โš ๏ธ **Conflict #2**: API ํ˜ธ์ถœ ์šฐ์„ ์ˆœ์œ„ +- 001: persona ์šฐ์„  +- 002: content ์šฐ์„  +โ†’ **ํ•ด๊ฒฐ**: rate-limiter.md์— ์šฐ์„ ์ˆœ์œ„ ํ ์ •์˜ + +โš ๏ธ **Conflict #3**: ์—๋Ÿฌ ์‹œ ์žฌ์‹œ๋„ ํšŸ์ˆ˜ +- 001: 5ํšŒ +- 002: 3ํšŒ +โ†’ **ํ•ด๊ฒฐ**: error-handling.md์— ํ†ต์ผ (3ํšŒ) +``` + +--- + +## Output Files + +### ์ƒ์„ฑ๋  ํŒŒ์ผ ๊ตฌ์กฐ: + +``` +docs/appkit/merge/ +โ”œโ”€โ”€ specs/ (ํ†ตํ•ฉ๋œ ๊ฐœ๋ณ„ ๊ธฐ๋Šฅ) +โ”‚ โ”œโ”€โ”€ 001-persona/ +โ”‚ โ”œโ”€โ”€ 002-content/ +โ”‚ โ”œโ”€โ”€ 003-schedule/ +โ”‚ โ””โ”€โ”€ 004-posting/ +โ”œโ”€โ”€ common/ (๊ณตํ†ต ๋ชจ๋“ˆ & ์ •์ฑ…) +โ”‚ โ”œโ”€โ”€ 001-image-generation/ +โ”‚ โ”œโ”€โ”€ 002-rate-limiter/ +โ”‚ โ”œโ”€โ”€ 003-error-handler/ +โ”‚ โ”œโ”€โ”€ 004-content-safety/ +โ”‚ โ”œโ”€โ”€ 005-api-limits/ +โ”‚ โ””โ”€โ”€ 006-data-management/ +โ”œโ”€โ”€ overview.md (์ „์ฒด ํ†ตํ•ฉ ์š”์•ฝ) +โ””โ”€โ”€ dependencies.md (์˜์กด์„ฑ ๊ทธ๋ž˜ํ”„) +``` + +### ํŒŒ์ผ๋ณ„ ์ƒ์„ธ: + +1. **`merge/specs/00X-*/spec.md`** + - ์›๋ณธ specs์—์„œ ์ค‘๋ณต ์ œ๊ฑฐ + - common ๋ชจ๋“ˆ ์ฐธ์กฐ ์ถ”๊ฐ€ + - ์˜์กด์„ฑ ๋ช…์‹œ + +2. **`merge/common/001-image-generation/module.md`** + - Midjourney API ํ†ตํ•ฉ ๋กœ์ง + - ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๊ณตํ†ต ์ธํ„ฐํŽ˜์ด์Šค + - ์‚ฌ์šฉ ์˜ˆ์‹œ + +3. **`merge/common/002-rate-limiter/module.md`** + - API๋ณ„ ์ œํ•œ ์ •์ฑ… + - ์šฐ์„ ์ˆœ์œ„ ํ ์‹œ์Šคํ…œ + - ์žฌ์‹œ๋„ ๋กœ์ง + +4. **`merge/common/003-error-handler/module.md`** + - ํ†ต์ผ๋œ ์—๋Ÿฌ ์ฒ˜๋ฆฌ + - ๋กœ๊น… ์ •์ฑ… + - ์•Œ๋ฆผ ๊ทœ์น™ + +5. **`merge/common/004-content-safety/policy.md`** + - ๋ธŒ๋žœ๋“œ ์•ˆ์ „์„ฑ ํ•„ํ„ฐ + - ์ฝ˜ํ…์ธ  ๊ฒ€์ฆ ๊ทœ์น™ + - ์–ธ์–ด/๋ฌธํ™” ๊ฐ€์ด๋“œ + +6. **`merge/common/005-api-limits/policy.md`** + - Midjourney: ์‹œ๊ฐ„๋‹น 50ํšŒ + - OpenAI: ๋ถ„๋‹น 60ํšŒ + - Instagram: ์ผ 200๊ฐœ + +7. **`merge/common/006-data-management/policy.md`** + - ์ €์žฅ ์œ„์น˜ ๋ฐ ๊ตฌ์กฐ + - ๋ณด์กด ๊ธฐ๊ฐ„ + - ๋ฐฑ์—… ์ •์ฑ… + +8. **`merge/overview.md`** + - ์ค‘๋ณต ์ œ๊ฑฐ ์š”์•ฝ + - ํ†ตํ•ฉ๋œ ๊ธฐ๋Šฅ ๋ชฉ๋ก + - common ๋ชจ๋“ˆ ๋ชฉ๋ก + +9. **`merge/dependencies.md`** + - ๊ธฐ๋Šฅ ๊ฐ„ ์˜์กด์„ฑ ๊ทธ๋ž˜ํ”„ + - ์‹คํ–‰ ์ˆœ์„œ + - ์ˆœํ™˜ ์˜์กด์„ฑ ์ฒดํฌ + +--- + +## Integration Points + +### ๋‹ค๋ฅธ ๋ช…๋ น์–ด์™€์˜ ์—ฐ๊ณ„: + +- **From `/appkit.mvp`**: MVP Phase 0์— ํฌํ•จ๋  ๊ธฐ๋Šฅ๋“ค +- **From `/appkit.spec`**: ๊ฐ ๊ธฐ๋Šฅ๋ณ„ ์ŠคํŽ™ ํŒŒ์ผ +- **To ๊ฐœ๋ฐœํŒ€**: ์ •๋ฆฌ๋œ ์ŠคํŽ™๊ณผ ๊ณตํ†ต ๋ชจ๋“ˆ๋กœ ๊ตฌํ˜„ ์‹œ์ž‘ + +--- + +## Examples + +### Example 1: ๊ธฐ๋ณธ ํ†ตํ•ฉ + +```bash +$ /appkit.merge + +๐Ÿ”„ Spec Consolidation Analysis + +**์ค‘๋ณต ๊ธฐ๋Šฅ ๋ฐœ๊ฒฌ**: 2๊ฐœ +โœ… image-generation ๋ชจ๋“ˆ๋กœ ํ†ตํ•ฉ + +**๊ณตํ†ต ์ •์ฑ… ์ถ”์ถœ**: 6๊ฐœ +โœ… 001-image-generation (๋ชจ๋“ˆ) +โœ… 002-rate-limiter (๋ชจ๋“ˆ) +โœ… 003-error-handler (๋ชจ๋“ˆ) +โœ… 004-content-safety (์ •์ฑ…) +โœ… 005-api-limits (์ •์ฑ…) +โœ… 006-data-management (์ •์ฑ…) + +**์˜์กด์„ฑ ์ •๋ฆฌ**: โœ… ์ˆœํ™˜ ์—†์Œ + +**์ถฉ๋Œ ํ•ด๊ฒฐ**: 3๊ฐœ +โœ… ์ด๋ฏธ์ง€ ํ•ด์ƒ๋„ ํ†ต์ผ +โœ… API ์šฐ์„ ์ˆœ์œ„ ์ •์˜ +โœ… ์žฌ์‹œ๋„ ํšŸ์ˆ˜ ํ†ต์ผ + +โœ… Created docs/appkit/merge/ +โœ… Generated merge/specs/ (4๊ฐœ) +โœ… Generated merge/common/ (6๊ฐœ) +โœ… Generated merge/overview.md +โœ… Generated merge/dependencies.md +``` + +### Example 2: ํŠน์ • ์˜์—ญ ์ง‘์ค‘ + +```bash +$ /appkit.merge "API ํ†ตํ•ฉ ์ค‘์ " + +๐Ÿ”„ API Integration Focus + +**API ํ†ตํ•ฉ ๋ถ„์„**: +- Midjourney: 2๊ณณ์—์„œ ํ˜ธ์ถœ โ†’ ํ†ตํ•ฉ +- OpenAI: 3๊ณณ์—์„œ ํ˜ธ์ถœ โ†’ ํ†ตํ•ฉ +- Instagram: 1๊ณณ (ํ†ตํ•ฉ ๋ถˆํ•„์š”) + +**Rate Limiting ์ •์ฑ…**: +โœ… common/005-api-limits/policy.md ์ƒ์„ฑ +- Midjourney: ์‹œ๊ฐ„๋‹น 50ํšŒ +- OpenAI: ๋ถ„๋‹น 60ํšŒ +- ์šฐ์„ ์ˆœ์œ„ ํ ํ•„์š” + +โœ… Generated merge/common/001-image-generation/ +โœ… Generated merge/common/002-rate-limiter/ +โœ… Updated merge/specs/ (์ค‘๋ณต ์ œ๊ฑฐ) +``` + +--- + +## Key Principles + +### Merge ์›์น™: + +1. **DRY (Don't Repeat Yourself)**: ์ค‘๋ณต ์ฝ”๋“œ/์ •์ฑ… ์ œ๊ฑฐ +2. **Single Source of Truth**: ํ•˜๋‚˜์˜ ์ •์˜, ์—ฌ๋Ÿฌ ์ฐธ์กฐ +3. **Explicit Dependencies**: ์•”๋ฌต์  ์˜์กด์„ฑ ๋ช…์‹œํ™” +4. **Policy Centralization**: ์ •์ฑ…์€ ํ•œ ๊ณณ์—์„œ ๊ด€๋ฆฌ +5. **Conflict Resolution**: ์ถฉ๋Œ์€ ์ฆ‰์‹œ ํ•ด๊ฒฐ + +--- + +## Tips + +### ํšจ๊ณผ์ ์ธ ํ†ตํ•ฉ์„ ์œ„ํ•ด: + +1. **์ž‘์€ ๋‹จ์œ„๋กœ ์‹œ์ž‘**: 2-3๊ฐœ ๊ธฐ๋Šฅ๋ถ€ํ„ฐ ํ†ตํ•ฉ +2. **์ •์ฑ… ์šฐ์„ **: ๊ณตํ†ต ๊ทœ์น™๋ถ€ํ„ฐ ์ •๋ฆฌ +3. **์˜์กด์„ฑ ์ฒดํฌ**: ์ˆœํ™˜ ์˜์กด์„ฑ ๋ฐฉ์ง€ +4. **๋ฌธ์„œํ™”**: ํ†ตํ•ฉ ์ด์œ ์™€ ๊ฒฐ์ •์‚ฌํ•ญ ๊ธฐ๋ก +5. **์ ์ง„์  ๋ฆฌํŒฉํ† ๋ง**: ํ•œ๋ฒˆ์— ๋‹ค ๋ฐ”๊พธ์ง€ ๋ง๊ธฐ + +--- + +## Next Steps + +### ์ด ๋ช…๋ น์–ด ์‹คํ–‰ ํ›„: + +**๐Ÿ“ ๋‹ค์Œ ๋‹จ๊ณ„: Step 7 - `/appkit.design`** (๊ฐœ๋ฐœ ์ค€๋น„) +- ๊ธฐํš์ด ์ •๋ˆ๋˜์—ˆ์œผ๋‹ˆ ์ด์ œ ๊ฐœ๋ฐœ ์ค€๋น„ ๋‹จ๊ณ„๋กœ +- ERD, API ์—”๋“œํฌ์ธํŠธ ์„ค๊ณ„ +- ๊ธฐ์ˆ  ์ •์ฑ… ์ •์˜ +- ๊ฐœ๋ฐœํŒ€์—๊ฒŒ ์ „๋‹ฌํ•  ์ตœ์ข… ๊ธฐ์ˆ  ์ŠคํŽ™ ์™„์„ฑ + +--- + +## Version + +- **Version**: 1.0.0 +- **Created**: 2025-01-20 +- **Philosophy**: "AI๋Š” ๋งฅ๋ฝ์„ ๋†“์นœ๋‹ค. ์‚ฌ๋žŒ์ด ํ†ตํ•ฉํ•˜๋ผ." diff --git a/.claude/commands/appkit.mvp.md b/.claude/commands/appkit.mvp.md new file mode 100644 index 0000000..cfaaf37 --- /dev/null +++ b/.claude/commands/appkit.mvp.md @@ -0,0 +1,404 @@ +# appkit.mvp + +**์ตœ์†Œํ•œ์˜ ๊ธฐ๋Šฅ์œผ๋กœ ์ตœ๋Œ€ํ•œ์˜ ๊ฒ€์ฆ์„ ํ•˜๋Š” MVP ๋ฒ”์œ„ ์ •์˜ ๋ช…๋ น์–ด** + +--- + +## Overview + +**This is Step 5 of the logical thinking 7-step workflow**: + +``` +๋…ผ๋ฆฌ์  ์‚ฌ๊ณ  7๋‹จ๊ณ„: +1. /appkit.new โ†’ ์•„์ด๋””์–ด ์Šค์ผ€์น˜ (์–ด๋–ค ์„œ๋น„์Šค์ธ์ง€?) +2. /appkit.spec โ†’ ๊ธฐ๋Šฅ ๊ตฌ์ฒดํ™” (๋ญ๊ฐ€ ํ•„์š”ํ• ๊นŒ? ๋ˆ„๊ฐ€ ์“ธ๊นŒ?) +3. /appkit.customer โ†’ ๊ณ ๊ฐ ์Šคํ† ๋ฆฌ (๊ณ ๊ฐ์˜ ํ•˜๋ฃจ, ๊ณ ๋ฏผ, ํ•ด๊ฒฐ) +4. /appkit.sales โ†’ ์„ธ์ผ์ฆˆ ๋žœ๋”ฉ ๊ตฌ์„ฑ (์–ด๋–ป๊ฒŒ ์„ค๋“ํ• ๊นŒ?) +5. /appkit.mvp โ†’ MVP ๋ฒ”์œ„ ์ •ํ•˜๊ธฐ (์ตœ์†Œํ•œ์œผ๋กœ ๊ฒ€์ฆํ•˜๋ ค๋ฉด?) โ† YOU ARE HERE +6. /appkit.merge โ†’ ๊ธฐํš ์ •๋ˆ (ํฉ์–ด์ง„ ๊ธฐํš ํ†ตํ•ฉ) +7. /appkit.design โ†’ ๊ฐœ๋ฐœ ์ค€๋น„ (API, ERD, ๊ธฐ์ˆ  ์ŠคํŽ™) +``` + +## Purpose + +ํ•ต์‹ฌ ๊ฐ€์น˜๋งŒ ๊ตฌํ˜„ํ•˜์—ฌ ๋น ๋ฅด๊ฒŒ ์‹œ์žฅ ๊ฒ€์ฆ์„ ํ•˜๊ธฐ ์œ„ํ•œ MVP ๋ฒ”์œ„๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. +"์žˆ์œผ๋ฉด ์ข‹์€" ๊ธฐ๋Šฅ์„ ์ œ์™ธํ•˜๊ณ  "์—†์œผ๋ฉด ์•ˆ๋˜๋Š”" ๊ธฐ๋Šฅ๋งŒ ์„ ๋ณ„ํ•ฉ๋‹ˆ๋‹ค. + +**ํ•ต์‹ฌ ์งˆ๋ฌธ**: "์ตœ์†Œํ•œ์œผ๋กœ ๊ฒ€์ฆํ•˜๋ ค๋ฉด ๋ญ๊ฐ€ ํ•„์š”ํ• ๊นŒ?" + +--- + +## When to Use + +- `/appkit.sales`๋กœ ๊ฐ€์น˜ ์ œ์•ˆ์„ ์ •์˜ํ•œ ํ›„ (Step 4 ์™„๋ฃŒ ํ›„) +- ๊ฐœ๋ฐœ ์‹œ์ž‘ ์ „ ๋ฒ”์œ„๋ฅผ ์ •ํ•ด์•ผ ํ•  ๋•Œ +- ๋ฆฌ์†Œ์Šค๊ฐ€ ์ œํ•œ์ ์ผ ๋•Œ +- ๋น ๋ฅธ ์‹œ์žฅ ๊ฒ€์ฆ์ด ํ•„์š”ํ•  ๋•Œ + +--- + +## Usage + +```bash +/appkit.mvp +/appkit.mvp "2-week validation" +/appkit.mvp "budget: 500๋งŒ์›" +/appkit.mvp "target: early adopters only" +``` + +--- + +## What I'll Do + +### 1. MVP ์ •์˜ ํ”„๋ ˆ์ž„์›Œํฌ + +```markdown +## MVP Definition Framework + +### The ONE Thing Test +"๋งŒ์•ฝ ๋”ฑ ํ•˜๋‚˜์˜ ๊ธฐ๋Šฅ๋งŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋ฉด?" +โ†’ ๊ทธ๊ฒƒ์ด ์ง„์งœ ํ•ต์‹ฌ ๊ฐ€์น˜ + +### Concierge MVP vs Product MVP +- Concierge: ์ˆ˜๋™์œผ๋กœ ์„œ๋น„์Šค ์ œ๊ณต (๊ฒ€์ฆ์šฉ) +- Product: ์ž๋™ํ™”๋œ ์ œํ’ˆ (ํ™•์žฅ์šฉ) + +### MLP (Minimum Lovable Product) +- Minimum: ์ตœ์†Œ ๊ธฐ๋Šฅ +- Viable: ์‚ฌ์šฉ ๊ฐ€๋Šฅ +- Lovable: ์‚ฌ๋ž‘๋ฐ›์„ ๋งŒํ•œ +โ†’ MVP๋„ ์™„์„ฑ๋„๋Š” ์žˆ์–ด์•ผ ํ•จ +``` + +### 2. Phase๋ณ„ ๊ธฐ๋Šฅ ๋ถ„๋ฅ˜ + +```markdown +## MVP Phases + +### Phase 0: Core MVP (2์ฃผ) +"์—†์œผ๋ฉด ์„œ๋น„์Šค๊ฐ€ ์„ฑ๋ฆฝ ์•ˆ ๋˜๋Š” ๊ธฐ๋Šฅ" + +#### Must Have (ํ•ต์‹ฌ) +โœ… ์ฝ”ํŠธ ๊ฒ€์ƒ‰/์กฐํšŒ +โœ… ์‹ค์‹œ๊ฐ„ ์˜ˆ์•ฝ +โœ… ๊ฐ„๋‹จ ๊ฒฐ์ œ +โœ… ์˜ˆ์•ฝ ํ™•์ธ + +#### ๊ตฌํ˜„ ์ˆ˜์ค€ +- UI: ๊ธฐ๋ณธ ๋ชจ๋ฐ”์ผ ์›น (์•ฑ ๊ฐœ๋ฐœ X) +- ๋ฐฑ์—”๋“œ: ์ตœ์†Œ API (5-7๊ฐœ) +- ๊ฒฐ์ œ: ๊ฐ„ํŽธ๊ฒฐ์ œ 1์ข… (์นด๋“œ) +- ์ธ์ฆ: ์†Œ์…œ ๋กœ๊ทธ์ธ 1์ข… (์นด์นด์˜ค) + +#### ์ œ์™ธํ•  ๊ฒƒ +โŒ ํšŒ์› ๋“ฑ๊ธ‰ ์‹œ์Šคํ…œ +โŒ ๋ฆฌ๋ทฐ/ํ‰์  +โŒ ์ฟ ํฐ/ํฌ์ธํŠธ +โŒ ํ‘ธ์‹œ ์•Œ๋ฆผ +โŒ ์ปค๋ฎค๋‹ˆํ‹ฐ + +#### ๊ฒ€์ฆ ๋ชฉํ‘œ +- ์ฃผ๊ฐ„ ์˜ˆ์•ฝ 10๊ฑด ๋‹ฌ์„ฑ +- ์‚ฌ์šฉ์ž 10๋ช… ํ™•๋ณด +- ํ•ต์‹ฌ ํ”Œ๋กœ์šฐ ๊ฒ€์ฆ + + +### Phase 1: Enhanced MVP (1๊ฐœ์›”) +"์‚ฌ์šฉ์ž ๋งŒ์กฑ๋„๋ฅผ ๋†’์ด๋Š” ๊ธฐ๋Šฅ" + +#### Should Have (๊ฐœ์„ ) +โœ… ํ• ์ธ/์ฟ ํฐ ์‹œ์Šคํ…œ +โœ… ์‚ฌ์šฉ์ž ๋ฆฌ๋ทฐ +โœ… ์˜ˆ์•ฝ ๋ณ€๊ฒฝ/์ทจ์†Œ +โœ… ๋‹ค์ค‘ ๊ฒฐ์ œ ์ˆ˜๋‹จ + +#### ๊ฒ€์ฆ ๋ชฉํ‘œ +- ์žฌ๋ฐฉ๋ฌธ์œจ 30% +- ์ฃผ๊ฐ„ ์˜ˆ์•ฝ 50๊ฑด +- NPS 40 ์ด์ƒ + + +### Phase 2: Growth (3๊ฐœ์›”) +"์„ฑ์žฅ๊ณผ ํ™•์žฅ์„ ์œ„ํ•œ ๊ธฐ๋Šฅ" + +#### Nice to Have (ํ™•์žฅ) +โœ… ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ๋Šฅ +โœ… ์ฝ”์นญ ๋งค์นญ +โœ… ํ† ๋„ˆ๋จผํŠธ ๊ฐœ์ตœ +โœ… ์žฅ๋น„ ๋Œ€์—ฌ + +#### ๊ฒ€์ฆ ๋ชฉํ‘œ +- MAU 1,000๋ช… +- ์›” ๋งค์ถœ 1,000๋งŒ์› +- ๋ฐ”์ด๋Ÿด ๊ณ„์ˆ˜ 1.2 +``` + +### 3. MVP ๊ฒ€์ฆ ์ง€ํ‘œ ์„ค์ • + +```markdown +## MVP Metrics + +### 1๏ธโƒฃ Success Metrics (์„ฑ๊ณต ์ง€ํ‘œ) +"๋ชฉํ‘œ ๋‹ฌ์„ฑ ์—ฌ๋ถ€" + +#### Quantitative (์ •๋Ÿ‰) +- ์ฃผ๊ฐ„ ํ™œ์„ฑ ์‚ฌ์šฉ์ž (WAU): 10๋ช… +- ์ฃผ๊ฐ„ ์˜ˆ์•ฝ ๊ฑด์ˆ˜: 10๊ฑด +- ์ „ํ™˜์œจ: ๋ฐฉ๋ฌธ์ž์˜ 10% ์˜ˆ์•ฝ +- ๊ฒฐ์ œ ์„ฑ๊ณต๋ฅ : 90% + +#### Qualitative (์ •์„ฑ) +- "ํŽธ๋ฆฌํ•˜๋‹ค" ํ”ผ๋“œ๋ฐฑ 70% +- "๋‹ค์‹œ ์“ธ ๊ฒƒ" ์‘๋‹ต 80% +- ์ถ”์ฒœ ์˜ํ–ฅ (NPS): 30+ + + +### 2๏ธโƒฃ Learning Metrics (ํ•™์Šต ์ง€ํ‘œ) +"๋ฌด์—‡์„ ๋ฐฐ์šธ ๊ฒƒ์ธ๊ฐ€" + +#### User Behavior +- ์ดํƒˆ ๊ตฌ๊ฐ„: ์–ด๋””์„œ ํฌ๊ธฐํ•˜๋‚˜? +- ์‚ฌ์šฉ ์‹œ๊ฐ„๋Œ€: ์–ธ์ œ ๊ฐ€์žฅ ํ™œ๋ฐœํ•œ๊ฐ€? +- ๊ฒ€์ƒ‰ ํŒจํ„ด: ๋ญ˜ ์ฐพ๊ณ  ์žˆ๋‚˜? +- ์‹คํŒจ ์ผ€์ด์Šค: ์™œ ์˜ˆ์•ฝ ์•ˆ ํ•˜๋‚˜? + +#### Product-Market Fit Signals +- Organic Growth: ์ž์—ฐ ์œ ์ž… ์žˆ๋‚˜? +- Retention: ๋‹ค์‹œ ์˜ค๋‚˜? +- Referral: ์ถ”์ฒœํ•˜๋‚˜? +- Payment: ๋ˆ์„ ๋‚ด๋‚˜? + + +### 3๏ธโƒฃ Pivot Indicators (ํ”ผ๋ฒ— ์‹ ํ˜ธ) +"๋ฐฉํ–ฅ ์ „ํ™˜์ด ํ•„์š”ํ•œ ์‹œ์ " + +๐Ÿšจ Danger Signals +- 2์ฃผ ํ›„ WAU < 5๋ช… +- ์ „ํ™˜์œจ < 3% +- NPS < 0 +- ์ผ์ผ ์‚ฌ์šฉ ์‹œ๊ฐ„ < 1๋ถ„ + +โ†’ Action: ๊ฐ€์น˜ ์ œ์•ˆ ์žฌ๊ฒ€ํ†  +``` + +### 4. MVP ๊ฐœ๋ฐœ ์šฐ์„ ์ˆœ์œ„ ๋งคํŠธ๋ฆญ์Šค + +```markdown +## Priority Matrix + + High Impact โ†‘ + + [P0: ์ฝ”ํŠธ ์˜ˆ์•ฝ] | [P1: ํ• ์ธ ์‹œ์Šคํ…œ] + Must Do Now | Do Next + __________________|__________________ + | + [P3: ํ‘ธ์‹œ ์•Œ๋ฆผ] | [P2: ๋ฆฌ๋ทฐ ์‹œ์Šคํ…œ] + Don't Do | Do Later + | + โ†’ High Effort + +### Priority Scoring +Impact (์˜ํ–ฅ๋„) x Confidence (ํ™•์‹ ๋„) / Effort (๋…ธ๋ ฅ) + +์˜ˆ์‹œ: +- ์ฝ”ํŠธ ์˜ˆ์•ฝ: 10 x 10 / 3 = 33.3 (P0) +- ์ปค๋ฎค๋‹ˆํ‹ฐ: 5 x 3 / 8 = 1.9 (P3) +``` + +### 5. MVP ์‹คํ–‰ ๋กœ๋“œ๋งต + +```markdown +## Execution Roadmap + +### Week 1-2: Build Phase 0 +Day 1-3: ๊ธฐ๋ณธ UI/UX +- ๊ฒ€์ƒ‰ ํ™”๋ฉด +- ์˜ˆ์•ฝ ํ™”๋ฉด +- ํ™•์ธ ํ™”๋ฉด + +Day 4-7: ํ•ต์‹ฌ ๋ฐฑ์—”๋“œ +- ์˜ˆ์•ฝ API +- ๊ฒฐ์ œ ์—ฐ๋™ +- ์•Œ๋ฆผ ๋ฐœ์†ก + +Day 8-10: ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ +- End-to-end ํ…Œ์ŠคํŠธ +- ๊ฒฐ์ œ ํ…Œ์ŠคํŠธ +- ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ + +Day 11-14: Soft Launch +- ๋ฒ ํƒ€ ์‚ฌ์šฉ์ž 10๋ช… +- ํ”ผ๋“œ๋ฐฑ ์ˆ˜์ง‘ +- ๊ธด๊ธ‰ ์ˆ˜์ • + + +### Week 3-4: Validate & Iterate +- ์ง€ํ‘œ ์ธก์ • +- ์‚ฌ์šฉ์ž ์ธํ„ฐ๋ทฐ +- ๊ฐœ์„ ์‚ฌํ•ญ ๋ฐ˜์˜ +- Phase 1 ๊ฒฐ์ • + + +### Week 5-8: Build Phase 1 +(If Phase 0 validated) +- ํ• ์ธ ์‹œ์Šคํ…œ +- ๋ฆฌ๋ทฐ ๊ธฐ๋Šฅ +- UX ๊ฐœ์„  +``` + +### 6. MVP ์ฒดํฌ๋ฆฌ์ŠคํŠธ + +```markdown +## MVP Checklist + +### Before Launch +โ–ก ํ•ต์‹ฌ ๊ฐ€์น˜ ๋ช…ํ™•ํ•œ๊ฐ€? +โ–ก ํƒ€๊ฒŸ ์‚ฌ์šฉ์ž ๋ช…ํ™•ํ•œ๊ฐ€? +โ–ก ์„ฑ๊ณต ์ง€ํ‘œ ์ •์˜ํ–ˆ๋‚˜? +โ–ก ์‹คํŒจ ๊ธฐ์ค€ ์ •์˜ํ–ˆ๋‚˜? +โ–ก 2์ฃผ ์•ˆ์— ๊ฐ€๋Šฅํ•œ๊ฐ€? + +### During Development +โ–ก Scope creep ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜๋‚˜? +โ–ก "ํ•˜๋‚˜ ๋”" ์œ ํ˜น ๊ฑฐ๋ถ€ํ–ˆ๋‚˜? +โ–ก ํ•ต์‹ฌ ํ”Œ๋กœ์šฐ๋งŒ ์ง‘์ค‘ํ–ˆ๋‚˜? + +### After Launch +โ–ก ์ •๋Ÿ‰ ์ง€ํ‘œ ๋‹ฌ์„ฑํ–ˆ๋‚˜? +โ–ก ์ •์„ฑ ํ”ผ๋“œ๋ฐฑ ๊ธ์ •์ ์ธ๊ฐ€? +โ–ก ๋‹ค์Œ ๋‹จ๊ณ„ ๋ช…ํ™•ํ•œ๊ฐ€? +``` + +--- + +## Output Files + +### ์ƒ์„ฑ๋  ํŒŒ์ผ๋“ค: + +1. **`docs/appkit/mvp-scope.md`** + - Phase๋ณ„ ๊ธฐ๋Šฅ ๋ชฉ๋ก + - ํฌํ•จ/์ œ์™ธ ๊ธฐ๋Šฅ + - ์šฐ์„ ์ˆœ์œ„ ๋งคํŠธ๋ฆญ์Šค + +2. **`docs/appkit/mvp-metrics.md`** + - ์„ฑ๊ณต ์ง€ํ‘œ + - ํ•™์Šต ์ง€ํ‘œ + - ํ”ผ๋ฒ— ๊ธฐ์ค€ + +--- + +## Integration Points + +### ๋‹ค๋ฅธ ๋ช…๋ น์–ด์™€์˜ ์—ฐ๊ณ„: + +- **From `/appkit.customer`**: Primary ํŽ˜๋ฅด์†Œ๋‚˜์˜ ํ•ต์‹ฌ ๋ฌธ์ œ +- **From `/appkit.sales`**: ๊ฒ€์ฆํ•  ํ•ต์‹ฌ ๊ฐ€์น˜ +- **To `/appkit.merge`**: MVP Phase 0 ๊ธฐ๋Šฅ์˜ ๊ตฌํ˜„ ์ค€๋น„ + +--- + +## Examples + +### Example 1: 2์ฃผ ๊ฒ€์ฆ MVP +```bash +$ /appkit.mvp "2-week validation" + +๐ŸŽฏ MVP Scope Defined + +Phase 0 (2 weeks): +โœ… Search (location-based) +โœ… Booking (real-time) +โœ… Payment (simple) +โœ… Confirmation (email) + +Excluded: +โŒ Reviews (Phase 1) +โŒ Discounts (Phase 1) +โŒ Community (Phase 2) + +Success Criteria: +- 10 bookings/week +- 10 active users +- NPS > 30 + +โœ… Generated mvp-scope.md +โœ… Generated mvp-metrics.md +``` + +### Example 2: ์˜ˆ์‚ฐ ์ œ์•ฝ MVP +```bash +$ /appkit.mvp "budget: 500๋งŒ์›" + +๐Ÿ’ฐ Budget-Constrained MVP + +Concierge MVP Approach: +- Manual booking process +- WhatsApp/Kakao for communication +- Google Forms for payment +- Spreadsheet for management + +Tech Investment: Phase 1 +- After validation +- 500๋งŒ์› = 2 developer weeks + +โœ… Updated mvp-scope.md +``` + +--- + +## Key Principles + +### MVP ์›์น™: + +1. **Maximize Learning**: ์ตœ์†Œ ํˆฌ์ž๋กœ ์ตœ๋Œ€ ํ•™์Šต +2. **Ship Fast**: ์™„๋ฒฝ๋ณด๋‹ค ์†๋„ +3. **Core Value Only**: ํ•ต์‹ฌ ๊ฐ€์น˜๋งŒ ๊ตฌํ˜„ +4. **Real Users**: ์‹ค์ œ ์‚ฌ์šฉ์ž๋กœ ๊ฒ€์ฆ +5. **Metrics-Driven**: ๊ฐ์ด ์•„๋‹Œ ๋ฐ์ดํ„ฐ๋กœ ๊ฒฐ์ • + +### MVP Anti-Patterns: + +โŒ **Feature Creep**: "์ด๊ฒƒ๋„ ์žˆ์œผ๋ฉด ์ข‹๊ฒ ๋Š”๋ฐ..." +โŒ **Perfectionism**: "์กฐ๊ธˆ๋งŒ ๋” ๋‹ค๋“ฌ๊ณ ..." +โŒ **Assumption**: "์‚ฌ์šฉ์ž๋Š” ๋‹น์—ฐํžˆ..." +โŒ **Vanity Metrics**: ์˜๋ฏธ ์—†๋Š” ์ง€ํ‘œ ์ถ”์  +โŒ **Premature Scaling**: ๊ฒ€์ฆ ์ „ ํ™•์žฅ + +--- + +## Tips + +### ์„ฑ๊ณต์ ์ธ MVP๋ฅผ ์œ„ํ•ด: + +1. **Time Box**: 2์ฃผ๋ฅผ ๋„˜๊ธฐ์ง€ ๋งˆ๋ผ +2. **User Cap**: 10-100๋ช…์œผ๋กœ ์‹œ์ž‘ +3. **Manual First**: ์ž๋™ํ™”๋Š” ๋‚˜์ค‘์— +4. **Talk to Users**: ๋งค์ผ ์‚ฌ์šฉ์ž์™€ ๋Œ€ํ™” +5. **Kill Features**: ๊ณผ๊ฐํ•˜๊ฒŒ ๋นผ๋ผ + +### MVP ์‹คํŒจ ์‹ ํ˜ธ: + +- 2์ฃผ ์ง€๋‚˜๋„ ์ถœ์‹œ ๋ชปํ•จ +- ๊ธฐ๋Šฅ์ด ๊ณ„์† ์ถ”๊ฐ€๋จ +- ์‚ฌ์šฉ์ž ํ”ผ๋“œ๋ฐฑ ์—†์Œ +- ์ง€ํ‘œ ์ธก์ • ์•ˆ ํ•จ +- "์ข€ ๋” ์™„๋ฒฝํ•˜๊ฒŒ" ๋ฐ˜๋ณต + +--- + +## Next Steps + +### ์ด ๋ช…๋ น์–ด ์‹คํ–‰ ํ›„: + +**๐Ÿ“ ๋‹ค์Œ ๋‹จ๊ณ„: Step 6 - `/appkit.merge`** (๊ธฐํš ์ •๋ˆ) +- MVP ๋ฒ”์œ„๊ฐ€ ์ •ํ•ด์กŒ์œผ๋‹ˆ ์ด์ œ ๊ธฐํš ์ •๋ˆ ๋‹จ๊ณ„๋กœ +- ์šฉ์–ด ํ†ต์ผ, ๊ธฐ๋Šฅ ์ค‘๋ณต ์ œ๊ฑฐ +- ๊ณ ๊ฐ ๊ฐ€์น˜ ์ผ๊ด€์„ฑ ํ™•๋ณด + +--- + +## Version + +- **Version**: 1.0.0 +- **Created**: 2025-11-19 +- **Philosophy**: "If you're not embarrassed by v1, you launched too late" \ No newline at end of file diff --git a/.claude/commands/appkit.new.md b/.claude/commands/appkit.new.md new file mode 100644 index 0000000..46cb60b --- /dev/null +++ b/.claude/commands/appkit.new.md @@ -0,0 +1,480 @@ +--- +description: ์•„์ด๋””์–ด ์Šค์ผ€์น˜ - ๋ง‰์—ฐํ•œ ์•„์ด๋””์–ด๋ฅผ ์„œ๋น„์Šค ์ปจ์…‰์œผ๋กœ ๊ตฌ์ฒดํ™” +--- + +## User Input + +```text +$ARGUMENTS +``` + +User input **must** be considered (if not empty). + +## Overview + +The text following `/appkit.new` is the app description. Assume `$ARGUMENTS` is always available in this conversation even if shown as-is. Don't ask again unless the user provides an empty command. + +**This is Step 1 of the logical thinking 7-step workflow**: + +``` +๋…ผ๋ฆฌ์  ์‚ฌ๊ณ  7๋‹จ๊ณ„: +1. /appkit.new โ†’ ์•„์ด๋””์–ด ์Šค์ผ€์น˜ (์–ด๋–ค ์„œ๋น„์Šค์ธ์ง€?) โ† YOU ARE HERE +2. /appkit.spec โ†’ ๊ธฐ๋Šฅ ๊ตฌ์ฒดํ™” (๋ญ๊ฐ€ ํ•„์š”ํ• ๊นŒ? ๋ˆ„๊ฐ€ ์“ธ๊นŒ?) +3. /appkit.customer โ†’ ๊ณ ๊ฐ ์Šคํ† ๋ฆฌ (๊ณ ๊ฐ์˜ ํ•˜๋ฃจ, ๊ณ ๋ฏผ, ํ•ด๊ฒฐ) +4. /appkit.sales โ†’ ์„ธ์ผ์ฆˆ ๋žœ๋”ฉ ๊ตฌ์„ฑ (์–ด๋–ป๊ฒŒ ์„ค๋“ํ• ๊นŒ?) +5. /appkit.mvp โ†’ MVP ๋ฒ”์œ„ ์ •ํ•˜๊ธฐ (์ตœ์†Œํ•œ์œผ๋กœ ๊ฒ€์ฆํ•˜๋ ค๋ฉด?) +6. /appkit.merge โ†’ ๊ธฐํš ์ •๋ˆ (ํฉ์–ด์ง„ ๊ธฐํš ํ†ตํ•ฉ) +7. /appkit.design โ†’ ๊ฐœ๋ฐœ ์ค€๋น„ (API, ERD, ๊ธฐ์ˆ  ์ŠคํŽ™) +``` + +Based on the app description, perform the following: + +## Execution Flow + +### 1. ์•„์ด๋””์–ด ์Šค์ผ€์น˜ (๊ณ ๊ฐ ์ค‘์‹ฌ ๋Œ€ํ™”) + +**Input**: User's natural language app description (e.g., "Tennis court booking app with promotions and coupons") + +**Step 1: ๊ณ ๊ฐ ๋ฌธ์ œ ํŒŒ์•…** +1. **๋ฌด์Šจ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋‚˜?**: + - ํ˜„์žฌ ๊ณ ๊ฐ์ด ๊ฒช๋Š” ๋ถˆํŽธํ•จ + - ๊ธฐ์กด ์†”๋ฃจ์…˜์˜ ํ•œ๊ณ„ + - ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ๋‹ˆ์ฆˆ + +2. **๋ˆ„๊ฐ€ ์ด ๋ฌธ์ œ๋ฅผ ๊ฒช๋‚˜?**: + - ์ฃผ์š” ํƒ€๊ฒŸ ๊ณ ๊ฐ๊ตฐ + - ๊ทธ๋“ค์˜ ํŠน์„ฑ๊ณผ ํ–‰๋™ ํŒจํ„ด + - ๋ฌธ์ œ์˜ ์‹ฌ๊ฐ๋„ + +**Step 2: ์„œ๋น„์Šค ์ปจ์…‰ ์ œ์‹œ** + +Present customer-centric summary in this format: + +```markdown +## ๐Ÿ“‹ ์„œ๋น„์Šค ์ปจ์…‰ + +**์„œ๋น„์Šค๋ช…**: [์ถ”๋ก ํ•œ ์ด๋ฆ„ ๋˜๋Š” ์‚ฌ์šฉ์ž ์ž…๋ ฅ] + +### ๐ŸŽฏ ํ•ต์‹ฌ ๋ฌธ์ œ์™€ ํ•ด๊ฒฐ์ฑ… + +**๊ณ ๊ฐ์ด ๊ฒช๋Š” ๋ฌธ์ œ**: +- "ํ…Œ๋‹ˆ์Šค ์น˜๊ณ  ์‹ถ์€๋ฐ ์ฝ”ํŠธ ์˜ˆ์•ฝ์ด ๋„ˆ๋ฌด ๋ฒˆ๊ฑฐ๋กœ์›Œ์š”" +- "์ „ํ™”๋กœ ์ผ์ผ์ด ํ™•์ธํ•ด์•ผ ํ•˜๊ณ , ๋Œ€๊ธฐ ์‹œ๊ฐ„๋„ ๊ธธ์–ด์š”" +- "๊ฐ€๊ฒฉ๋„ ์ œ๊ฐ๊ฐ์ด๋ผ ๋น„๊ต๊ฐ€ ์–ด๋ ค์›Œ์š”" + +**์šฐ๋ฆฌ์˜ ํ•ด๊ฒฐ์ฑ…**: +- 3์ดˆ ๋งŒ์— ์‹ค์‹œ๊ฐ„ ์˜ˆ์•ฝ +- ๋ชจ๋“  ์ฝ”ํŠธ ๊ฐ€๊ฒฉ ํ•œ๋ˆˆ์— ๋น„๊ต +- ์ž๋™ ํ• ์ธ์œผ๋กœ 30% ์ €๋ ดํ•˜๊ฒŒ + +### ๐Ÿ‘ฅ ํƒ€๊ฒŸ ๊ณ ๊ฐ + +**Primary (ํ•ต์‹ฌ ๊ณ ๊ฐ)**: +- 30-40๋Œ€ ์ง์žฅ์ธ +- ์ฃผ๋ง ์šด๋™์„ ์›ํ•˜์ง€๋งŒ ์‹œ๊ฐ„์ด ์—†๋Š” ์‚ฌ๋žŒ +- ํŽธ์˜์„ฑ๊ณผ ์‹œ๊ฐ„ ์ ˆ์•ฝ์„ ์ค‘์‹œ + +**Secondary (๋ณด์กฐ ๊ณ ๊ฐ)**: +- ํ”„๋ฆฌ๋žœ์„œ (์‹œ๊ฐ„ ์œ ์—ฐ, ๊ฐ€๊ฒฉ ๋ฏผ๊ฐ) +- ๋Œ€ํ•™์ƒ (์ €๋ ดํ•œ ๊ฐ€๊ฒฉ ์„ ํ˜ธ) + +### ๐Ÿ’Ž ํ•ต์‹ฌ ๊ฐ€์น˜ (์™œ ์จ์•ผ ํ•˜๋‚˜?) + +1. **์‹œ๊ฐ„ ์ ˆ์•ฝ**: 15๋ถ„ ๋Œ€๊ธฐ โ†’ 3์ดˆ ์˜ˆ์•ฝ +2. **๋น„์šฉ ์ ˆ๊ฐ**: ์ž๋™ ํ• ์ธ์œผ๋กœ ํ‰๊ท  30% ์ €๋ ด +3. **ํ™•์‹คํ•œ ์˜ˆ์•ฝ**: ์‹ค์‹œ๊ฐ„ ํ™•์ธ, ์ฆ‰์‹œ ํ™•์ • + +### ๐Ÿš€ ์ฐจ๋ณ„์  (๊ฒฝ์Ÿ์‚ฌ์™€ ๋ญ๊ฐ€ ๋‹ค๋ฅธ๊ฐ€?) + +- ๊ธฐ์กด: ์ „ํ™” ์˜ˆ์•ฝ, ๋ถˆํ™•์‹ค, ์ •๊ฐ€ +- ์šฐ๋ฆฌ: ์•ฑ ์˜ˆ์•ฝ, ์‹ค์‹œ๊ฐ„, ์ž๋™ ํ• ์ธ + +### ๐Ÿ“ฆ ์ฃผ์š” ๊ธฐ๋Šฅ (๊ณ ๊ฐ ๊ฐ€์น˜ ์ค‘์‹ฌ) + +1. **001-search**: ๋น ๋ฅธ ์ฝ”ํŠธ ๊ฒ€์ƒ‰ + - ์œ„์น˜ ๊ธฐ๋ฐ˜ ์ž๋™ ์ถ”์ฒœ + - ์‹ค์‹œ๊ฐ„ ์˜ˆ์•ฝ ๊ฐ€๋Šฅ ํ™•์ธ + +2. **002-booking**: ๊ฐ„ํŽธ ์˜ˆ์•ฝ/๊ฒฐ์ œ + - 3์ดˆ ์˜ˆ์•ฝ ์™„๋ฃŒ + - ์›ํ„ฐ์น˜ ๊ฒฐ์ œ + +3. **003-discount**: ์Šค๋งˆํŠธ ํ• ์ธ + - ํƒ€์ž„๋”œ ์ž๋™ ์ ์šฉ + - ์ฟ ํฐ ์ž๋™ ์ถ”์ฒœ + +4. **004-manage**: ์˜ˆ์•ฝ ๊ด€๋ฆฌ + - ์˜ˆ์•ฝ ๋ณ€๊ฒฝ/์ทจ์†Œ + - ์•Œ๋ฆผ ์„ค์ • + +5. **005-social**: ์ปค๋ฎค๋‹ˆํ‹ฐ + - ํŒŒํŠธ๋„ˆ ์ฐพ๊ธฐ + - ๋ฆฌ๋ทฐ/ํ‰์  + +### ๐Ÿ’ฐ ์ˆ˜์ต ๋ชจ๋ธ + +- ์˜ˆ์•ฝ ์ˆ˜์ˆ˜๋ฃŒ (5-10%) +- ํ”„๋ฆฌ๋ฏธ์—„ ๋ฉค๋ฒ„์‹ญ (์šฐ์„  ์˜ˆ์•ฝ๊ถŒ) +- ์ œํœด ๊ด‘๊ณ  (์žฅ๋น„, ๋ ˆ์Šจ) + +--- + +์ด๋ ‡๊ฒŒ ์ดํ•ดํ•œ ๊ฒƒ์ด ๋งž๋‚˜์š”? ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ์ด ์žˆ๋‚˜์š”? + +ํŠนํžˆ: +- ํ•ต์‹ฌ ๊ณ ๊ฐ์ด ๋งž๋‚˜์š”? +- ํ•ด๊ฒฐํ•˜๋ ค๋Š” ๋ฌธ์ œ๊ฐ€ ์ •ํ™•ํ•œ๊ฐ€์š”? +- ๋” ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์ด ์žˆ๋‚˜์š”? +``` + +**Step 3: Receive User Feedback** + +Wait for user response: +- "Good", "Yes", "Proceed" โ†’ Move to Step 4 +- Modification request โ†’ Update content and return to Step 2 +- Additional features โ†’ Add to feature list and return to Step 2 + +**Example Dialog**: +``` +User: "Lesson booking is important too. And we need instructor rating feature" + +Claude: +Got it! I'll update as follows: + +**Major Feature Specs (Updated)**: +1. 001-user: User authentication and profile management +2. 002-venue: Court information management +3. 003-lesson: Lesson information and instructor management (newly added) +4. 004-booking: Booking and payment system (courts + lessons) +5. 005-promotion: Coupons and promotions +6. 006-review: Facility and instructor reviews/ratings (instructor rating added) + +Shall we proceed with this? +``` + +**Step 4: Final Confirmation** + +When user confirms with "Good", "Proceed", etc.: + +``` +โœ… App structure confirmed! + +Creating files now... +``` + +### 2. Script Execution (After User Confirmation) + +Execute only after user confirmation: + +**Script**: `.app/scripts/init-app.sh --json --app-name "tymatch"` + +**Script Actions**: +- Create `docs/appkit/` directory +- Create `docs/appkit/specs/` directory +- Create subdirectories for each confirmed spec (`001-user/`, `002-venue/`, ...) +- JSON output: + ```json + { + "SPECS_DIR": "docs/appkit/specs", + "APP_OVERVIEW": "docs/appkit/overview.md" + } + ``` + +**Important**: +- **No file creation before user confirmation** +- Script only handles directory creation and path output +- Natural language analysis and dialogue handled by Claude + +### 3. Service Overview Document Creation + +**File**: `docs/appkit/overview.md` + +**Content**: Use **user-confirmed content** with customer focus + +```markdown +# [Service Name] Service Concept + +## ๐ŸŽฏ ์„œ๋น„์Šค ๋ณธ์งˆ +[ํ•œ ๋ฌธ์žฅ์œผ๋กœ ์„œ๋น„์Šค ์ •์˜] +์˜ˆ: "์ง์žฅ์ธ์˜ ์ฃผ๋ง ์šด๋™์„ ์‰ฝ๊ฒŒ ๋งŒ๋“œ๋Š” ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ ์„œ๋น„์Šค" + +## ๐Ÿ”ฅ ํ•ด๊ฒฐํ•˜๋Š” ๋ฌธ์ œ +[User-confirmed problems] +- ๋ฒˆ๊ฑฐ๋กœ์šด ์ „ํ™” ์˜ˆ์•ฝ (15๋ถ„ ๋Œ€๊ธฐ) +- ๋ถˆํˆฌ๋ช…ํ•œ ๊ฐ€๊ฒฉ ์ •๋ณด +- ์›ํ•˜๋Š” ์‹œ๊ฐ„๋Œ€ ํ™•์ธ ์–ด๋ ค์›€ + +## ๐Ÿ‘ฅ ํƒ€๊ฒŸ ๊ณ ๊ฐ +[User-confirmed target customers] + +### Primary Persona +- ๊น€๋Œ€๋ฆฌ (35์„ธ, IT๊ธฐ์—…) +- Pain: "์ฃผ๋ง ์šด๋™ํ•˜๊ณ  ์‹ถ์€๋ฐ ์˜ˆ์•ฝ์ด ๋„ˆ๋ฌด ๋ฒˆ๊ฑฐ๋กœ์›Œ" +- Want: ๋น ๋ฅธ ์˜ˆ์•ฝ, ํ™•์‹คํ•œ ์‹œ๊ฐ„ ํ™•๋ณด + +### Secondary Personas +- ํ”„๋ฆฌ๋žœ์„œ: ํ‰์ผ ๋‚ฎ ์ €๋ ดํ•œ ์‹œ๊ฐ„๋Œ€ ํ™œ์šฉ +- ๋Œ€ํ•™์ƒ: ๊ทธ๋ฃน ์˜ˆ์•ฝ์œผ๋กœ ํ• ์ธ ๋ฐ›๊ธฐ + +## ๐Ÿ’Ž ํ•ต์‹ฌ ๊ฐ€์น˜ ์ œ์•ˆ +[User-confirmed value propositions] +1. **์‹œ๊ฐ„ ์ ˆ์•ฝ**: 15๋ถ„ โ†’ 3์ดˆ +2. **๋น„์šฉ ์ ˆ๊ฐ**: ์ž๋™ ํ• ์ธ 30% +3. **ํ™•์‹ค์„ฑ**: ์‹ค์‹œ๊ฐ„ ํ™•์ธ & ์ฆ‰์‹œ ํ™•์ • + +## ๐Ÿ“ฆ ์ฃผ์š” ๊ธฐ๋Šฅ (๊ณ ๊ฐ ๊ฐ€์น˜ ์ค‘์‹ฌ) +[User-confirmed features with customer value] +- **001-search**: 3์ดˆ ๋งŒ์— ์ฐพ๋Š” ์™„๋ฒฝํ•œ ์ฝ”ํŠธ +- **002-booking**: ํด๋ฆญ ํ•œ ๋ฒˆ์œผ๋กœ ์˜ˆ์•ฝ ์™„๋ฃŒ +- **003-discount**: ์ž๋™์œผ๋กœ ์ ์šฉ๋˜๋Š” ์ตœ์ €๊ฐ€ +- **004-manage**: ์–ธ์ œ๋“  ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ์œ ์—ฐํ•จ +- **005-social**: ํ•จ๊ป˜ ์šด๋™ํ•  ํŒŒํŠธ๋„ˆ ์ฐพ๊ธฐ + +## ๐Ÿš€ MVP ๋กœ๋“œ๋งต +Phase 0 (2์ฃผ): ํ•ต์‹ฌ ์˜ˆ์•ฝ ๊ธฐ๋Šฅ +Phase 1 (1๊ฐœ์›”): ํ• ์ธ & ๋ฆฌ๋ทฐ +Phase 2 (3๊ฐœ์›”): ์ปค๋ฎค๋‹ˆํ‹ฐ & ํ™•์žฅ + +## ๐Ÿ’ฐ ๋น„์ฆˆ๋‹ˆ์Šค ๋ชจ๋ธ +[User-confirmed business model] +- ์˜ˆ์•ฝ ์ˆ˜์ˆ˜๋ฃŒ (5-10%) +- ํ”„๋ฆฌ๋ฏธ์—„ ๋ฉค๋ฒ„์‹ญ +- ์ œํœด ๋งˆ์ผ€ํŒ… + +## ๐Ÿ“Š ์„ฑ๊ณต ์ง€ํ‘œ +- Week 1: 10๋ช… ์‚ฌ์šฉ์ž ํ™•๋ณด +- Week 2: 10๊ฑด ์˜ˆ์•ฝ ๋‹ฌ์„ฑ +- Month 1: NPS 30+ ๋‹ฌ์„ฑ +``` + +**Important**: Use content presented in Step 2 and confirmed by user **as-is** + +### 4. Individual Spec Draft Creation (Based on Overview.md) + +Create **initial draft** `spec.md` file in each spec directory based on overview.md content: + +**Important**: This creates **first draft**, not empty templates. Extract relevant information from overview.md for each feature. + +**Approach**: +1. Read the feature description from overview.md (์ฃผ์š” ๊ธฐ๋Šฅ section) +2. Extract customer value, target user, and workflow hints +3. Create initial draft with inferred content +4. Mark sections that need `/appkit.spec` for further detailing + +**File**: `docs/appkit/specs/001-persona/spec.md` + +**Content**: Draft with overview-based initial content + +```markdown +# Spec: 001-persona + +## Feature Name +ํŽ˜๋ฅด์†Œ๋‚˜ ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌ + +## User Value (๊ณ ๊ฐ ๊ฐ€์น˜) +[Extract from overview.md's feature description] +- 100๊ฐ€์ง€ ๋‹ค์–‘ํ•œ ์Šคํƒ€์ผ๋กœ ๋ธŒ๋žœ๋“œ ๋…ธ์ถœ ํ™•๋Œ€ +- ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์ตœ์ ํ™”๋œ ์ธํ”Œ๋ฃจ์–ธ์„œ ํ™•๋ณด + +## Target User (๋ˆ„๊ฐ€ ์“ธ๊นŒ?) +[Infer from overview.md's ํƒ€๊ฒŸ ๊ณ ๊ฐ section] +- Primary: ์„œ๋น„์Šค ๊ด€๋ฆฌ์ž +- Use case: ์ดˆ๊ธฐ ์…‹์—… ์‹œ ๋‹ค์–‘ํ•œ ํŽ˜๋ฅด์†Œ๋‚˜ ์ƒ์„ฑ + +## User Journey & Screen Flow +[Extract workflow from overview.md's ํ•ต์‹ฌ ์›Œํฌํ”Œ๋กœ์šฐ] + +### 1. ํŽ˜๋ฅด์†Œ๋‚˜ ์ƒ์„ฑ ํ™”๋ฉด +- **UI Elements**: ์นดํ…Œ๊ณ ๋ฆฌ ์„ ํƒ, ๊ฐœ์ˆ˜ ์„ค์ •, ์ƒ์„ฑ ๋ฒ„ํŠผ +- **CTA**: "100๋ช… ์ž๋™ ์ƒ์„ฑ" ๋ฒ„ํŠผ +- **Next**: ํŽ˜๋ฅด์†Œ๋‚˜ ๋ชฉ๋ก ํ™”๋ฉด + +### 2. ํŽ˜๋ฅด์†Œ๋‚˜ ๋ชฉ๋ก ํ™”๋ฉด +- **UI Elements**: ํŽ˜๋ฅด์†Œ๋‚˜ ์นด๋“œ ๊ทธ๋ฆฌ๋“œ (์ด๋ฆ„, ์นดํ…Œ๊ณ ๋ฆฌ, ์ƒํƒœ) +- **CTA**: ๋ฏธ๋“œ์ €๋‹ˆ ํ”„๋กฌํ”„ํŠธ export, ํ”„๋กœํ•„ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ +- **Next**: ๊ฐœ๋ณ„ ํŽ˜๋ฅด์†Œ๋‚˜ ์ƒ์„ธ + +## Business Rules +[Extract from overview.md's feature description] +- ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ํŽ˜๋ฅด์†Œ๋‚˜ ์ž๋™ ์ƒ์„ฑ (Beauty 25๋ช…, Fashion 25๋ช…, etc.) +- ๋ฏธ๋“œ์ €๋‹ˆ์šฉ ํ”„๋กฌํ”„ํŠธ export ๊ธฐ๋Šฅ +- ํ”„๋กœํ•„ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ์‹œ์Šคํ…œ + +## Edge Cases +[Initial inference - needs /appkit.spec for details] +- ํŽ˜๋ฅด์†Œ๋‚˜ ์ƒ์„ฑ ์‹คํŒจ ์‹œ ์žฌ์‹œ๋„ ๋กœ์ง +- ์ค‘๋ณต ํŽ˜๋ฅด์†Œ๋‚˜ ์ฒดํฌ + +## Dependencies +[Infer from overview.md workflow] +- None (initial setup feature) + +--- + +๐Ÿ’ก **๋” ๊ตฌ์ฒดํ™”ํ•˜๋ ค๋ฉด**: +``` +/appkit.spec 001-persona "์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ๋น„์œจ ์กฐ์ • ๊ธฐ๋Šฅ" +/appkit.spec 001-persona "ํŽ˜๋ฅด์†Œ๋‚˜๋ณ„ ํ†ค์•ค๋งค๋„ˆ ์„ค์ •" +``` +``` + +**Content Generation Strategy**: + +For each spec (001-010), extract from overview.md: + +1. **Feature Name**: Use Korean name from ์ฃผ์š” ๊ธฐ๋Šฅ section +2. **User Value**: Extract from ํ•ต์‹ฌ ๊ฐ€์น˜ ์ œ์•ˆ or feature description +3. **Target User**: Infer from ํƒ€๊ฒŸ ๊ณ ๊ฐ (๊ด€๋ฆฌ์ž vs ๊ด‘๊ณ ์ฃผ) +4. **User Journey**: Extract from ํ•ต์‹ฌ ์›Œํฌํ”Œ๋กœ์šฐ section +5. **Business Rules**: Extract explicit rules from feature description +6. **Edge Cases**: Basic inference (mark as "needs detailing") +7. **Dependencies**: Infer from workflow order + +**Example Mapping** (from AI Influencer Network overview.md): + +``` +001-persona โ†’ + - Extract: "100๋ช…์˜ ๋‹ค์–‘ํ•œ ์ธํ”Œ๋ฃจ์–ธ์„œ ์ƒ์„ฑ" + - User Value: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์ตœ์ ํ™”๋œ ์ธํ”Œ๋ฃจ์–ธ์„œ ํ’€ ํ™•๋ณด + - Journey: ์นดํ…Œ๊ณ ๋ฆฌ ์„ ํƒ โ†’ ์ž๋™ ์ƒ์„ฑ โ†’ ๋ฏธ๋“œ์ €๋‹ˆ export + +003-content-composer โ†’ + - Extract: "ํฌ๋กค๋ง ์š”์†Œ ์กฐํ•ฉ์œผ๋กœ ๋น ๋ฅธ ์ œ์ž‘" + - User Value: ๊ฒ€์ฆ๋œ ์š”์†Œ ์กฐํ•ฉ์œผ๋กœ ์‹œํ–‰์ฐฉ์˜ค ์ตœ์†Œํ™” + - Journey: ํฌ๋กค๋ง ๊ฐค๋Ÿฌ๋ฆฌ โ†’ ์š”์†Œ ์„ ํƒ โ†’ ๋‚˜๋…ธ๋ฐ”๋‚˜๋‚˜ ์ƒ์„ฑ + +006-brand-site โ†’ + - Extract: "๊ด‘๊ณ ์ฃผ๊ฐ€ ์‰ฝ๊ฒŒ ์˜๋ขฐ" + - User Value: ๋น ๋ฅธ ์บ ํŽ˜์ธ ์‹คํ–‰, ๋‹ค์–‘ํ•œ ํƒ€๊ฒŸ์ธต ๊ณต๋žต + - Journey: ๋ธŒ๋žœ๋“œ ๋“ฑ๋ก โ†’ ์นดํ…Œ๊ณ ๋ฆฌ ์„ ํƒ โ†’ ์บ๋ฆญํ„ฐ ์ถ”์ฒœ +``` + +**Files to Create** (with overview-based drafts): +- `docs/appkit/specs/001-persona/spec.md` +- `docs/appkit/specs/002-reference-crawl/spec.md` +- `docs/appkit/specs/003-content-composer/spec.md` +- `docs/appkit/specs/004-caption-generator/spec.md` +- `docs/appkit/specs/005-approval/spec.md` +- `docs/appkit/specs/006-brand-site/spec.md` +- `docs/appkit/specs/007-ad-content/spec.md` +- `docs/appkit/specs/008-posting/spec.md` +- `docs/appkit/specs/009-engagement/spec.md` +- `docs/appkit/specs/010-analytics/spec.md` + +### 5. Completion Report + +Report to user: + +``` +โœ… ์„œ๋น„์Šค ์ปจ์…‰ ์ •์˜ & ๊ธฐ๋Šฅ ์ดˆ์•ˆ ์ƒ์„ฑ ์™„๋ฃŒ! + +๐Ÿ“ ์ƒ์„ฑ๋œ ํŒŒ์ผ: +- docs/appkit/overview.md (์„œ๋น„์Šค ์ปจ์…‰) +- docs/appkit/specs/001-search/spec.md (๊ฒ€์ƒ‰ - ์ดˆ์•ˆ ์ƒ์„ฑ๋จ โœจ) +- docs/appkit/specs/002-booking/spec.md (์˜ˆ์•ฝ - ์ดˆ์•ˆ ์ƒ์„ฑ๋จ โœจ) +- docs/appkit/specs/003-discount/spec.md (ํ• ์ธ - ์ดˆ์•ˆ ์ƒ์„ฑ๋จ โœจ) +- docs/appkit/specs/004-manage/spec.md (๊ด€๋ฆฌ - ์ดˆ์•ˆ ์ƒ์„ฑ๋จ โœจ) +- docs/appkit/specs/005-social/spec.md (์ปค๋ฎค๋‹ˆํ‹ฐ - ์ดˆ์•ˆ ์ƒ์„ฑ๋จ โœจ) + +โœจ ๋ณ€๊ฒฝ์‚ฌํ•ญ: ๋นˆ ํ…œํ”Œ๋ฆฟ์ด ์•„๋‹Œ overview.md ๊ธฐ๋ฐ˜ **์ดˆ์•ˆ**์ด ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! +๊ฐ spec์—๋Š” ์ด๋ฏธ ๋‹ค์Œ ๋‚ด์šฉ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค: +- User Value (๊ณ ๊ฐ ๊ฐ€์น˜) +- Target User (ํƒ€๊ฒŸ ๊ณ ๊ฐ) +- User Journey (๊ธฐ๋ณธ ํ™”๋ฉด ํ๋ฆ„) +- Business Rules (ํ•ต์‹ฌ ๊ทœ์น™) +- Dependencies (์˜์กด์„ฑ) + +๐ŸŽฏ ํ•ต์‹ฌ ๊ฐ€์น˜: +- ์‹œ๊ฐ„ ์ ˆ์•ฝ: 15๋ถ„ โ†’ 3์ดˆ +- ๋น„์šฉ ์ ˆ๊ฐ: 30% ์ž๋™ ํ• ์ธ +- ํ™•์‹คํ•œ ์˜ˆ์•ฝ: ์‹ค์‹œ๊ฐ„ ํ™•์ • + +๐Ÿ‘ฅ ํƒ€๊ฒŸ ๊ณ ๊ฐ: +- Primary: 30-40๋Œ€ ์ง์žฅ์ธ +- Secondary: ํ”„๋ฆฌ๋žœ์„œ, ๋Œ€ํ•™์ƒ + +๐Ÿ“ ๋‹ค์Œ ๋‹จ๊ณ„ (๋…ผ๋ฆฌ์  ์‚ฌ๊ณ  ํ๋ฆ„): + +**Step 2 - ๊ธฐ๋Šฅ ๊ตฌ์ฒดํ™” (/appkit.spec)** +์ด๋ฏธ ์ดˆ์•ˆ์ด ์žˆ์œผ๋‹ˆ, ๋” ๊ตฌ์ฒด์ ์ธ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ถ”๊ฐ€ํ•˜์„ธ์š”: + /appkit.spec 001-search "์œ„์น˜ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ€๊นŒ์šด ์ฝ”ํŠธ ์ฐพ๊ธฐ, ๊ฑฐ๋ฆฌ์ˆœ ์ •๋ ฌ" + /appkit.spec 002-booking "ํ‡ด๊ทผ๊ธธ ์ง€ํ•˜์ฒ ์—์„œ 3์ดˆ ์˜ˆ์•ฝ, ์›ํ„ฐ์น˜ ๊ฒฐ์ œ" + /appkit.spec 003-discount "ํƒ€์ž„๋”œ ์ž๋™ ์ ์šฉ, ์ค‘๋ณต ์ฟ ํฐ ๋ถˆ๊ฐ€" + +**Step 3 - ๊ณ ๊ฐ ์Šคํ† ๋ฆฌ (/appkit.customer)** +ํƒ€๊ฒŸ ํŽ˜๋ฅด์†Œ๋‚˜์˜ ํ•˜๋ฃจ์™€ ๋ฌธ์ œ ํ•ด๊ฒฐ ์Šคํ† ๋ฆฌ: + /appkit.customer + +**Step 4 - ์„ธ์ผ์ฆˆ ๋žœ๋”ฉ (/appkit.sales)** +๊ด‘๊ณ ์ฃผ๋ฅผ ์„ค๋“ํ•˜๋Š” ๋žœ๋”ฉ ํŽ˜์ด์ง€: + /appkit.sales + +๐Ÿ“ ํ˜„์žฌ ์œ„์น˜: Step 1/7 ์™„๋ฃŒ (์•„์ด๋””์–ด ์Šค์ผ€์น˜ + ์ดˆ์•ˆ ์ƒ์„ฑ) +๐Ÿ“ ๋‹ค์Œ ๋‹จ๊ณ„: Step 2 - /appkit.spec (๊ธฐ๋Šฅ ๊ตฌ์ฒดํ™”) + +๐Ÿ’ก Tip: ๊ฐ spec ํŒŒ์ผ์„ ์—ด์–ด๋ณด์„ธ์š”. ์ด๋ฏธ ๊ธฐ๋ณธ ๊ตฌ์กฐ๊ฐ€ ์ฑ„์›Œ์ ธ ์žˆ์–ด์„œ + `/appkit.spec`์œผ๋กœ ์ถ”๊ฐ€ ๋””ํ…Œ์ผ๋งŒ ๋„ฃ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค! +``` + +## Important Notes + +### ๐Ÿ”ด Mandatory Requirements + +1. **Interactive process required**: + - **Never create files immediately** + - Always present summary in Step 2 + - Create files only after user confirmation + +2. **Handle user feedback**: + - "Good", "Yes", "Proceed" โ†’ Proceed with file creation + - Modification request โ†’ Update and re-present + - Additional features โ†’ Update list and re-present + - If uncertain, ask additional questions + +3. **Iterate before confirmation**: + - Repeat Steps 2-3 until user is satisfied + - Don't rush, have thorough dialogue + +### ๐ŸŸก Analysis Guidelines + +1. **Natural language analysis**: + - Carefully analyze user input + - Infer domain and business model + - Derive reasonable major features (5-8) + - Fill gaps with questions + +2. **Numbering system**: + - Use 3-digit numbers (001, 002, 003, ...) + - Sort in logical order (auth โ†’ core features โ†’ supplementary features) + +3. **Feature names**: + - Short and clear (user, venue, booking, promotion) + - Use lowercase English with hyphens + +### ๐ŸŸข Technical Details + +1. **Script execution**: + - Execute only after user confirmation + - If script doesn't exist, create directories manually + - Parse JSON output to confirm paths + +2. **Incremental detailing**: + - This stage creates **structure only** + - Details added with `/appkit.spec` command + +## Example Flow + +``` +User: /appkit.new Tennis court booking app + +Claude: [Presents Step 2 summary] + +User: Add lesson booking too + +Claude: [Presents updated summary] + +User: Good! + +Claude: โœ… Confirmed! Creating files... +[Executes file creation] +``` diff --git a/.claude/commands/appkit.sales.md b/.claude/commands/appkit.sales.md new file mode 100644 index 0000000..2a57046 --- /dev/null +++ b/.claude/commands/appkit.sales.md @@ -0,0 +1,370 @@ +# appkit.sales + +**๊ณ ๊ฐ์„ ์„ค๋“ํ•˜๋Š” ์„ธ์ผ์ฆˆ ๋žœ๋”ฉ ๋ฉ”์‹œ์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ช…๋ น์–ด** + +--- + +## Overview + +**This is Step 4 of the logical thinking 7-step workflow**: + +``` +๋…ผ๋ฆฌ์  ์‚ฌ๊ณ  7๋‹จ๊ณ„: +1. /appkit.new โ†’ ์•„์ด๋””์–ด ์Šค์ผ€์น˜ (์–ด๋–ค ์„œ๋น„์Šค์ธ์ง€?) +2. /appkit.spec โ†’ ๊ธฐ๋Šฅ ๊ตฌ์ฒดํ™” (๋ญ๊ฐ€ ํ•„์š”ํ• ๊นŒ? ๋ˆ„๊ฐ€ ์“ธ๊นŒ?) +3. /appkit.customer โ†’ ๊ณ ๊ฐ ์Šคํ† ๋ฆฌ (๊ณ ๊ฐ์˜ ํ•˜๋ฃจ, ๊ณ ๋ฏผ, ํ•ด๊ฒฐ) +4. /appkit.sales โ†’ ์„ธ์ผ์ฆˆ ๋žœ๋”ฉ ๊ตฌ์„ฑ (์–ด๋–ป๊ฒŒ ์„ค๋“ํ• ๊นŒ?) โ† YOU ARE HERE +5. /appkit.mvp โ†’ MVP ๋ฒ”์œ„ ์ •ํ•˜๊ธฐ (์ตœ์†Œํ•œ์œผ๋กœ ๊ฒ€์ฆํ•˜๋ ค๋ฉด?) +6. /appkit.merge โ†’ ๊ธฐํš ์ •๋ˆ (ํฉ์–ด์ง„ ๊ธฐํš ํ†ตํ•ฉ) +7. /appkit.design โ†’ ๊ฐœ๋ฐœ ์ค€๋น„ (API, ERD, ๊ธฐ์ˆ  ์ŠคํŽ™) +``` + +## Purpose + +ํƒ€๊ฒŸ ๊ณ ๊ฐ์˜ ๋ฌธ์ œ์™€ ์š•๊ตฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ค๋“๋ ฅ ์žˆ๋Š” ์„ธ์ผ์ฆˆ ๋ฉ”์‹œ์ง€๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. +๊ธฐ๋Šฅ ๋‚˜์—ด์ด ์•„๋‹Œ, ๊ณ ๊ฐ ๊ฐ€์น˜์™€ ๋ณ€ํ™” ์Šคํ† ๋ฆฌ๋กœ ์„ค๋“ํ•ฉ๋‹ˆ๋‹ค. + +**ํ•ต์‹ฌ ์งˆ๋ฌธ**: "์–ด๋–ป๊ฒŒ ๊ณ ๊ฐ์„ ์„ค๋“ํ• ๊นŒ?" + +--- + +## When to Use + +- `/appkit.customer`๋กœ ํƒ€๊ฒŸ ๊ณ ๊ฐ์„ ์ •์˜ํ•œ ํ›„ (Step 3 ์™„๋ฃŒ ํ›„) +- ๋žœ๋”ฉ ํŽ˜์ด์ง€๋‚˜ ๋งˆ์ผ€ํŒ… ๋ฉ”์‹œ์ง€๊ฐ€ ํ•„์š”ํ•  ๋•Œ +- ํˆฌ์ž์ž๋‚˜ ํŒ€์—๊ฒŒ ๊ฐ€์น˜ ์ œ์•ˆ์„ ์„ค๋ช…ํ•  ๋•Œ +- MVP ์ถœ์‹œ ์ „ ๋ฉ”์‹œ์ง€ ํ…Œ์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•  ๋•Œ + +--- + +## Usage + +```bash +/appkit.sales +/appkit.sales "time-saving for busy professionals" +/appkit.sales "price-sensitive students" +/appkit.sales "landing: premium positioning" +``` + +--- + +## What I'll Do + +### 1. ์„ธ์ผ์ฆˆ ํ”„๋ ˆ์ž„์›Œํฌ ์„ ํƒ + +**์ƒํ™ฉ๋ณ„ ์ตœ์  ํ”„๋ ˆ์ž„์›Œํฌ**: + +```markdown +## Framework Selection + +### PAS (Problem-Agitate-Solution) +โœ… Best for: ๋ช…ํ™•ํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ +- Problem: ๊ณ ๊ฐ์ด ๊ฒช๋Š” ๋ฌธ์ œ ๊ณต๊ฐ +- Agitate: ๋ฌธ์ œ๋ฅผ ๋” ์‹ฌ๊ฐํ•˜๊ฒŒ ๋А๋ผ๊ฒŒ +- Solution: ์šฐ๋ฆฌ ์„œ๋น„์Šค๊ฐ€ ํ•ด๊ฒฐ์ฑ… + +### AIDA (Attention-Interest-Desire-Action) +โœ… Best for: ์ƒˆ๋กœ์šด ์นดํ…Œ๊ณ ๋ฆฌ ์ฐฝ์ถœ +- Attention: ๋†€๋ผ์šด ํ†ต๊ณ„๋‚˜ ์งˆ๋ฌธ +- Interest: ํฅ๋ฏธ๋กœ์šด ๊ฐ€๋Šฅ์„ฑ ์ œ์‹œ +- Desire: ๊ฐ–๊ณ  ์‹ถ๊ฒŒ ๋งŒ๋“ค๊ธฐ +- Action: ์ง€๊ธˆ ํ–‰๋™ํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ + +### StoryBrand +โœ… Best for: ๋ณต์žกํ•œ ์„œ๋น„์Šค ์„ค๋ช… +- Character: ๊ณ ๊ฐ์ด ์ฃผ์ธ๊ณต +- Problem: ๊ฒช๊ณ  ์žˆ๋Š” ๋ฌธ์ œ +- Guide: ์šฐ๋ฆฌ๊ฐ€ ์•ˆ๋‚ด์ž +- Plan: ๋ช…ํ™•ํ•œ ํ•ด๊ฒฐ ๋‹จ๊ณ„ +- Success: ์„ฑ๊ณต ์Šคํ† ๋ฆฌ +``` + +### 2. ๋žœ๋”ฉ ํŽ˜์ด์ง€ ๊ตฌ์กฐ (PAS ๊ธฐ์ค€) + +```markdown +## Landing Page Structure + +### 1๏ธโƒฃ Hero Section (Hook - 3์ดˆ ์Šน๋ถ€) +--- +[Headline - ํ•ต์‹ฌ ๊ฐ€์น˜] +"ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ, ์ด์ œ 3์ดˆ๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค" + +[Subheadline - ๊ตฌ์ฒด์  ํ˜œํƒ] +"์ „ํ™” ๋Œ€๊ธฐ ์—†์ด, ์‹ค์‹œ๊ฐ„ ์˜ˆ์•ฝ, ์ž๋™ ํ• ์ธ๊นŒ์ง€" + +[CTA Button] +"์ง€๊ธˆ ์‹œ์ž‘ํ•˜๊ธฐ โ†’" + +[Hero Image] +์Šค๋งˆํŠธํฐ์œผ๋กœ ์˜ˆ์•ฝํ•˜๋Š” ๋ชจ์Šต + + +### 2๏ธโƒฃ Problem Section (๊ณต๊ฐ๋Œ€ ํ˜•์„ฑ) +--- +"์ด๋Ÿฐ ๊ฒฝํ—˜, ํ•ด๋ณด์…จ๋‚˜์š”?" + +โŒ ์ „ํ™” ์˜ˆ์•ฝํ•˜๋ ค๋‹ค 15๋ถ„ ๋Œ€๊ธฐ +โŒ ์›ํ•˜๋Š” ์‹œ๊ฐ„๋Œ€๋Š” ํ•ญ์ƒ ๋งŒ์„ +โŒ ๊ฐ€๊ฒฉ ๋น„๊ต๋Š” ๋ถˆ๊ฐ€๋Šฅ +โŒ ์ทจ์†Œํ•˜๋ ค๋ฉด ๋˜ ์ „ํ™” + +"๋งค์ฃผ ํ…Œ๋‹ˆ์Šค ์น˜๊ณ  ์‹ถ์€๋ฐ, +์˜ˆ์•ฝ์ด ๋„ˆ๋ฌด ๋ฒˆ๊ฑฐ๋กœ์›Œ ํฌ๊ธฐํ•˜์‹  ์  ์žˆ์œผ์‹œ์ฃ ?" + + +### 3๏ธโƒฃ Agitation Section (๋ฌธ์ œ ์‹ฌํ™”) +--- +[ํ†ต๊ณ„๋กœ ๋ฌธ์ œ ์‹ฌํ™”] +"์ง์žฅ์ธ 73%๊ฐ€ ์šด๋™ ๋ถ€์กฑ" +"์šด๋™ ํฌ๊ธฐ ์ด์œ  1์œ„: ๋ฒˆ๊ฑฐ๋กœ์šด ์˜ˆ์•ฝ(42%)" + +[๊ฐ์ • ์ž๊ทน] +"์ฃผ๋ง๋งˆ๋‹ค '์ด๋ฒˆ์—” ๊ผญ ์šด๋™ํ•ด์•ผ์ง€' ๋‹ค์งํ•˜์ง€๋งŒ, +๋ณต์žกํ•œ ์˜ˆ์•ฝ ๊ณผ์ •์— ์ง€์ณ ๊ฒฐ๊ตญ ํฌ๊ธฐํ•˜๊ณ  ์žˆ์ง€ ์•Š๋‚˜์š”?" + + +### 4๏ธโƒฃ Solution Section (ํ•ด๊ฒฐ์ฑ… ์ œ์‹œ) +--- +"3์ดˆ ์˜ˆ์•ฝ ์‹œ์Šคํ…œ" + +[Step 1] ๐Ÿ“ ์œ„์น˜ ์„ ํƒ +๊ฐ€๊นŒ์šด ์ฝ”ํŠธ ์ž๋™ ์ถ”์ฒœ + +[Step 2] ๐Ÿ“… ์‹œ๊ฐ„ ์„ ํƒ +์‹ค์‹œ๊ฐ„ ์˜ˆ์•ฝ ๊ฐ€๋Šฅ ์‹œ๊ฐ„ ํ™•์ธ + +[Step 3] ๐Ÿ’ณ ๊ฒฐ์ œ ์™„๋ฃŒ +์›ํ„ฐ์น˜ ๊ฒฐ์ œ, ์ž๋™ ํ• ์ธ ์ ์šฉ + +"๋ณต์žกํ•œ ๊ณผ์ •์€ ์šฐ๋ฆฌ๊ฐ€ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค" + + +### 5๏ธโƒฃ Benefits Section (๊ตฌ์ฒด์  ํ˜œํƒ) +--- +[์‹œ๊ฐ„ ์ ˆ์•ฝ] +โฐ ํ‰๊ท  15๋ถ„ โ†’ 3์ดˆ +"๋งค์ฃผ 1์‹œ๊ฐ„ ์ ˆ์•ฝ" + +[๋น„์šฉ ์ ˆ๊ฐ] +๐Ÿ’ฐ ์ž๋™ ํ• ์ธ ์ ์šฉ +"ํ‰๊ท  30% ์ €๋ ด" + +[ํŽธ์˜์„ฑ] +๐Ÿ“ฑ ์–ธ์ œ ์–ด๋””์„œ๋‚˜ +"์ง€ํ•˜์ฒ ์—์„œ๋„ ์˜ˆ์•ฝ ๊ฐ€๋Šฅ" + + +### 6๏ธโƒฃ Social Proof Section (์‹ ๋ขฐ ๊ตฌ์ถ•) +--- +[์ˆซ์ž๋กœ ์ฆ๋ช…] +"5,000๋ช…์ด ๋งค์ฃผ ์‚ฌ์šฉ ์ค‘" +"์›” 10,000๊ฑด ์˜ˆ์•ฝ ์ฒ˜๋ฆฌ" +"ํ‰๊ท  ํ‰์  4.8/5.0" + +[๊ณ ๊ฐ ํ›„๊ธฐ] +"๊น€OO (37์„ธ, ์ง์žฅ์ธ)" +"ํ‡ด๊ทผ๊ธธ ์ง€ํ•˜์ฒ ์—์„œ ์˜ˆ์•ฝ ์™„๋ฃŒ! +์ฃผ๋ง ์šด๋™์ด ๊ทœ์น™์ ์œผ๋กœ ๋ฐ”๋€Œ์—ˆ์–ด์š”" + +"๋ฐ•OO (29์„ธ, ํ”„๋ฆฌ๋žœ์„œ)" +"ํ‰์ผ ๋‚ฎ ํ• ์ธ์œผ๋กœ 30% ์ ˆ์•ฝ! +์‹œ๊ฐ„๋„ ์ž์œ ๋กญ๊ณ  ๊ฐ€๊ฒฉ๋„ ์ €๋ ดํ•ด์š”" + + +### 7๏ธโƒฃ CTA Section (ํ–‰๋™ ์œ ๋„) +--- +[๊ธด๊ธ‰์„ฑ ์ƒ์„ฑ] +"๐ŸŽ ์ง€๊ธˆ ๊ฐ€์ž…ํ•˜๋ฉด ์ฒซ ์˜ˆ์•ฝ 30% ํ• ์ธ" +"โฐ ์ด๋ฒˆ ์ฃผ๋ง ์˜ˆ์•ฝ ๋งˆ๊ฐ ์ž„๋ฐ•" + +[3๋‹จ๊ณ„ CTA] +1. "๋ฌด๋ฃŒ๋กœ ์‹œ์ž‘ํ•˜๊ธฐ" (๋ถ€๋‹ด ์ œ๊ฑฐ) +2. "1๋ถ„ ๋งŒ์— ๊ฐ€์ž…" (๊ฐ„ํŽธํ•จ ๊ฐ•์กฐ) +3. "์ฒซ ์˜ˆ์•ฝ 30% ํ• ์ธ" (์ฆ‰๊ฐ ํ˜œํƒ) + +[๋ณด์ฆ] +"์˜ˆ์•ฝ ์ˆ˜์ˆ˜๋ฃŒ ์—†์Œ" +"์–ธ์ œ๋“  ์ทจ์†Œ ๊ฐ€๋Šฅ" +``` + +### 3. ๊ฐ€์น˜ ์ œ์•ˆ ์บ”๋ฒ„์Šค (Value Proposition Canvas) + +```markdown +## Value Proposition + +### Customer Jobs (๊ณ ๊ฐ์ด ํ•ด๊ฒฐํ•˜๋ ค๋Š” ์ผ) +- ์ฃผ๋ง ์šด๋™ ๊ณ„ํš +- ๊ฑด๊ฐ• ๊ด€๋ฆฌ +- ์ŠคํŠธ๋ ˆ์Šค ํ•ด์†Œ +- ์‚ฌํšŒ์  ๊ต๋ฅ˜ + +### Pain Relievers (๊ณ ํ†ต ํ•ด๊ฒฐ) +- ์ „ํ™” ๋Œ€๊ธฐ โ†’ ์ฆ‰์‹œ ์˜ˆ์•ฝ +- ๋ถˆํ™•์‹ค์„ฑ โ†’ ์‹ค์‹œ๊ฐ„ ํ™•์ธ +- ๋น„์‹ผ ๊ฐ€๊ฒฉ โ†’ ์ž๋™ ํ• ์ธ +- ๋ณต์žกํ•œ ๊ณผ์ • โ†’ 3๋‹จ๊ณ„ ๊ฐ„์†Œํ™” + +### Gain Creators (์ด์ต ์ฐฝ์ถœ) +- ์‹œ๊ฐ„ ์ ˆ์•ฝ (์ฃผ๋‹น 1์‹œ๊ฐ„) +- ๋น„์šฉ ์ ˆ๊ฐ (30% ํ• ์ธ) +- ๊ทœ์น™์  ์šด๋™ ์Šต๊ด€ +- ์šด๋™ ไปฒ้–“ ์ฐพ๊ธฐ +``` + +### 4. ๋ฉ”์‹œ์ง€ A/B ํ…Œ์ŠคํŠธ ์ œ์•ˆ + +```markdown +## A/B Testing Suggestions + +### Headline Variations +A: "ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ, ์ด์ œ 3์ดˆ๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค" +B: "๋งค์ฃผ ํ…Œ๋‹ˆ์Šค ์น˜๊ณ  ์‹ถ๋‹ค๋ฉด? ์•ฑ์œผ๋กœ 3์ดˆ ์˜ˆ์•ฝ" +C: "์ „ํ™” ๋Œ€๊ธฐ๋Š” ๊ทธ๋งŒ, ์‹ค์‹œ๊ฐ„ ์ฝ”ํŠธ ์˜ˆ์•ฝ" + +### CTA Variations +A: "์ง€๊ธˆ ์‹œ์ž‘ํ•˜๊ธฐ" +B: "๋ฌด๋ฃŒ๋กœ ์˜ˆ์•ฝํ•˜๊ธฐ" +C: "30% ํ• ์ธ๋ฐ›๊ธฐ" + +### Value Prop Variations +A: "์‹œ๊ฐ„ ์ ˆ์•ฝ" ์ค‘์‹ฌ +B: "๋น„์šฉ ์ ˆ๊ฐ" ์ค‘์‹ฌ +C: "ํŽธ์˜์„ฑ" ์ค‘์‹ฌ +``` + +### 5. ์ฑ„๋„๋ณ„ ๋ฉ”์‹œ์ง€ ์ตœ์ ํ™” + +```markdown +## Channel-Specific Messages + +### Instagram Ad (๋น„์ฃผ์–ผ ์ค‘์‹ฌ) +[Image: ํ…Œ๋‹ˆ์Šค ์น˜๋Š” ํ–‰๋ณตํ•œ ๋ชจ์Šต] +"์ฃผ๋ง ํ…Œ๋‹ˆ์Šค, 3์ดˆ ์˜ˆ์•ฝ โœจ" +#ํ…Œ๋‹ˆ์Šค #์ฃผ๋ง์šด๋™ #์ฝ”ํŠธ์˜ˆ์•ฝ + +### Google Ads (๊ฒ€์ƒ‰ ์˜๋„ ๋ช…ํ™•) +"ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ | ์‹ค์‹œ๊ฐ„ ์˜ˆ์•ฝ | 30% ํ• ์ธ" +"์ „ํ™” ๋Œ€๊ธฐ ์—†์ด ๋ฐ”๋กœ ์˜ˆ์•ฝ. ์ง€๊ธˆ ์‹œ์ž‘ํ•˜๊ธฐ" + +### Email (์Šคํ† ๋ฆฌํ…”๋ง) +Subject: "๊น€๋Œ€๋ฆฌ๋‹˜, ์ด๋ฒˆ ์ฃผ๋ง ํ…Œ๋‹ˆ์Šค ์–ด๋– ์„ธ์š”?" +"๋งค๋ฒˆ ์˜ˆ์•ฝ ๋•Œ๋ฌธ์— ํฌ๊ธฐํ•˜์…จ๋‹ค๋ฉด..." +[Full story + CTA] + +### ์นดํ†ก ์ฑ„๋„ (์นœ๊ทผํ•œ ํ†ค) +"ํ…Œ๋‹ˆ์Šค ์˜ˆ์•ฝ ๋•Œ๋ฌธ์— ์ŠคํŠธ๋ ˆ์Šค ๋ฐ›์œผ์…จ์ฃ ? ๐Ÿ˜… +์ด์ œ ์นดํ†กํ•˜๋“ฏ ์‰ฝ๊ฒŒ ์˜ˆ์•ฝํ•˜์„ธ์š”!" +``` + +--- + +## Output Files + +### ์ƒ์„ฑ๋  ํŒŒ์ผ๋“ค: + +1. **`docs/appkit/sales-landing.md`** + - ์ „์ฒด ๋žœ๋”ฉ ํŽ˜์ด์ง€ ๊ตฌ์กฐ + - ์„น์…˜๋ณ„ ๋ฉ”์‹œ์ง€ + - CTA ์ „๋žต + +2. **`docs/appkit/value-proposition.md`** + - ํ•ต์‹ฌ ๊ฐ€์น˜ ์ œ์•ˆ + - Pain-Gain ๋งคํŠธ๋ฆญ์Šค + - ์ฐจ๋ณ„ํ™” ํฌ์ธํŠธ + +--- + +## Integration Points + +### ๋‹ค๋ฅธ ๋ช…๋ น์–ด์™€์˜ ์—ฐ๊ณ„: + +- **From `/appkit.customer`**: ํŽ˜๋ฅด์†Œ๋‚˜๋ณ„ Pain Points +- **From `/appkit.spec`**: ํ•ต์‹ฌ ๊ธฐ๋Šฅ๊ณผ ํ˜œํƒ +- **To `/appkit.mvp`**: ๊ฒ€์ฆํ•  ํ•ต์‹ฌ ๊ฐ€์น˜ +- **To `/appkit.design`**: ์‚ฌ์šฉ์ž ์˜จ๋ณด๋”ฉ ํ”Œ๋กœ์šฐ + +--- + +## Examples + +### Example 1: B2C ์„œ๋น„์Šค +```bash +$ /appkit.sales + +๐Ÿ“ข Sales Landing Generated + +Framework: PAS (Problem-Agitate-Solution) + +Hero: "3์ดˆ ์˜ˆ์•ฝ ํ˜๋ช…" +Problem: ๋ณต์žกํ•œ ์˜ˆ์•ฝ ๊ณผ์ • +Agitate: 73% ์šด๋™ ํฌ๊ธฐ +Solution: ์›ํ„ฐ์น˜ ์‹œ์Šคํ…œ +Proof: 5,000๋ช… ์‚ฌ์šฉ ์ค‘ +CTA: "์ง€๊ธˆ 30% ํ• ์ธ" + +โœ… Generated sales-landing.md +โœ… Generated value-proposition.md +``` + +### Example 2: ํŠน์ • ํŽ˜๋ฅด์†Œ๋‚˜ ํƒ€๊ฒŸ +```bash +$ /appkit.sales "price-sensitive students" + +๐Ÿ“ข Student-Focused Message + +Hero: "ํ•™์ƒ 90% ํ• ์ธ" +Problem: ๋น„์‹ผ ์ฝ”ํŠธ ๊ฐ€๊ฒฉ +Solution: ๊ทธ๋ฃน ์˜ˆ์•ฝ ํ• ์ธ +Proof: "์„œ์šธ๋Œ€ ํ…Œ๋‹ˆ์Šค ๋™์•„๋ฆฌ ๊ณต์‹ ์•ฑ" +CTA: "ํ•™์ƒ์ฆ ์ธ์ฆํ•˜๊ณ  90% ํ• ์ธ" + +โœ… Updated sales-landing.md +``` + +--- + +## Key Principles + +### ์„ธ์ผ์ฆˆ ๋ฉ”์‹œ์ง€ ์›์น™: + +1. **Features โŒ Benefits โœ…**: "์‹ค์‹œ๊ฐ„ ์˜ˆ์•ฝ"์ด ์•„๋‹Œ "๋Œ€๊ธฐ ์‹œ๊ฐ„ ์ œ๋กœ" +2. **You, not We**: "๋‹น์‹ ์€" ์ค‘์‹ฌ, "์šฐ๋ฆฌ๋Š”" ์ตœ์†Œํ™” +3. **Specific Numbers**: "๋งŽ์ด"๊ฐ€ ์•„๋‹Œ "73%" +4. **Emotional + Rational**: ๊ฐ์ • ์ž๊ทน + ๋…ผ๋ฆฌ์  ๊ทผ๊ฑฐ +5. **Clear Next Step**: ๋ชจํ˜ธํ•œ CTA๋Š” ์ „ํ™˜์œจ ํ‚ฌ๋Ÿฌ + +--- + +## Tips + +### ๊ณ ์ „ํ™˜์œจ ๋žœ๋”ฉ ํŽ˜์ด์ง€: + +1. **Above the Fold**: ์Šคํฌ๋กค ์—†์ด ํ•ต์‹ฌ ๊ฐ€์น˜ ์ „๋‹ฌ +2. **One Message**: ํ•œ ํŽ˜์ด์ง€, ํ•˜๋‚˜์˜ ๋ฉ”์‹œ์ง€ +3. **Social Proof**: ์ˆซ์ž > ๋กœ๊ณ  > ํ›„๊ธฐ ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ +4. **Urgency**: "์ง€๊ธˆ" ํ–‰๋™ํ•ด์•ผ ํ•  ์ด์œ  +5. **Risk Reversal**: ๋ฌด๋ฃŒ ์ฒดํ—˜, ํ™˜๋ถˆ ๋ณด์žฅ + +### ์นดํ”ผ๋ผ์ดํŒ… ๊ณต์‹: + +- **Headline**: ํ˜œํƒ + ์ˆซ์ž + ์‹œ๊ฐ„ +- **CTA**: ๋™์‚ฌ + ํ˜œํƒ + ๊ธด๊ธ‰์„ฑ +- **Testimonial**: ์ด๋ฆ„ + ๋‚˜์ด + ์ง์—… + ๊ตฌ์ฒด์  ๊ฒฐ๊ณผ + +--- + +## Next Steps + +### ์ด ๋ช…๋ น์–ด ์‹คํ–‰ ํ›„: + +**๐Ÿ“ ๋‹ค์Œ ๋‹จ๊ณ„: Step 5 - `/appkit.mvp`** (MVP ๋ฒ”์œ„ ์ •์˜) +- ์„ธ์ผ์ฆˆ ๋ฉ”์‹œ์ง€์—์„œ ์•ฝ์†ํ•œ ํ•ต์‹ฌ ๊ฐ€์น˜๋งŒ ๊ตฌํ˜„ +- ์ตœ์†Œํ•œ์˜ ๊ธฐ๋Šฅ์œผ๋กœ ์‹œ์žฅ ๊ฒ€์ฆ + +--- + +## Version + +- **Version**: 1.0.0 +- **Created**: 2025-11-19 +- **Philosophy**: "Sell the hole, not the drill" \ No newline at end of file diff --git a/.claude/commands/appkit.spec.md b/.claude/commands/appkit.spec.md new file mode 100644 index 0000000..71e1c94 --- /dev/null +++ b/.claude/commands/appkit.spec.md @@ -0,0 +1,430 @@ +--- +description: ๊ธฐ๋Šฅ ๊ตฌ์ฒดํ™” - ๊ฐ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ์ž ๊ฐ€์น˜ ๊ด€์ ์—์„œ ๊ตฌ์ฒดํ™” +--- + +## User Input + +```text +$ARGUMENTS +``` + +User input **must** be considered. + +## Overview + +**This is Step 2 of the logical thinking 7-step workflow**: + +``` +๋…ผ๋ฆฌ์  ์‚ฌ๊ณ  7๋‹จ๊ณ„: +1. /appkit.new โ†’ ์•„์ด๋””์–ด ์Šค์ผ€์น˜ (์–ด๋–ค ์„œ๋น„์Šค์ธ์ง€?) +2. /appkit.spec โ†’ ๊ธฐ๋Šฅ ๊ตฌ์ฒดํ™” (๋ญ๊ฐ€ ํ•„์š”ํ• ๊นŒ? ๋ˆ„๊ฐ€ ์“ธ๊นŒ?) โ† YOU ARE HERE +3. /appkit.customer โ†’ ๊ณ ๊ฐ ์Šคํ† ๋ฆฌ (๊ณ ๊ฐ์˜ ํ•˜๋ฃจ, ๊ณ ๋ฏผ, ํ•ด๊ฒฐ) +4. /appkit.sales โ†’ ์„ธ์ผ์ฆˆ ๋žœ๋”ฉ ๊ตฌ์„ฑ (์–ด๋–ป๊ฒŒ ์„ค๋“ํ• ๊นŒ?) +5. /appkit.mvp โ†’ MVP ๋ฒ”์œ„ ์ •ํ•˜๊ธฐ (์ตœ์†Œํ•œ์œผ๋กœ ๊ฒ€์ฆํ•˜๋ ค๋ฉด?) +6. /appkit.merge โ†’ ๊ธฐํš ์ •๋ˆ (ํฉ์–ด์ง„ ๊ธฐํš ํ†ตํ•ฉ) +7. /appkit.design โ†’ ๊ฐœ๋ฐœ ์ค€๋น„ (API, ERD, ๊ธฐ์ˆ  ์ŠคํŽ™) +``` + +User inputs in format: `/appkit.spec ""` + +Examples: +- `/appkit.spec 003-booking "search and book courts from main screen"` +- `/appkit.spec 003-booking "time deal 30% discount, within 2 days of booking date"` +- `/appkit.spec 004-promotion "no duplicate coupon use, max 40% discount"` + +**Core Concepts**: +- **Incremental detailing**: Don't write everything at once +- **Preserve existing content**: Previous content + new content added +- **Natural language input**: User inputs comfortably in natural language + +**Note**: As you detail multiple specs, concepts may overlap or conflict. This is expected! The `/appkit.merge` command (Step 3) will consolidate these later. + +## Execution Flow + +### 1. Input Parsing + +**Format**: `/appkit.spec ""` + +**Parsing**: +``` +Example: /appkit.spec 003-booking "searchable from main screen" + +Extract: +- spec-id: 003-booking +- natural language description: "searchable from main screen" +``` + +**Validation**: +- Error if spec-id is empty +- Error if natural language description is empty + +### 2. Script Execution + +**Script**: `.app/scripts/get-spec-path.sh --json --spec-id "003-booking"` + +**Example Output**: +```json +{ + "SPEC_FILE": "docs/appkit/specs/003-booking/spec.md", + "SPEC_DIR": "docs/appkit/specs/003-booking" +} +``` + +**Error Handling**: +- If spec directory doesn't exist: "Spec 003-booking does not exist. Run /appkit.new first." + +### 3. Load Existing Spec + +**Read File**: `docs/appkit/specs/003-booking/spec.md` + +**Check Status**: +1. **Empty template**: + - Not yet detailed with `/appkit.spec` + - All sections have `[This section will be filled...]` + +2. **Partially written**: + - Some sections filled + - Some sections still empty + +3. **Fully written**: + - Most sections filled + - Can add/modify + +### 4. Natural Language Analysis with User Value Focus + +**Input Analysis**: "search and book available courts from main screen at once" + +**๊ณ ๊ฐ ๊ฐ€์น˜ ๋ถ„์„**: +``` +ํ•ต์‹ฌ ์งˆ๋ฌธ: +- ๋ˆ„๊ฐ€? โ†’ ํ‡ด๊ทผ๊ธธ ์ง์žฅ์ธ, ์‹œ๊ฐ„์ด ์—†๋Š” ์‚ฌ๋žŒ +- ์–ธ์ œ? โ†’ ์ด๋™ ์ค‘, ์งฌ๋‚  ๋•Œ +- ์™œ? โ†’ ๋น ๋ฅด๊ฒŒ ์ฃผ๋ง ์šด๋™ ๊ณ„ํš ์„ธ์šฐ๋ ค๊ณ  +- ์–ด๋–ป๊ฒŒ? โ†’ ํ•œ ํ™”๋ฉด์—์„œ ๋ชจ๋“  ๊ฒƒ ํ•ด๊ฒฐ +- ๊ฐ€์น˜? โ†’ ์‹œ๊ฐ„ ์ ˆ์•ฝ (15๋ถ„ โ†’ 3์ดˆ) + +Map to sections: +- User Value: 3์ดˆ ๋งŒ์— ์˜ˆ์•ฝ ์™„๋ฃŒ +- User Journey: + - ์•ฑ ์—ด๊ธฐ โ†’ ๋‚ ์งœ/์‹œ๊ฐ„ ์„ ํƒ โ†’ ์˜ˆ์•ฝ โ†’ ์™„๋ฃŒ + - ์ด ์†Œ์š” ์‹œ๊ฐ„: 3์ดˆ +- Pain Points Solved: + - ์ „ํ™” ๋Œ€๊ธฐ ์—†์Œ + - ์—ฌ๋Ÿฌ ์ฝ”ํŠธ ๋™์‹œ ํ™•์ธ + - ์ฆ‰์‹œ ํ™•์ • + +Business Rules (๊ณ ๊ฐ ๊ด€์ ): + - ์‹ค์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ (๋†“์น˜์ง€ ์•Š๊ฒŒ) + - ๊ฐ€๊ฒฉ ํˆฌ๋ช… ๊ณต๊ฐœ (๋น„๊ต ๊ฐ€๋Šฅ) + - ์ฆ‰์‹œ ํ™•์ • ์•Œ๋ฆผ (์•ˆ์‹ฌ) +``` + +**Input Analysis 2**: "time deal within 2 days of booking date, 30% discount" + +**๊ณ ๊ฐ ๊ฐ€์น˜ ๋ถ„์„**: +``` +ํ•ต์‹ฌ ์งˆ๋ฌธ: +- ๋ˆ„๊ฐ€? โ†’ ์‹œ๊ฐ„ ์œ ์—ฐํ•œ ํ”„๋ฆฌ๋žœ์„œ, ํ•™์ƒ +- ์–ธ์ œ? โ†’ ๊ฐ‘์ž๊ธฐ ์‹œ๊ฐ„ ์ƒ๊ฒผ์„ ๋•Œ +- ์™œ? โ†’ ์ €๋ ดํ•˜๊ฒŒ ์šด๋™ํ•˜๊ณ  ์‹ถ์–ด์„œ +- ์–ด๋–ป๊ฒŒ? โ†’ ์ž๋™์œผ๋กœ ํ• ์ธ ์ ์šฉ +- ๊ฐ€์น˜? โ†’ 30% ๋น„์šฉ ์ ˆ๊ฐ + +Map to sections: +- User Value: ์ •๊ฐ€์˜ 70%๋กœ ์šด๋™ +- User Scenario: + - "๋‚ด์ผ ์‹œ๊ฐ„ ๋น„์—ˆ๋„ค?" โ†’ ์•ฑ ํ™•์ธ โ†’ "30% ํ• ์ธ!" โ†’ ์ฆ‰์‹œ ์˜ˆ์•ฝ +- Emotional Journey: + - ๋ฐœ๊ฒฌ (๐Ÿ˜ฎ) โ†’ ๊ธฐ์จ (๐Ÿ˜Š) โ†’ ๋งŒ์กฑ (๐Ÿ˜) + +Business Rules (๊ณ ๊ฐ ์ด์ต): + - ์ž๋™ ์ ์šฉ (๋”ฐ๋กœ ์ฟ ํฐ ์ž…๋ ฅ ์•ˆ ํ•ด๋„ ๋จ) + - ๋ช…ํ™•ํ•œ ์กฐ๊ฑด ํ‘œ์‹œ (์–ธ์ œ ํ• ์ธ๋˜๋Š”์ง€ ํˆฌ๋ช…) + - ๋‹ค๋ฅธ ํ• ์ธ๊ณผ ๋น„๊ต (๊ฐ€์žฅ ์ด๋“์ธ ๊ฒƒ ์ž๋™ ์„ ํƒ) +``` + +### 5. Spec Update (Incremental) + +**Principles**: +1. **Preserve existing content**: Never delete +2. **Add new content**: Add natural language analysis results to relevant sections +3. **Prevent duplicates**: Don't add already existing content +4. **Maintain consistency**: Keep existing format and tone + +**Update Example**: + +**Before** (empty template): +```markdown +## User Journey & Screen Flow +[This section will be filled by /appkit.spec command] + +## Business Rules +[This section will be filled by /appkit.spec command] +``` + +**After** (first `/appkit.spec` execution): +```markdown +## User Journey & Screen Flow + +### 1. Main Screen +- **UI Elements**: Search bar (date, time), recommended court list +- **CTA**: "Search" button +- **Next**: Search results screen + +### 2. Search Results Screen +- **UI Elements**: Filters (price, distance, rating), court cards (image, name, price, distance) +- **CTA**: Click court card +- **Next**: Court detail screen + +### 3. Court Detail Screen +- **UI Elements**: Court info, reviews, available time slots +- **CTA**: "Book" button +- **Next**: Payment screen + +## Business Rules +### Search Criteria +- Date: After today +- Time slot: Selectable +- Results: Show only available courts +``` + +**After** (second `/appkit.spec` execution - "sort by price and distance"): +```markdown +## User Journey & Screen Flow + +### 1. Main Screen +- **UI Elements**: Search bar (date, time), recommended court list +- **CTA**: "Search" button +- **Next**: Search results screen + +### 2. Search Results Screen +- **UI Elements**: Filters (price, distance, rating), sort options (price/distance), court cards # Updated +- **CTA**: Click court card +- **Next**: Court detail screen + +### 3. Court Detail Screen +- **UI Elements**: Court info, reviews, available time slots +- **CTA**: "Book" button +- **Next**: Payment screen + +## Business Rules +### Search Criteria +- Date: After today +- Time slot: Selectable +- Results: Show only available courts + +### Sort Options # Added +- By price: Lowest first +- By distance: Closest first +- Default: By price +``` + +**After** (third `/appkit.spec` execution - "time deal 30% discount"): +```markdown +## Pricing & Promotion Logic +### Time Deal # New section added +- Condition: Within 2 days of booking date +- Discount rate: 30% +- Application: Automatic +``` + +### 6. Auto-Completeness Check (๊ณ ๊ฐ ๊ฐ€์น˜ ์ค‘์‹ฌ) + +After updating spec, automatically check customer value completeness: + +**Check Sections**: +- โœ… User Value (๊ณ ๊ฐ์ด ์–ป๋Š” ๊ฐ€์น˜) +- โœ… Target User (๋ˆ„๊ฐ€ ์“ธ๊นŒ?) +- โœ… User Scenario (์–ธ์ œ/์–ด๋–ป๊ฒŒ ์“ธ๊นŒ?) +- โณ Pain Points Solved (ํ•ด๊ฒฐ๋˜๋Š” ๋ฌธ์ œ) +- โŒ Success Metrics (์–ด๋–ป๊ฒŒ ์„ฑ๊ณต ์ธก์ •?) +- โš ๏ธ Edge Cases (์˜ˆ์™ธ ์ƒํ™ฉ) + +**Report to User**: +```markdown +โœ… Spec 002-booking ๊ณ ๊ฐ ๊ฐ€์น˜ ์—…๋ฐ์ดํŠธ! + +๐Ÿ’ก ํ•ต์‹ฌ ๊ฐ€์น˜ ๋ถ„์„: +- ๋ˆ„๊ฐ€: 30๋Œ€ ์ง์žฅ์ธ (ํ‡ด๊ทผ๊ธธ) +- ์–ธ์ œ: ์ด๋™ ์ค‘ ์งฌ๋‚  ๋•Œ +- ์™œ: ์ฃผ๋ง ์šด๋™ ์˜ˆ์•ฝ +- ๊ฐ€์น˜: 15๋ถ„ โ†’ 3์ดˆ ์‹œ๊ฐ„ ์ ˆ์•ฝ + +๐Ÿ“ ์—…๋ฐ์ดํŠธ๋œ ๋‚ด์šฉ: +- User Value: 3์ดˆ ์˜ˆ์•ฝ์œผ๋กœ ์‹œ๊ฐ„ ์ ˆ์•ฝ +- User Scenario: ํ‡ด๊ทผ๊ธธ ์ง€ํ•˜์ฒ  ์˜ˆ์•ฝ ์‹œ๋‚˜๋ฆฌ์˜ค +- Pain Points: ์ „ํ™” ๋Œ€๊ธฐ, ๋ถˆํ™•์‹ค์„ฑ ํ•ด๊ฒฐ + +๐Ÿ“‹ ์™„์„ฑ๋„ ์ฒดํฌ: +- โœ… User Value (๋ช…ํ™•) +- โœ… Target User (๊ตฌ์ฒด์ ) +- โœ… User Scenario (์ƒ์ƒํ•จ) +- โณ Pain Points (๋” ์ถ”๊ฐ€ ๊ฐ€๋Šฅ) + ๐Ÿ’ก ์ œ์•ˆ: "์ฃผ๋ง ๋งŒ์„์œผ๋กœ ์šด๋™ ๋ชปํ•จ" ์ถ”๊ฐ€ +- โŒ Success Metrics (๋ฏธ์ž‘์„ฑ) + ๐Ÿ’ก ์ œ์•ˆ: "ํ‰๊ท  ์˜ˆ์•ฝ ์‹œ๊ฐ„ 3์ดˆ ์ดํ•˜" +- โš ๏ธ Edge Cases (๋ฏธํก) + ๐Ÿ’ก ์ œ์•ˆ: "๋™์‹œ ์˜ˆ์•ฝ ์ถฉ๋Œ ์ฒ˜๋ฆฌ" + +๐Ÿ’ก ๋‹ค์Œ ๋‹จ๊ณ„: +๋” ๋งŽ์€ ์‚ฌ์šฉ์ž ์‹œ๋‚˜๋ฆฌ์˜ค ์ถ”๊ฐ€: + /appkit.spec 002-booking "ํ”„๋ฆฌ๋žœ์„œ๊ฐ€ ํ‰์ผ ๋‚ฎ ํ• ์ธ๋ฐ›๊ธฐ" + /appkit.spec 002-booking "๋Œ€ํ•™์ƒ ๊ทธ๋ฃน ์˜ˆ์•ฝ์œผ๋กœ ์ ˆ์•ฝ" + +๐Ÿ“„ ์ „์ฒด spec ๋ณด๊ธฐ: docs/appkit/specs/002-booking/spec.md + +๐Ÿ“ ๋‹ค์Œ ๋‹จ๊ณ„: Step 4-5 - /appkit.customer (ํƒ€๊ฒŸ ๊ณ ๊ฐ ์ •์˜ & ์Šคํ† ๋ฆฌํ…”๋ง) +``` + +### 7. Completeness Check Criteria + +**Section Status**: +- โœ… **Well-written**: Section has concrete content, no ambiguity +- โณ **Partially written**: Section exists but lacks details +- โš ๏ธ **Vague**: Section has content but vague or missing key parts +- โŒ **Not written yet**: Section is empty or only has placeholder + +**Required Sections** (at minimum): +1. User Journey & Screen Flow (with screen details) +2. Business Rules +3. Dependencies + +**Recommended Sections** (depending on spec type): +- Pricing & Promotion Logic (if pricing/discounts involved) +- Payment Flow (if payments involved) +- Cancellation & Refund (if cancellations possible) +- Edge Cases (always recommended) + +## Section Mapping Guide (๊ณ ๊ฐ ๊ฐ€์น˜ ์ค‘์‹ฌ) + +Natural language input โ†’ Customer value section mapping: + +### User Value Related +**Keywords**: "์ ˆ์•ฝ", "๋น ๋ฅธ", "ํŽธ๋ฆฌํ•œ", "์‰ฌ์šด", "์ž๋™", "ํ•œ๋ฒˆ์—" +**Examples**: +- "3์ดˆ ๋งŒ์— ์˜ˆ์•ฝ" โ†’ User Value: ์‹œ๊ฐ„ ์ ˆ์•ฝ +- "์ž๋™ ํ• ์ธ ์ ์šฉ" โ†’ User Value: ๋น„์šฉ ์ ˆ๊ฐ +- "์›ํ„ฐ์น˜ ๊ฒฐ์ œ" โ†’ User Value: ํŽธ์˜์„ฑ + +### Target User Related +**Keywords**: "์ง์žฅ์ธ", "ํ•™์ƒ", "ํ”„๋ฆฌ๋žœ์„œ", "์ฃผ๋ถ€", "์‹œ๋‹ˆ์–ด" +**Examples**: +- "๋ฐ”์œ ์ง์žฅ์ธ์„ ์œ„ํ•œ" โ†’ Target User: 30-40๋Œ€ ์ง์žฅ์ธ +- "ํ•™์ƒ ํ• ์ธ" โ†’ Target User: ๋Œ€ํ•™์ƒ + +### User Scenario Related +**Keywords**: "ํ‡ด๊ทผ๊ธธ", "์ ์‹ฌ์‹œ๊ฐ„", "์ฃผ๋ง", "๊ฐ‘์ž๊ธฐ", "๊ธ‰ํ•˜๊ฒŒ" +**Examples**: +- "ํ‡ด๊ทผ๊ธธ ์ง€ํ•˜์ฒ ์—์„œ" โ†’ User Scenario: ์ด๋™ ์ค‘ ์˜ˆ์•ฝ +- "์ฃผ๋ง ์•„์นจ ๊ธ‰ํ•˜๊ฒŒ" โ†’ User Scenario: ๋‹น์ผ ์˜ˆ์•ฝ + +### Payment Flow Related +**Keywords**: "payment", "fee", "payment method", "card", "cash", "bank transfer" +**Examples**: +- "online payment 5% fee" โ†’ Payment Flow +- "cash payment no fee" โ†’ Payment Flow + +### Cancellation & Refund Related +**Keywords**: "cancel", "refund", "change", "modify" +**Examples**: +- "100% refund 24h before" โ†’ Cancellation & Refund +- "1 booking change allowed" โ†’ Cancellation & Refund + +### Edge Cases Related +**Keywords**: "fail", "error", "concurrent", "duplicate", "timeout", "when empty", "exceed" +**Examples**: +- "first-come-first-served for concurrent bookings" โ†’ Edge Cases +- "rollback booking on payment failure" โ†’ Edge Cases + +### Dependencies Related +**Keywords**: "need", "depend", "integrate", "reference" +**Inference**: When using data or functionality from other specs + +## Important Notes + +### ๐Ÿ”ด Mandatory Requirements + +1. **Incremental update**: + - Never delete existing content + - Only add new content + - Prevent duplicates + +2. **Natural language analysis**: + - Carefully analyze user input + - Map to appropriate sections + - If inference is ambiguous, add to most relevant section + +3. **Maintain consistency**: + - Keep existing format and tone + - Consistent markdown style + - Unified terminology + +4. **Auto-completeness check**: + - Check completeness after every update + - Provide next step suggestions + - Point out vague or missing parts + +### ๐ŸŸก Analysis Guidelines + +1. **Multiple section updates**: + - Single natural language input can affect multiple sections + - Update all relevant sections + +2. **Inference and expansion**: + - Don't just add explicit content + - Include reasonable inferences + - Example: "search" โ†’ search criteria, result display, empty result handling + +3. **Cross-reference**: + - Specify in Dependencies if related to other specs + - Mention policy references if related to policies + +### ๐ŸŸข Screen Flow Details + +When updating User Journey & Screen Flow, include: + +**For each screen**: +1. **Screen name**: Clear, descriptive name +2. **UI Elements**: Key visual elements users see +3. **CTA (Call-to-Action)**: Main buttons or actions +4. **Next**: Which screen comes next + +**Example**: +```markdown +### 2. Search Results Screen +- **UI Elements**: + - Filter bar (price range, distance, rating) + - Sort dropdown (price/distance/rating) + - Court cards with: thumbnail, name, price, distance, rating + - "No results" message (when empty) +- **CTA**: + - Click court card โ†’ Court detail + - Adjust filters โ†’ Refresh results +- **Next**: Court detail screen or refined results +``` + +## Example Flow + +``` +# First execution +User: /appkit.spec 003-booking "search courts from main screen" +Claude: โœ… User Journey & Screen Flow, Business Rules updated + ๐Ÿ“‹ Payment Flow, Cancellation missing + ๐Ÿ’ก Next: Add payment policy + +# Second execution +User: /appkit.spec 003-booking "sort by price and distance" +Claude: โœ… User Journey, Business Rules updated (preserved + added) + ๐Ÿ“‹ Payment Flow, Cancellation still missing + +# Third execution +User: /appkit.spec 003-booking "time deal 30% discount" +Claude: โœ… Pricing & Promotion Logic added (new section) + ๐Ÿ“‹ Payment Flow, Cancellation still missing + +# Fourth execution +User: /appkit.spec 003-booking "online payment 5% fee" +Claude: โœ… Payment Flow added (new section) + ๐Ÿ“‹ Only Cancellation missing now + ๐Ÿ’ก Almost complete! Just add cancellation policy +``` diff --git a/.claude/commands/docs.md b/.claude/commands/docs.md new file mode 100644 index 0000000..01cf65b --- /dev/null +++ b/.claude/commands/docs.md @@ -0,0 +1,224 @@ +--- +description: Create documentation for existing implemented features from a natural language description. +--- + +## User Input + +```text +$ARGUMENTS +``` + +You **MUST** consider the user input before proceeding (if not empty). + +## Outline + +The text the user typed after `/speckit.document` in the triggering message **is** the feature description (summarized by the user). Assume you always have it available in this conversation even if `$ARGUMENTS` appears literally below. Do not ask the user to repeat it unless they provided an empty command. + +Given that feature description, do this: + +1. **Generate a concise document name** (2-4 words): + - Analyze the feature description and extract the most meaningful keywords + - Create a 2-4 word name that captures the essence of the feature + - Use noun format when possible (e.g., "cart-feature", "payment-system", "user-authentication") + - Preserve technical terms and acronyms (OAuth2, API, JWT, etc.) + - Keep it concise but descriptive enough to understand the feature at a glance + - Examples: + - "์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค" โ†’ "cart-feature" + - "๊ฒฐ์ œ ์‹œ์Šคํ…œ ๊ตฌํ˜„" โ†’ "payment-system" + - "์‚ฌ์šฉ์ž ์ธ์ฆ OAuth2" โ†’ "oauth2-authentication" + - "๋ฆฌ๋ทฐ ํฌ์ธํŠธ ์‹œ์Šคํ…œ" โ†’ "review-points-system" + +2. **Determine output location** (NO script execution, NO branch creation): + - Create docs directory if needed: `docs/` or `.specify/docs/` + - Generate filename: `[document-name].md` (e.g., `cart-feature.md`) + - Full path example: `docs/cart-feature.md` + +3. Load `.specify/templates/docs-template.md` to understand required sections. + +4. Follow this execution flow: + + 1. Parse user description from Input + If empty: ERROR "No feature description provided" + 2. Extract key information from description: + - Feature overview and purpose + - Business policies mentioned + - Main logic flows + - Implemented features + - API endpoints (if mentioned) + - Known issues or improvements + - Related files (if mentioned) + 3. For unclear aspects: + - Make informed guesses based on context and industry standards + - Only mark with [NEEDS CLARIFICATION: specific question] if: + - The choice significantly impacts documentation completeness + - Multiple reasonable interpretations exist with different implications + - No reasonable default exists + - **LIMIT: Maximum 3 [NEEDS CLARIFICATION] markers total** + - Prioritize clarifications by impact: business policy > logic flow > feature details + 4. Fill all mandatory sections: + - Overview + - Business Policy (policies with reasons) + - Main Logic + - Feature List (completed and incomplete) + - API List (if applicable) + - Issues/Improvements + - Related Files + 5. Return: SUCCESS (documentation ready) + +5. Write the documentation to the determined file path using the template structure, replacing placeholders with concrete details derived from the feature description while preserving section order and headings. + +6. **Documentation Quality Validation**: After writing the initial docs, validate it against quality criteria: + + a. **Create Documentation Quality Checklist**: Generate a checklist file at `docs/checklists/[document-name]-quality.md` (or `.specify/docs/checklists/[document-name]-quality.md`) with these validation items: + + ```markdown + # Documentation Quality Checklist: [FEATURE NAME] + + **Purpose**: Validate documentation completeness and quality + **Created**: [DATE] + **Feature**: [Link to docs.md] + + ## Content Completeness + + - [ ] Overview clearly explains the feature purpose + - [ ] All business policies documented with reasons + - [ ] Main logic flows are described + - [ ] Feature list includes both completed and incomplete items + - [ ] API list is complete (if feature has APIs) + - [ ] Issues/improvements are identified + - [ ] Related files are listed + + ## Policy Documentation + + - [ ] No [NEEDS CLARIFICATION] markers remain + - [ ] Each policy includes the reason/background + - [ ] Policies are clear and unambiguous + - [ ] Missing policies are identified in Issues/Improvements + + ## Documentation Quality + + - [ ] Written in clear, understandable language + - [ ] Technical terms are used appropriately + - [ ] Examples are provided where helpful + - [ ] Document is well-structured and easy to navigate + + ## Notes + + - Items marked incomplete require docs updates or clarification + ``` + + b. **Run Validation Check**: Review the docs against each checklist item: + - For each item, determine if it passes or fails + - Document specific issues found (quote relevant sections) + + c. **Handle Validation Results**: + + - **If all items pass**: Mark checklist complete and proceed to step 7 + + - **If items fail (excluding [NEEDS CLARIFICATION])**: + 1. List the failing items and specific issues + 2. Update the docs to address each issue + 3. Re-run validation until all items pass (max 3 iterations) + 4. If still failing after 3 iterations, document remaining issues in checklist notes and warn user + + - **If [NEEDS CLARIFICATION] markers remain**: + 1. Extract all [NEEDS CLARIFICATION: ...] markers from the docs + 2. **LIMIT CHECK**: If more than 3 markers exist, keep only the 3 most critical (by policy/logic/feature impact) and make informed guesses for the rest + 3. **CRITICAL - Korean Communication**: Present all questions in Korean to the user + 4. For each clarification needed (max 3), present options to user in this format: + + ```markdown + ## ์งˆ๋ฌธ [N]: [์ฃผ์ œ] + + **๋ฌธ๋งฅ**: [๋ฌธ์„œ์˜ ๊ด€๋ จ ์„น์…˜ ์ธ์šฉ] + + **์•Œ์•„์•ผ ํ•  ๋‚ด์šฉ**: [NEEDS CLARIFICATION ๋งˆ์ปค์˜ ๊ตฌ์ฒด์  ์งˆ๋ฌธ] + + **์ œ์•ˆ ๋‹ต๋ณ€**: + + | ์˜ต์…˜ | ๋‹ต๋ณ€ | ๋ฌธ์„œํ™” ์˜ํ–ฅ | + |------|------|-------------| + | A | [์ฒซ ๋ฒˆ์งธ ์ œ์•ˆ ๋‹ต๋ณ€] | [๋ฌธ์„œํ™”์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ] | + | B | [๋‘ ๋ฒˆ์งธ ์ œ์•ˆ ๋‹ต๋ณ€] | [๋ฌธ์„œํ™”์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ] | + | C | [์„ธ ๋ฒˆ์งธ ์ œ์•ˆ ๋‹ต๋ณ€] | [๋ฌธ์„œํ™”์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ] | + | ์ง์ ‘์ž…๋ ฅ | ์ง์ ‘ ๋‹ต๋ณ€ ์ œ๊ณต | [์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ž…๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ• ์„ค๋ช…] | + + **์„ ํƒ**: _[์‚ฌ์šฉ์ž ์‘๋‹ต ๋Œ€๊ธฐ]_ + ``` + + 5. **CRITICAL - Table Formatting**: Ensure markdown tables are properly formatted: + - Use consistent spacing with pipes aligned + - Each cell should have spaces around content: `| Content |` not `|Content|` + - Header separator must have at least 3 dashes: `|--------|` + - Test that the table renders correctly in markdown preview + 6. Number questions sequentially in Korean (์งˆ๋ฌธ1, ์งˆ๋ฌธ2, ์งˆ๋ฌธ3 - max 3 total) + 7. Present all questions together before waiting for responses + 8. Wait for user to respond with their choices for all questions (e.g., "์งˆ๋ฌธ1: A, ์งˆ๋ฌธ2: ์ง์ ‘์ž…๋ ฅ - [์ƒ์„ธ๋‚ด์šฉ], ์งˆ๋ฌธ3: B") + 9. Update the docs by replacing each [NEEDS CLARIFICATION] marker with the user's selected or provided answer + 10. Re-run validation after all clarifications are resolved + + d. **Update Checklist**: After each validation iteration, update the checklist file with current pass/fail status + +7. Report completion with document file path, checklist results, and any identified issues/improvements. + +**NOTE:** This command does NOT create branches or run scripts - it only creates documentation files. + +## General Guidelines + +## Quick Guidelines + +- Focus on documenting **WHAT is implemented**, **WHY (business reasons)**, and **HOW (main logic)**. +- Include both completed and incomplete features. +- Identify issues and improvements discovered during documentation. +- Written for both technical and non-technical stakeholders. + +### Section Requirements + +- **Mandatory sections**: Must be completed for every feature +- **Optional sections**: Include only when relevant to the feature (e.g., API List) +- When a section doesn't apply, remove it entirely (don't leave as "N/A") + +### For AI Generation + +When creating this documentation from a user prompt: + +1. **Make informed guesses**: Use context, industry standards, and common patterns to fill gaps +2. **Document what's known**: Focus on information explicitly provided by the user +3. **Limit clarifications**: Maximum 3 [NEEDS CLARIFICATION] markers - use only for critical information that: + - Significantly impacts documentation completeness + - Has multiple reasonable interpretations with different implications + - Lacks any reasonable default +4. **Prioritize clarifications**: business policy > logic flow > feature details +5. **Think practically**: Document what exists, flag what's missing in Issues/Improvements +6. **Common areas needing clarification** (only if no reasonable default exists): + - Business policy reasons (why this implementation was chosen) + - Missing or unclear logic flows + - Incomplete feature status (implemented vs planned) + +**Examples of reasonable defaults** (don't ask about these): + +- Standard CRUD operations: If basic endpoints are mentioned, assume standard patterns +- Common business policies: Industry-standard practices unless specified otherwise +- File organization: Standard Rails/project conventions unless specified +- Error handling: Standard error responses unless specified + +### Documentation Structure Guidelines + +Documentation should be: + +1. **Clear**: Use simple language, avoid jargon unless necessary +2. **Complete**: All mandatory sections filled appropriately +3. **Accurate**: Based on user's description, not assumptions +4. **Actionable**: Issues/improvements are specific and practical + +**Good examples**: + +- "์žฌ๊ณ  ์ฐจ๊ฐ ์‹œ์ : ์žฅ๋ฐ”๊ตฌ๋‹ˆ ์ถ”๊ฐ€ ์‹œ (์ด์œ : ํ•œ์ • ์ˆ˜๋Ÿ‰ ์„ ์  ๋ฐฉ์ง€)" +- "๋งŒ๋ฃŒ ์ •์ฑ…: 30์ผ ํ›„ ์ž๋™ ๋งŒ๋ฃŒ (์ด์œ : ๋ฐ์ดํ„ฐ ๋ˆ„์  ๋ฐฉ์ง€)" +- "[ ] [P1] ์žฌ๊ณ  ๋ณต๊ตฌ ๋ฐฐ์น˜ ์ž‘์—… ๋ฏธ๊ตฌํ˜„ (ํ˜„์žฌ ์žฌ๊ณ ๊ฐ€ ๋ณต๊ตฌ๋˜์ง€ ์•Š์Œ)" + +**Bad examples**: + +- "์ •์ฑ… ์žˆ์Œ" (not specific) +- "์ž˜ ์ž‘๋™ํ•จ" (no business reason) +- "๊ฐœ์„  ํ•„์š”" (not actionable) diff --git a/.claude/commands/market.channel.md b/.claude/commands/market.channel.md new file mode 100644 index 0000000..d7352de --- /dev/null +++ b/.claude/commands/market.channel.md @@ -0,0 +1,516 @@ +# market.channel + +**์ฑ„๋„๋ณ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ตœ์ ํ™” ๋ฐ ์„ฑ๊ณผ ๊ทน๋Œ€ํ™” ์ „๋žต ๋ช…๋ น์–ด** + +--- + +## Overview + +**This is the third step of the 4C Marketing Framework**: + +``` +์ €๋น„์šฉ ๋งˆ์ผ€ํŒ… 4C: +1. /market.customer โ†’ ๊ณ ๊ฐ ์„ธ๋ถ„ํ™” & ์ฑ„๋„ ์ถ”์ฒœ (๋ˆ„๊ตฌ์—๊ฒŒ, ์–ด๋””์„œ?) +2. /market.contents โ†’ ์ฝ˜ํ…์ธ  ์ „๋žต & ์žฌํ™œ์šฉ (๋ฌด์—‡์„ ๋งŒ๋“ค๊นŒ?) +3. /market.channel โ†’ ์ฑ„๋„๋ณ„ ์ตœ์ ํ™” ์ „๋žต (์–ด๋–ป๊ฒŒ ์ตœ์ ํ™”ํ• ๊นŒ?) โ† YOU ARE HERE +4. /market.communicate โ†’ ๋ฐ”์ด๋Ÿด & ์ปค๋ฎค๋‹ˆํ‹ฐ ์ „๋žต (์–ด๋–ป๊ฒŒ ํผ๋œจ๋ฆด๊นŒ?) +``` + +## Purpose + +๊ฐ ํ”Œ๋žซํผ์˜ **์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ์‚ฌ์šฉ์ž ํ–‰๋™**์„ ์ดํ•ดํ•˜๊ณ , +๋™์ผํ•œ ์ฝ˜ํ…์ธ ๋ฅผ ์ฑ„๋„๋ณ„๋กœ ์ตœ์ ํ™”ํ•˜์—ฌ **๋„๋‹ฌ๊ณผ ์ „ํ™˜์„ ๊ทน๋Œ€ํ™”**ํ•ฉ๋‹ˆ๋‹ค. + +**ํ•ต์‹ฌ ์งˆ๋ฌธ**: "๊ฐ™์€ ๋ฉ”์‹œ์ง€๋„ ํ”Œ๋žซํผ๋งˆ๋‹ค ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅด๊ฒŒ ํฌ์žฅํ•ด์•ผ ํ• ๊นŒ?" + +--- + +## When to Use + +- `/market.contents`๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ๊ธฐํšํ•œ ํ›„ +- ์ฑ„๋„๋ณ„ ์„ฑ๊ณผ๊ฐ€ ๊ธฐ๋Œ€์— ๋ชป ๋ฏธ์น  ๋•Œ +- ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ณ€ํ™”์— ๋Œ€์‘ํ•ด์•ผ ํ•  ๋•Œ +- ์ฑ„๋„ ์ถ”๊ฐ€๋ฅผ ๊ณ ๋ คํ•  ๋•Œ + +--- + +## Usage + +```bash +/market.channel +/market.channel "focus: ์œ ํŠœ๋ธŒ + ์ธ์Šคํƒ€" +/market.channel "๋„ค์ด๋ฒ„ SEO ์ง‘์ค‘" +``` + +--- + +## What I'll Do + +### 1. ์ฑ„๋„๋ณ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ดํ•ด + +```markdown +## Platform Algorithm Breakdown + +### ์œ ํŠœ๋ธŒ (YouTube) +**์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•ต์‹ฌ**: CTR (ํด๋ฆญ๋ฅ ) ร— Retention (์‹œ์ฒญ ์ง€์†๋ฅ ) ร— Session Time + +#### ์ตœ์ ํ™” ์š”์†Œ + +**1. ์ธ๋„ค์ผ + ์ œ๋ชฉ (CTR ๊ฒฐ์ •)** +- CTR 8%+ ๋ชฉํ‘œ (ํ‰๊ท  4-5%) +- ์ธ๋„ค์ผ: ์‚ฌ๋žŒ ์–ผ๊ตด ํด๋กœ์ฆˆ์—… + ํ…์ŠคํŠธ 3๋‹จ์–ด ์ด๋‚ด +- ์ œ๋ชฉ: 40์ž ์ด๋‚ด, ์ˆซ์ž + ๊ฒฐ๊ณผ + ํƒ€๊ฒŸ +- ์˜ˆ: "ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ 30๋ถ„โ†’3์ดˆ๋กœ ์ค„์ธ ๋ฒ•" + +**2. ์ฒซ 30์ดˆ (Retention ๊ฒฐ์ •)** +โš ๏ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ƒ์กด ๊ตฌ๊ฐ„ +- 0-5์ดˆ: ์ถฉ๊ฒฉ/์งˆ๋ฌธ์œผ๋กœ ์‹œ์ž‘ (์ธ์‚ฌ X) +- 5-15์ดˆ: ์ฆ‰์‹œ ๊ฐ€์น˜ ์ œ์‹œ (๊ตฌ๋… ์š”์ฒญ X) +- 15-25์ดˆ: ์ฝ˜ํ…์ธ  ๋กœ๋“œ๋งต ์ œ์‹œ +- 25-30์ดˆ: ๊ฐ์ • ํ›… (๊ถ๊ธˆ์ฆ/๊ณต๊ฐ) + +**3. ํ‰๊ท  ์‹œ์ฒญ ์ง€์†๋ฅ  (AVD)** +- ๋ชฉํ‘œ: 50%+ (10๋ถ„ ์˜์ƒ โ†’ 5๋ถ„ ์‹œ์ฒญ) +- 3๋ถ„/5๋ถ„/7๋ถ„ ๋งˆ๋‹ค retention hook ์‚ฝ์ž… +- ์˜ˆ: "โš ๏ธ ๋‹ค์Œ ๋‚ด์šฉ ๋†“์น˜๋ฉด ์†ํ•ด" + +**4. ์„ธ์…˜ ์‹œ๊ฐ„** +- ์žฌ์ƒ๋ชฉ๋ก ํ™œ์šฉ +- ๋ ํ™”๋ฉด (End Screen)์— ๋‹ค์Œ ์˜์ƒ ์œ ๋„ +- "์ด๊ฒƒ๋„ ๋ณด์„ธ์š”" ์นด๋“œ ์‚ฝ์ž… + +**5. ์—…๋กœ๋“œ ์ตœ์  ์‹œ๊ฐ„** +- ํƒ€๊ฒŸ ์‹œ์ฒญ ์‹œ๊ฐ„๋Œ€ 2-3์‹œ๊ฐ„ ์ „ +- ์ง์žฅ์ธ ํƒ€๊ฒŸ: ๋ชฉ/๊ธˆ์š”์ผ 18:00 ์—…๋กœ๋“œ (ํ‡ด๊ทผ ํ›„ ์‹œ์ฒญ) +- ์ฃผ๋ถ€ ํƒ€๊ฒŸ: ์›”/์ˆ˜์š”์ผ 14:00 ์—…๋กœ๋“œ (์˜คํ›„ ์‹œ๊ฐ„) + +**6. ํ•ด์‹œํƒœ๊ทธ & ์ฑ•ํ„ฐ** +- ํ•ด์‹œํƒœ๊ทธ 3๊ฐœ (๋„ˆ๋ฌด ๋งŽ์œผ๋ฉด ์—ญํšจ๊ณผ) +- ์ฑ•ํ„ฐ 5-7๊ฐœ (ํƒ€์ž„๋ผ์ธ ๋ถ„ํ• ) + +**์„ฑ๊ณผ ์ง€ํ‘œ**: +- CTR: 8%+ (๋ฐ”์ด๋Ÿด ๊ฐ€๋Šฅ) +- AVD: 50%+ +- ๊ตฌ๋… ์ „ํ™˜์œจ: 2%+ + + +### ์ธ์Šคํƒ€๊ทธ๋žจ (Instagram) +**์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•ต์‹ฌ**: Engagement (์ข‹์•„์š”/๋Œ“๊ธ€/์ €์žฅ) ร— Relationship ร— Timeliness + +#### ๋ฆด์Šค ์ตœ์ ํ™” + +**1. ์ฒซ 3์ดˆ ๋ฒ•์น™** +- ์Šคํฌ๋กค ๋ฐฉ์ง€: ์ฆ‰์‹œ ์‹œ๊ฐ์  ์ถฉ๊ฒฉ +- ํ…์ŠคํŠธ ์˜ค๋ฒ„๋ ˆ์ด: ํฐ ๊ธ€์”จ (๋ชจ๋ฐ”์ผ ๊ฐ€๋…์„ฑ) +- ์Œ์•…: ํŠธ๋ Œ๋”ฉ ์‚ฌ์šด๋“œ ์‚ฌ์šฉ (๊ฒ€์ƒ‰ ์šฉ์ด) + +**2. ๊ธธ์ด** +- ์ตœ์ : 7-15์ดˆ (์™„์ฃผ์œจ ๋†’์Œ) +- ์ตœ๋Œ€: 30์ดˆ (๊ธด ๊ฑด ์œ ํŠœ๋ธŒ๋กœ) + +**3. ํ•ด์‹œํƒœ๊ทธ ์ „๋žต** +- ์ด 15-20๊ฐœ +- ๋Œ€ํ˜• (100๋งŒ+): 2๊ฐœ - #ํ…Œ๋‹ˆ์Šค #์šด๋™ +- ์ค‘ํ˜• (10-50๋งŒ): 5๊ฐœ - #ํ…Œ๋‹ˆ์Šค๋ ˆ์Šจ #ํ…Œ๋‹ˆ์Šค๋™ํ˜ธํšŒ +- ์†Œํ˜• (1-5๋งŒ): 8๊ฐœ - #ํ…Œ๋ฆฐ์ด #์ฃผ๋งํ…Œ๋‹ˆ์Šค +- ๋‹ˆ์น˜ (<1๋งŒ): 5๊ฐœ - #์„œ์šธํ…Œ๋‹ˆ์Šค์ฝ”ํŠธ #์ฝ”ํŠธ์˜ˆ์•ฝ + +**4. ์Šคํ† ๋ฆฌ ํ™œ์šฉ** +- ํ•˜๋ฃจ 5-10๊ฐœ ์—…๋กœ๋“œ (์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ€์ŠคํŠธ) +- ์Šคํ‹ฐ์ปค ์‚ฌ์šฉ (ํˆฌํ‘œ/์งˆ๋ฌธ/ํ€ด์ฆˆ) +- ํ•˜์ด๋ผ์ดํŠธ๋กœ FAQ/๊ฐ€์ด๋“œ ์ •๋ฆฌ + +**5. ์บ๋Ÿฌ์…€ ์ €์žฅ๋ฅ ** +- ๋งˆ์ง€๋ง‰ ์Šฌ๋ผ์ด๋“œ์— "์ €์žฅํ•ด์„œ ๋‚˜์ค‘์— ๋ณด์„ธ์š”" +- ์ฒดํฌ๋ฆฌ์ŠคํŠธ/๊ฐ€์ด๋“œ ํ˜•์‹ (์ €์žฅ ์œ ๋„) + +**6. ์—…๋กœ๋“œ ์ตœ์  ์‹œ๊ฐ„** +- ์ถœํ‡ด๊ทผ ์‹œ๊ฐ„: 07:00-09:00, 18:00-20:00 +- ์ ์‹ฌ์‹œ๊ฐ„: 12:00-13:00 +- ์ฃผ๋ง: 10:00-12:00 (๋ธŒ๋Ÿฐ์น˜ ํƒ€์ž„) + +**์„ฑ๊ณผ ์ง€ํ‘œ**: +- ๋„๋‹ฌ๋ฅ : ํŒ”๋กœ์›Œ์˜ 30%+ +- ์ €์žฅ๋ฅ : 5%+ +- ํ”„๋กœํ•„ ํด๋ฆญ๋ฅ : 2%+ + + +### ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ (Naver Blog) +**์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•ต์‹ฌ**: SEO (ํ‚ค์›Œ๋“œ) ร— ์ฒด๋ฅ˜ ์‹œ๊ฐ„ ร— ์ด์›ƒ ์ˆ˜ ร— ๋ฐฉ๋ฌธ์ž ์ˆ˜ + +#### SEO ์ตœ์ ํ™” + +**1. ํ‚ค์›Œ๋“œ ์ „๋žต** +- ๋ฉ”์ธ ํ‚ค์›Œ๋“œ: ์ œ๋ชฉ์— 1ํšŒ, ๋ณธ๋ฌธ์— 3-5ํšŒ +- ๋กฑํ…Œ์ผ ํ‚ค์›Œ๋“œ: "ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ ๋ฐฉ๋ฒ•" +- LSI ํ‚ค์›Œ๋“œ: ๊ด€๋ จ ๊ฒ€์ƒ‰์–ด (์„œ์šธ, ํ• ์ธ, ์‹œ๊ฐ„) + +**2. ์ œ๋ชฉ ๊ณต์‹** +- ํŒจํ„ด: [ํ‚ค์›Œ๋“œ] + [์ˆซ์ž/ํ˜•์šฉ์‚ฌ] + [ํ˜œํƒ] +- ์˜ˆ: "ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ ๋ฐฉ๋ฒ• ์ด์ •๋ฆฌ (2025๋…„ ์ตœ์‹ )" +- ๊ธธ์ด: 25-30์ž (๋ชจ๋ฐ”์ผ ๋…ธ์ถœ ์ตœ์ ) + +**3. ๋ณธ๋ฌธ ๊ตฌ์กฐ** +- ์„œ๋ก : ๊ณต๊ฐ + ๋ฌธ์ œ ์ œ๊ธฐ (300์ž) +- ๋ณธ๋ก : ๋‹จ๊ณ„๋ณ„ ์†”๋ฃจ์…˜ + ์Šคํฌ๋ฆฐ์ƒท (1,500์ž) +- ๊ฒฐ๋ก : ์š”์•ฝ + CTA (200์ž) +- ์ด 2,000-3,000์ž (์ฒด๋ฅ˜ ์‹œ๊ฐ„ 3๋ถ„+ ์œ ๋„) + +**4. ์ด๋ฏธ์ง€ ์ตœ์ ํ™”** +- ๊ฐœ์ˆ˜: 7-10์žฅ +- ํŒŒ์ผ๋ช…: "ํ…Œ๋‹ˆ์Šค-์ฝ”ํŠธ-์˜ˆ์•ฝ-๋ฐฉ๋ฒ•.jpg" (SEO) +- Alt ํ…์ŠคํŠธ: ํ‚ค์›Œ๋“œ ํฌํ•จ +- ์„ธ๋กœ ์ด๋ฏธ์ง€ ์„ ํ˜ธ (๋ชจ๋ฐ”์ผ ์ตœ์ ) + +**5. ๋‚ด๋ถ€ ๋งํฌ** +- ๋‚ด ๋‹ค๋ฅธ ํฌ์ŠคํŠธ 2-3๊ฐœ ๋งํฌ +- ์ฒด๋ฅ˜ ์‹œ๊ฐ„ ์ฆ๊ฐ€ โ†’ ๊ฒ€์ƒ‰ ์ˆœ์œ„ ์ƒ์Šน + +**6. C-Rank ์ „๋žต** +- ๊ฒฝ์Ÿ ๋‚ฎ์€ ํ‚ค์›Œ๋“œ๋กœ ์‹œ์ž‘ +- ์ƒ์œ„ ๋…ธ์ถœ ํ›„ ์ƒ์œ„ ํ‚ค์›Œ๋“œ ๋„์ „ +- ์˜ˆ: "XX์ง€์—ญ ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ" โ†’ "ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ" + +**์„ฑ๊ณผ ์ง€ํ‘œ**: +- ๊ฒ€์ƒ‰ ์œ ์ž…: 50%+ +- ์ฒด๋ฅ˜ ์‹œ๊ฐ„: 3๋ถ„+ +- ์ด์›ƒ ์ถ”๊ฐ€: ์ฃผ 5๋ช…+ + + +### ๋„ค์ด๋ฒ„ ์นดํŽ˜ (Naver Cafe) +**์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•ต์‹ฌ**: ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ทœ์น™ ์ค€์ˆ˜ ร— ๊ฒŒ์‹œ๊ธ€ ํ’ˆ์งˆ ร— ํšŒ์› ์ฐธ์—ฌ + +#### ์ปค๋ฎค๋‹ˆํ‹ฐ ๋งˆ์ผ€ํŒ… + +**1. ๊ฐ€์ž… ์ „๋žต** +- ํƒ€๊ฒŸ ์นดํŽ˜ 10-20๊ฐœ ๊ฐ€์ž… +- ํ™œ๋™ 1์ฃผ์ผ ํ›„ ๊ฒŒ์‹œ (์‹ ๋ขฐ ๊ตฌ์ถ•) +- ํ”„๋กœํ•„: ์ „๋ฌธ์„ฑ ์–ดํ•„ (๊ด‘๊ณ  ์•„๋‹˜) + +**2. ๊ฒŒ์‹œ๊ธ€ ์ „๋žต** +- ๊ด‘๊ณ  ๊ธˆ์ง€ โ†’ ์ง„์งœ ๊ฒฝํ—˜๋‹ด +- ์ œ๋ชฉ: ์งˆ๋ฌธํ˜• OR ๊ณต๊ฐํ˜• +- ์˜ˆ: "[ํ›„๊ธฐ] ๋™ํ˜ธํšŒ ์˜ˆ์•ฝ ๊ด€๋ฆฌ ์ด๋ ‡๊ฒŒ ํ•ด๊ฒฐ" +- ๋ณธ๋ฌธ: ๋ฌธ์ œ โ†’ ์‹œ๋„ โ†’ ํ•ด๊ฒฐ โ†’ ๊ฒฐ๊ณผ + +**3. ๋Œ“๊ธ€ ์ฐธ์—ฌ** +- ์งˆ๋ฌธ ๊ธ€์— ๋จผ์ € ๋‹ต๋ณ€ (Give First) +- ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ œํ’ˆ ์–ธ๊ธ‰ +- ๋งํฌ๋Š” DM์œผ๋กœ (๋Œ“๊ธ€ X) + +**4. ์‹ ๋ขฐ ๊ตฌ์ถ•** +- 2-3์ฃผ ๊พธ์ค€ํžˆ ํ™œ๋™ +- ์œ ์šฉํ•œ ์ •๋ณด ๊ณต์œ  +- ๋งค๋‹ˆ์ €์™€ ๊ด€๊ณ„ ํ˜•์„ฑ + +**์„ฑ๊ณผ ์ง€ํ‘œ**: +- ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ์ˆ˜: 500+ +- DM ๋ฌธ์˜: 5+ +- ์‹ค์ œ ์ „ํ™˜: 3+ + + +### ๋ธ”๋ผ์ธ๋“œ (Blind) +**์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•ต์‹ฌ**: ๊ณต๊ฐ ์ˆ˜ ร— ๋Œ“๊ธ€ ์ˆ˜ ร— ์‹ ๊ณ  ํšŒํ”ผ + +#### ์ง์žฅ์ธ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ „๋žต + +**1. ๊ฒŒ์‹œ ์ „๋žต** +- ๊ฒŒ์‹œํŒ: "์ง์žฅ ์ƒํ™œ", "์ด์ง/์ปค๋ฆฌ์–ด" +- ํ†ค: ๋™๋ฃŒ์—๊ฒŒ ๋งํ•˜๋“ฏ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ +- ๊ธˆ์ง€: ์ง์ ‘์  ๊ด‘๊ณ , ๋งํฌ ๋„๋ฐฐ + +**2. ์ œ๋ชฉ** +- ๊ณต๊ฐํ˜•: "OO ๋งก์•˜๋‹ค๊ฐ€ ํ‡ด๊ทผ ๋Šฆ์–ด๋ณธ ์  ์žˆ๋‚˜์š”?" +- ์งˆ๋ฌธํ˜•: "OO ์—…๋ฌด ํšจ์œจํ™” ์–ด๋–ป๊ฒŒ ํ•˜์‹œ๋‚˜์š”?" + +**3. ๋ณธ๋ฌธ** +- ์ง„์งœ ๊ณ ๋ฏผ ๊ณต์œ  +- ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์–ธ๊ธ‰ (์ œํ’ˆ์€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ) +- ๋งˆ์ง€๋ง‰์— ์งˆ๋ฌธ์œผ๋กœ ๋งˆ๋ฌด๋ฆฌ + +**4. ๋Œ“๊ธ€ ๊ด€๋ฆฌ** +- ์งˆ๋ฌธ์— ์„ฑ์‹คํžˆ ๋‹ต๋ณ€ +- ๊ด‘๊ณ  ๋…ผ๋ž€ ์‹œ "๊ด‘๊ณ  ์•„๋‹ˆ๊ณ  ์ง„์งœ ์จ๋ณธ ํ›„๊ธฐ" + +**์„ฑ๊ณผ ์ง€ํ‘œ**: +- ๊ณต๊ฐ ์ˆ˜: 10+ +- ๋Œ“๊ธ€ ์ฐธ์—ฌ: 5+ +- DM ๋ฌธ์˜: 3+ + + +### ์œ ํŠœ๋ธŒ ์‡ผ์ธ  (YouTube Shorts) +**์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•ต์‹ฌ**: ์™„์ฃผ์œจ ร— ๋ฆฌํ”Œ๋ ˆ์ด ร— ๊ณต์œ  + +#### ์‡ผ์ธ  ์ตœ์ ํ™” + +**1. ๊ธธ์ด** +- ์ตœ์ : 15-30์ดˆ (์™„์ฃผ์œจ ์ตœ๋Œ€) +- ์ตœ๋Œ€: 60์ดˆ + +**2. Hook (์ฒซ 3์ดˆ)** +- ํ…์ŠคํŠธ: "์ด๊ฑฐ ๋ชจ๋ฅด๋ฉด ์†ํ•ด" +- ๋น„์ฃผ์–ผ: ๊ทน์  Before/After +- ์Œ์•…: ๊ธด์žฅ๊ฐ/๋ฆฌ๋“ฌ๊ฐ + +**3. ์ž๋ง‰ ํ•„์ˆ˜** +- 85% ๋ฌด์Œ ์‹œ์ฒญ +- ํฐ ๊ธ€์”จ (๋ชจ๋ฐ”์ผ ๊ฐ€๋…์„ฑ) +- ์ƒ‰์ƒ ๋Œ€๋น„ (ํฐ ๊ธ€์”จ + ๊ฒ€์€ ํ…Œ๋‘๋ฆฌ) + +**4. CTA ์œ„์น˜** +- ๋งˆ์ง€๋ง‰ 3์ดˆ: "์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ณ ์ • ๋Œ“๊ธ€" +- ๋Œ“๊ธ€์— ๋งํฌ (๋ฐ”์ด์˜ค ์•„๋‹˜) + +**์„ฑ๊ณผ ์ง€ํ‘œ**: +- ์™„์ฃผ์œจ: 70%+ +- ์กฐํšŒ์ˆ˜: 1,000+ (48์‹œ๊ฐ„ ๋‚ด) +- ๊ตฌ๋… ์ „ํ™˜: 1%+ +``` + +### 2. Channel-Specific Content Adaptation + +```markdown +## Same Message, Different Packaging + +### Core Message (๊ณตํ†ต) +"ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ 30๋ถ„ โ†’ 3์ดˆ๋กœ ๋‹จ์ถ•" + +### ์œ ํŠœ๋ธŒ ๋ฒ„์ „ (10๋ถ„) +**์ œ๋ชฉ**: "ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ 30๋ถ„ ๊ฑธ๋ฆฌ๋Š” ์‚ฌ๋žŒ vs 3์ดˆ ๋๋‚ด๋Š” ์‚ฌ๋žŒ ์ฐจ์ด" + +**์ธ๋„ค์ผ**: +- Before: ๐Ÿ˜ค (์ „ํ™” ํ†ตํ™” ์ค‘ ์งœ์ฆ๋‚œ ํ‘œ์ •) +- After: ๐Ÿ˜„ (ํฐ ๋“ค๊ณ  ์›ƒ๋Š” ํ‘œ์ •) +- ํ…์ŠคํŠธ: "30๋ถ„ vs 3์ดˆ" + +**์Šคํฌ๋ฆฝํŠธ ๊ตฌ์กฐ**: +0:00 - Hook: "๋งค์ฃผ ํ† ์š”์ผ ์•„์นจ 7์‹œ์— ์ผ์–ด๋‚˜์„œ 5๊ฐœ ์ฝ”ํŠธ์— ์ „ํ™”ํ•˜๋˜ ์ œ๊ฐ€..." +0:30 - Problem: ๊ธฐ์กด ์˜ˆ์•ฝ์˜ 3๊ฐ€์ง€ ๋ฌธ์ œ +2:00 - Discovery: ์ด ์•ฑ์„ ์•Œ๊ฒŒ ๋œ ๊ณ„๊ธฐ +4:00 - Demo: ์‹ค์ œ ์‚ฌ์šฉ ํ™”๋ฉด +7:00 - Result: 4์ฃผ ์‚ฌ์šฉ ํ›„๊ธฐ +9:00 - CTA: ์ฒซ ์˜ˆ์•ฝ ํ• ์ธ + + +### ์ธ์Šคํƒ€ ๋ฆด์Šค ๋ฒ„์ „ (15์ดˆ) +**Hook**: "์ฃผ๋ง๋งˆ๋‹ค ์ด๋Ÿฌ์‹œ์ฃ ?" + +**ํ™”๋ฉด**: +[0-3์ดˆ] Before: ์ „ํ™”๊ธฐ ๋“ค๊ณ  ๋Œ€๊ธฐ ์ค‘ (โฐ 30๋ถ„ ํ…์ŠคํŠธ) +[4-6์ดˆ] Transition: ํ™”๋ฉด ์ „ํ™˜ ์ดํŽ™ํŠธ +[7-12์ดˆ] After: ์•ฑ์œผ๋กœ ํƒญํƒญํƒญ (โšก 3์ดˆ ํ…์ŠคํŠธ) +[13-15์ดˆ] CTA: "๋งํฌ๋Š” ๋ฐ”์ด์˜ค์—" + +**์Œ์•…**: ํŠธ๋ Œ๋”ฉ ์‚ฌ์šด๋“œ (๋น ๋ฅธ ํ…œํฌ) + +**ํ•ด์‹œํƒœ๊ทธ**: #ํ…Œ๋‹ˆ์Šค #ํ…Œ๋ฆฐ์ด #์ฝ”ํŠธ์˜ˆ์•ฝ #๊ฟ€ํŒ #์šด๋™ + + +### ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ ๋ฒ„์ „ (2,500์ž) +**์ œ๋ชฉ**: "ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ ๋ฐฉ๋ฒ• ์ด์ •๋ฆฌ (2025๋…„ ์ตœ์‹ ) - ํ• ์ธ ๋ฐ›๋Š” ๋ฒ•๊นŒ์ง€" + +**๋ชฉ์ฐจ**: +1. ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ 3๊ฐ€์ง€ ๋ฐฉ๋ฒ• ๋น„๊ต +2. ์ „ํ™” ์˜ˆ์•ฝ vs ์•ฑ ์˜ˆ์•ฝ ์žฅ๋‹จ์  +3. ์ถ”์ฒœ ์˜ˆ์•ฝ ์•ฑ Top 3 (๊ฐ๊ด€์  ๋น„๊ต) +4. [OO ์•ฑ] ์‚ฌ์šฉ ๊ฐ€์ด๋“œ (์Šคํฌ๋ฆฐ์ƒท) +5. ํ• ์ธ๋ฐ›๋Š” ๊ฟ€ํŒ 3๊ฐ€์ง€ +6. ์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ (FAQ) + +**SEO ํ‚ค์›Œ๋“œ** (๋ณธ๋ฌธ 5ํšŒ ์‚ฝ์ž…): +- ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ +- ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ํ• ์ธ +- ์„œ์šธ ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ + + +### ๋„ค์ด๋ฒ„ ์นดํŽ˜ ๋ฒ„์ „ (800์ž) +**์ œ๋ชฉ**: "[ํ›„๊ธฐ] ๋™ํ˜ธํšŒ ์˜ˆ์•ฝ ๊ด€๋ฆฌ ์ด๋ ‡๊ฒŒ ํ•ด๊ฒฐํ–ˆ์–ด์š”" + +**๋ณธ๋ฌธ**: +``` +์•ˆ๋…•ํ•˜์„ธ์š”, 25๋ช… ๋™ํ˜ธํšŒ ์šด์˜ ์ค‘์ธ ํšŒ์›์ž…๋‹ˆ๋‹ค. + +[๋ฌธ์ œ] +๋งค์ฃผ ํ† ์š”์ผ ์ฝ”ํŠธ ์˜ˆ์•ฝ์ด ์ œ์ผ ํฐ ์ŠคํŠธ๋ ˆ์Šค์˜€์–ด์š”. +- 5๊ฐœ ์ฝ”ํŠธ ์ „ํ™” (30๋ถ„) +- ํšŒ์›๋“ค ์ผ์ • ์กฐ์œจ (์นดํ†ก 100ํ†ต) +- ์˜ˆ์•ฝ ์‹คํŒจํ•˜๋ฉด ์š•๋จน์Œ + +[ํ•ด๊ฒฐ] +OO ์•ฑ ์จ๋ดค๋Š”๋ฐ ์ง„์งœ ํŽธํ•˜๋”๋ผ๊ณ ์š”. +(๊ด‘๊ณ  ์•„๋‹ˆ๊ณ  4์ฃผ ์จ๋ณธ ์ง„์งœ ํ›„๊ธฐ) + +[ํšจ๊ณผ] +- ์˜ˆ์•ฝ ์‹œ๊ฐ„: 30๋ถ„ โ†’ 3๋ถ„ +- ํšŒ์› ๋งŒ์กฑ๋„ UP +- ์ž๋™ ํ• ์ธ 30% (ํšŒ๋น„ ์ ˆ๊ฐ) + +ํ˜น์‹œ ๋น„์Šทํ•œ ๊ณ ๋ฏผ ์žˆ์œผ์‹  ๋ถ„๋“ค ์ฐธ๊ณ ํ•˜์„ธ์š”! +``` + +**ํ†ค**: ๋™๋ฃŒ์—๊ฒŒ ๋งํ•˜๋“ฏ, ๊ด‘๊ณ  ์•„๋‹˜ ๊ฐ•์กฐ + + +### ๋ธ”๋ผ์ธ๋“œ ๋ฒ„์ „ (500์ž) +**์ œ๋ชฉ**: "๋™์•„๋ฆฌ ๊ฐ„์‚ฌ ๋งก์•˜๋‹ค๊ฐ€ ์˜ˆ์•ฝ ์—…๋ฌด๋กœ ์ŠคํŠธ๋ ˆ์Šค ๋ฐ›๋Š” ์‚ฌ๋žŒ?" + +**๋ณธ๋ฌธ**: +``` +์ง์žฅ ํ…Œ๋‹ˆ์Šค ๋™์•„๋ฆฌ ๊ฐ„์‚ฌ ๋งก์•˜๋Š”๋ฐ +๋ถ„๊ธฐ๋ณ„ ์ฝ”ํŠธ ์˜ˆ์•ฝ์ด ์—…๋ฌด๋ณด๋‹ค ํž˜๋“ญ๋‹ˆ๋‹ค ใ… ใ…  + +์ „ํ™” 10ํ†ต + ์—‘์…€ ์ •๋ฆฌ + ์ž…๊ธˆ ํ™•์ธ... +ํ‡ด๊ทผ ํ›„ 2์‹œ๊ฐ„ ๋‚ ๋ฆฌ๋Š” ์ค‘ + +ํ˜น์‹œ ํšจ์œจ์ ์œผ๋กœ ํ•˜๋Š” ๋ฒ• ์•„์‹œ๋Š” ๋ถ„? + +[์ถ”๊ฐ€] +๋Œ“๊ธ€๋กœ OO ์•ฑ ์ถ”์ฒœ ๋ฐ›์•„์„œ ์จ๋ดค๋Š”๋ฐ +์ง„์งœ 10๋ถ„ ๋งŒ์— ๋๋‚˜๋„ค์š”... ์ง„์ž‘ ์“ธ๊ฑธ + +๋งํฌ ๊ถ๊ธˆํ•˜์‹  ๋ถ„ DM ์ฃผ์„ธ์š” +(ํšŒ์‚ฌ ์ •๋ณด ๊ณต๊ฐœ ์•ˆ ๋ผ์„œ ์—ฌ๊ธฐ ๋ชป ๋‚จ๊น€) +``` + +**์ „๋žต**: ๊ณ ๋ฏผ ๊ณต์œ  โ†’ ๋Œ“๊ธ€๋กœ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ•ด๊ฒฐ + + +### ์œ ํŠœ๋ธŒ ์‡ผ์ธ  ๋ฒ„์ „ (30์ดˆ) +**์ž๋ง‰ (ํฐ ๊ธ€์”จ)**: +[0-5์ดˆ] "๋งค์ฃผ ์ด๋Ÿฌ์‹œ๋Š” ๋ถ„?" +[6-10์ดˆ] ์ „ํ™” ์˜ˆ์•ฝ ์žฅ๋ฉด (30๋ถ„ โฐ) +[11-15์ดˆ] "์ด์ œ ์ด๋ ‡๊ฒŒ ํ•˜์„ธ์š”" +[16-25์ดˆ] ์•ฑ ์˜ˆ์•ฝ ์žฅ๋ฉด (3์ดˆ โšก) +[26-30์ดˆ] "์ž์„ธํ•œ ๊ฑด ๊ณ ์ • ๋Œ“๊ธ€" + +**๊ณ ์ • ๋Œ“๊ธ€**: "์•ฑ ์ด๋ฆ„: OO / ์ฒซ ์˜ˆ์•ฝ 30% ํ• ์ธ ์ฝ”๋“œ: SHORTS2025" +``` + +### 3. Channel Performance Dashboard + +```markdown +## Weekly Performance Tracking + +### ์ฃผ๊ฐ„ ์ฒดํฌ๋ฆฌ์ŠคํŠธ + +#### ์œ ํŠœ๋ธŒ +- [ ] CTR: 8% ์ด์ƒ ์œ ์ง€ +- [ ] AVD: 50% ์ด์ƒ ์œ ์ง€ +- [ ] ๊ตฌ๋… ์ „ํ™˜์œจ: 2% ์ด์ƒ +- [ ] ๋Œ“๊ธ€ 10๊ฐœ ์ด์ƒ ๋‹ฌ๋ฆผ +- [ ] ์—…๋กœ๋“œ ์‹œ๊ฐ„ ์ตœ์ ํ™” ํ™•์ธ + +**Pivot Signal**: +- CTR < 5%: ์ธ๋„ค์ผ/์ œ๋ชฉ A/B ํ…Œ์ŠคํŠธ +- AVD < 40%: ์ฒซ 30์ดˆ ๊ฐœ์„  +- ๊ตฌ๋… < 1%: CTA ์œ„์น˜ ๋ณ€๊ฒฝ + + +#### ์ธ์Šคํƒ€๊ทธ๋žจ +- [ ] ๋„๋‹ฌ๋ฅ : ํŒ”๋กœ์›Œ 30% ์ด์ƒ +- [ ] ์ €์žฅ๋ฅ : 5% ์ด์ƒ +- [ ] ํ”„๋กœํ•„ ํด๋ฆญ: 2% ์ด์ƒ +- [ ] ์Šคํ† ๋ฆฌ 10๊ฐœ ์ด์ƒ ์—…๋กœ๋“œ +- [ ] ํ•ด์‹œํƒœ๊ทธ 15๊ฐœ ์ตœ์ ํ™” + +**Pivot Signal**: +- ๋„๋‹ฌ๋ฅ  < 20%: ํ•ด์‹œํƒœ๊ทธ ๋ณ€๊ฒฝ +- ์ €์žฅ๋ฅ  < 2%: ์ฝ˜ํ…์ธ  ํ˜•์‹ ๋ณ€๊ฒฝ (์บ๋Ÿฌ์…€๋กœ) +- ํด๋ฆญ < 1%: ๋ฐ”์ด์˜ค CTA ๊ฐœ์„  + + +#### ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ +- [ ] ๊ฒ€์ƒ‰ ์œ ์ž…: 50% ์ด์ƒ +- [ ] ์ฒด๋ฅ˜ ์‹œ๊ฐ„: 3๋ถ„ ์ด์ƒ +- [ ] ์ด์›ƒ ์ถ”๊ฐ€: ์ฃผ 5๋ช… +- [ ] ๋Œ“๊ธ€: 3๊ฐœ ์ด์ƒ +- [ ] C-Rank ์ƒ์Šน ํ™•์ธ + +**Pivot Signal**: +- ๊ฒ€์ƒ‰ < 30%: ํ‚ค์›Œ๋“œ ์žฌ์„ ์ • +- ์ฒด๋ฅ˜ < 2๋ถ„: ๋ณธ๋ฌธ ๊ตฌ์กฐ ๊ฐœ์„  +- ์ด์›ƒ < 2๋ช…: ๋‚ด๋ถ€ ๋งํฌ ๊ฐ•ํ™” + + +#### ์ปค๋ฎค๋‹ˆํ‹ฐ (์นดํŽ˜/๋ธ”๋ผ์ธ๋“œ) +- [ ] ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ์ˆ˜: 500+ +- [ ] DM ๋ฌธ์˜: 5+ +- [ ] ๋Œ“๊ธ€ ์ฐธ์—ฌ: 10+ +- [ ] ์‹ ๊ณ  ์—†์Œ +- [ ] ์‹ ๋ขฐ ๊ตฌ์ถ• (๋‹ต๋ณ€ ํ™œ๋™) + +**Pivot Signal**: +- ์กฐํšŒ < 200: ์ œ๋ชฉ ๊ฐœ์„  +- ๋ฌธ์˜ < 2: ๋ณธ๋ฌธ CTA ๊ฐœ์„  +- ์‹ ๊ณ  ๋ฐœ์ƒ: ํ†ค ์กฐ์ • (๋œ ๊ด‘๊ณ ์Šค๋Ÿฝ๊ฒŒ) +``` + +--- + +## Output Files + +### ์ƒ์„ฑ๋  ํŒŒ์ผ๋“ค: + +1. **`docs/market/channel-playbook.md`** + - ์ฑ„๋„๋ณ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„์„ + - ์ตœ์ ํ™” ์ฒดํฌ๋ฆฌ์ŠคํŠธ + - ์„ฑ๊ณผ ์ง€ํ‘œ ๋ฐ Pivot ๊ธฐ์ค€ + +2. **`docs/market/content-adaptation-guide.md`** + - ๋™์ผ ๋ฉ”์‹œ์ง€์˜ ์ฑ„๋„๋ณ„ ๋ณ€์ฃผ + - ํฌ๋งท๋ณ„ ์˜ˆ์‹œ + - ํ†ค์•ค๋งค๋„ˆ ๊ฐ€์ด๋“œ + +3. **`docs/market/performance-dashboard.md`** + - ์ฃผ๊ฐ„ ์„ฑ๊ณผ ํŠธ๋ž˜ํ‚น ํ…œํ”Œ๋ฆฟ + - KPI ๋ฐ ๋ชฉํ‘œ ์„ค์ • + - ๊ฐœ์„  ์•ก์…˜ ํ”Œ๋žœ + +--- + +## Integration Points + +### ๋‹ค๋ฅธ ๋ช…๋ น์–ด์™€์˜ ์—ฐ๊ณ„: + +- **From `/market.contents`**: ์ฝ˜ํ…์ธ  โ†’ ์ฑ„๋„๋ณ„ ์ตœ์ ํ™” +- **To `/market.communicate`**: ์„ฑ๊ณผ ์ข‹์€ ์ฑ„๋„ โ†’ ๋ฐ”์ด๋Ÿด ์ „๋žต +- **Feedback to `/market.customer`**: ์ฑ„๋„ ์„ฑ๊ณผ โ†’ ํƒ€๊ฒŸ ์žฌ์กฐ์ • + +--- + +## Key Principles + +### Channel Optimization: + +1. **Platform Native**: ๊ฐ ์ฑ„๋„์˜ ์–ธ์–ด๋กœ ๋งํ•˜๊ธฐ +2. **Algorithm First**: ์‚ฌ์šฉ์ž ์ „์— ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ†ต๊ณผ +3. **Test & Iterate**: 2์ฃผ๋งˆ๋‹ค A/B ํ…Œ์ŠคํŠธ +4. **Data-Driven**: ๊ฐ ๋ง๊ณ  ์ง€ํ‘œ๋กœ ๊ฒฐ์ • +5. **Consistent Voice**: ์ฑ„๋„์€ ๋‹ค๋ฅด๋˜ ๋ธŒ๋žœ๋“œ๋Š” ์ผ๊ด€ + +### Channel Anti-Patterns: + +โŒ **Copy-Paste**: ์œ ํŠœ๋ธŒ ์˜์ƒ์„ ์ธ์Šคํƒ€์— ๊ทธ๋Œ€๋กœ +โŒ **Algorithm Ignorance**: ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌด์‹œํ•˜๊ณ  ์›ํ•˜๋Š” ๋Œ€๋กœ +โŒ **Vanity Metrics**: ํŒ”๋กœ์›Œ๋งŒ ๋ณด๊ณ  ์ „ํ™˜์œจ ๋ฌด์‹œ +โŒ **Impatience**: 1์ฃผ ๋งŒ์— ํŒ๋‹จ +โŒ **Over-Optimization**: ์•Œ๊ณ ๋ฆฌ์ฆ˜๋งŒ ๋ณด๊ณ  ์‚ฌ์šฉ์ž ๋ฌด์‹œ + +--- + +## Next Steps + +### ์ด ๋ช…๋ น์–ด ์‹คํ–‰ ํ›„: + +**๐Ÿ“ ๋‹ค์Œ ๋‹จ๊ณ„: `/market.communicate`** (๋ฐ”์ด๋Ÿด & ์ปค๋ฎค๋‹ˆํ‹ฐ) +- ์ฑ„๋„ ์ตœ์ ํ™” ์™„๋ฃŒ ํ›„ ๋ฐ”์ด๋Ÿด ์ „๋žต +- ์‚ฌ์šฉ์ž ์ฐธ์—ฌ ์œ ๋„ ๋ฐ ์ž…์†Œ๋ฌธ +- ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ตฌ์ถ• + +--- + +## Version + +- **Version**: 1.0.0 +- **Created**: 2025-11-20 +- **Philosophy**: "Don't fight the algorithm. Dance with it." diff --git a/.claude/commands/market.communicate.md b/.claude/commands/market.communicate.md new file mode 100644 index 0000000..ecd4a05 --- /dev/null +++ b/.claude/commands/market.communicate.md @@ -0,0 +1,738 @@ +# market.communicate + +**๋ฐ”์ด๋Ÿด ๋งˆ์ผ€ํŒ… & ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ตฌ์ถ• ์ „๋žต ๋ช…๋ น์–ด** + +--- + +## Overview + +**This is the fourth step of the 4C Marketing Framework**: + +``` +์ €๋น„์šฉ ๋งˆ์ผ€ํŒ… 4C: +1. /market.customer โ†’ ๊ณ ๊ฐ ์„ธ๋ถ„ํ™” & ์ฑ„๋„ ์ถ”์ฒœ (๋ˆ„๊ตฌ์—๊ฒŒ, ์–ด๋””์„œ?) +2. /market.contents โ†’ ์ฝ˜ํ…์ธ  ์ „๋žต & ์žฌํ™œ์šฉ (๋ฌด์—‡์„ ๋งŒ๋“ค๊นŒ?) +3. /market.channel โ†’ ์ฑ„๋„๋ณ„ ์ตœ์ ํ™” ์ „๋žต (์–ด๋–ป๊ฒŒ ์ตœ์ ํ™”ํ• ๊นŒ?) +4. /market.communicate โ†’ ๋ฐ”์ด๋Ÿด & ์ปค๋ฎค๋‹ˆํ‹ฐ ์ „๋žต (์–ด๋–ป๊ฒŒ ํผ๋œจ๋ฆด๊นŒ?) โ† YOU ARE HERE +``` + +## Purpose + +์‚ฌ๋žŒ๋“ค์ด **์ž๋ฐœ์ ์œผ๋กœ ๊ณต์œ ํ•˜๊ณ  ์ถ”์ฒœ**ํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ , +**์ถฉ์„ฑ ์ปค๋ฎค๋‹ˆํ‹ฐ**๋ฅผ ๊ตฌ์ถ•ํ•˜์—ฌ ์ง€์† ๊ฐ€๋Šฅํ•œ ์„ฑ์žฅ ์—”์ง„์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. + +**ํ•ต์‹ฌ ์งˆ๋ฌธ**: "์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์‚ฌ๋žŒ๋“ค์ด ์•Œ์•„์„œ ์šฐ๋ฆฌ ์ œํ’ˆ์„ ํผ๋œจ๋ฆด๊นŒ?" + +--- + +## When to Use + +- `/market.channel`๋กœ ๊ธฐ๋ณธ ์ตœ์ ํ™”๋ฅผ ๋งˆ์นœ ํ›„ +- ์ดˆ๊ธฐ ๊ณ ๊ฐ 10-100๋ช…์„ ํ™•๋ณดํ•œ ํ›„ +- ๋ฐ”์ด๋Ÿด ๊ณ„์ˆ˜๋ฅผ ๋†’์ด๊ณ  ์‹ถ์„ ๋•Œ +- ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ตฌ์ถ•์ด ํ•„์š”ํ•  ๋•Œ + +--- + +## Usage + +```bash +/market.communicate +/market.communicate "focus: ๋ฐ”์ด๋Ÿด" +/market.communicate "์ปค๋ฎค๋‹ˆํ‹ฐ ๊ตฌ์ถ• ์ค‘์ " +``` + +--- + +## What I'll Do + +### 1. ๋ฐ”์ด๋Ÿด ๋ฃจํ”„ ์„ค๊ณ„ (Viral Loop) + +```markdown +## Viral Loop Framework + +### ๋ฐ”์ด๋Ÿด ๊ณ„์ˆ˜ (K-Factor) ์ดํ•ด +**๊ณต์‹**: K = i ร— c +- i (Invites): ์‚ฌ์šฉ์ž 1๋ช…์ด ์ดˆ๋Œ€ํ•˜๋Š” ํ‰๊ท  ์ธ์› +- c (Conversion): ์ดˆ๋Œ€๋ฐ›์€ ์‚ฌ๋žŒ ์ค‘ ์‹ค์ œ ๊ฐ€์ž…ํ•˜๋Š” ๋น„์œจ + +**๋ชฉํ‘œ**: K > 1 (์ž๊ฐ€ ์„ฑ์žฅ) +- K = 1.2: 100๋ช… โ†’ 120๋ช… โ†’ 144๋ช… (์„ฑ์žฅ) +- K = 0.8: 100๋ช… โ†’ 80๋ช… โ†’ 64๋ช… (์†Œ๋ฉธ) + +**Example: ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ ์•ฑ** +- i = 3๋ช… (๋™ํ˜ธํšŒ ํšŒ์›์—๊ฒŒ ๊ณต์œ ) +- c = 40% (์ดˆ๋Œ€๋ฐ›์€ ์‚ฌ๋žŒ ์ค‘ ๊ฐ€์ž…) +- K = 3 ร— 0.4 = 1.2 โœ… + + +### ๋ฐ”์ด๋Ÿด ๋ฃจํ”„ 4๋‹จ๊ณ„ + +#### Stage 1: Trigger (ํŠธ๋ฆฌ๊ฑฐ - ๊ณต์œ  ๋™๊ธฐ) +"์™œ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์„๊นŒ?" + +**๋‚ด์žฌ์  ๋™๊ธฐ (Intrinsic)** +- ๋„์›€์ฃผ๊ณ  ์‹ถ์–ด์„œ: "์นœ๊ตฌ๋“ค๋„ ํŽธํ•ด์งˆ ๊ฒƒ ๊ฐ™์•„" +- ์ž๋ž‘ํ•˜๊ณ  ์‹ถ์–ด์„œ: "๋‚˜ ์ด๋Ÿฐ ๊ฑฐ ์ฐพ์•˜์–ด" +- ์ •์ฒด์„ฑ ํ‘œํ˜„: "๋‚˜๋Š” ์ด๋Ÿฐ ๊ฑธ ์“ฐ๋Š” ์‚ฌ๋žŒ" + +**์™ธ์žฌ์  ๋™๊ธฐ (Extrinsic)** +- ๋ฆฌ์›Œ๋“œ: "์นœ๊ตฌ ์ดˆ๋Œ€ํ•˜๋ฉด ํ• ์ธ" +- ํ•„์š”์„ฑ: "์ดˆ๋Œ€ํ•ด์•ผ ๊ธฐ๋Šฅ ํ•ด๊ธˆ" +- ๊ฒฝ์Ÿ: "์ถ”์ฒœ ์ˆœ์œ„ 1์œ„ ๋˜๊ธฐ" + +**ํ…Œ๋‹ˆ์Šค ์•ฑ ์˜ˆ์‹œ**: +โœ… ๋‚ด์žฌ์ : "์šฐ๋ฆฌ ๋™ํ˜ธํšŒ ํšŒ์›๋“ค ํŽธํ•˜๊ฒŒ ํ•ด์ฃผ๊ณ  ์‹ถ๋‹ค" +โœ… ์™ธ์žฌ์ : "์นœ๊ตฌ ์ดˆ๋Œ€ 1๋ช…๋‹น 1ํšŒ ์˜ˆ์•ฝ ๋ฌด๋ฃŒ" + + +#### Stage 2: Sharing Mechanism (๊ณต์œ  ๋ฉ”์ปค๋‹ˆ์ฆ˜) +"์–ด๋–ป๊ฒŒ ์‰ฝ๊ฒŒ ๊ณต์œ ํ• ๊นŒ?" + +**One-Click Sharing** +- ์นดํ†ก ๊ณต์œ : "์šฐ๋ฆฌ ๋™ํ˜ธํšŒ ๋‹จํ†ก๋ฐฉ์— ๊ณต์œ " ๋ฒ„ํŠผ +- URL ๋ณต์‚ฌ: ์ž๋™์œผ๋กœ ํ• ์ธ ์ฝ”๋“œ ํฌํ•จ +- ์ธ์Šคํƒ€ ์Šคํ† ๋ฆฌ: ์˜ˆ์•ฝ ์™„๋ฃŒ ์‹œ "์Šคํ† ๋ฆฌ ๊ณต์œ " ๋ฒ„ํŠผ + +**Pre-filled Message** +``` +[์นดํ†ก ๋ฉ”์‹œ์ง€ ํ…œํ”Œ๋ฆฟ] +"๋‚˜ ์ด ์•ฑ์œผ๋กœ ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝํ•˜๋Š”๋ฐ ์ง„์งœ ํŽธํ•จ! +3์ดˆ ๋งŒ์— ์˜ˆ์•ฝ๋˜๊ณ  ์ž๋™ ํ• ์ธ๊นŒ์ง€ ๋ฐ›์•„. + +์ด ๋งํฌ๋กœ ๊ฐ€์ž…ํ•˜๋ฉด ์ฒซ ์˜ˆ์•ฝ 30% ํ• ์ธ +โ†’ [๋งํฌ + ๋‚ด ์ถ”์ฒœ ์ฝ”๋“œ]" +``` + +**Social Proof Display** +- "์ด๋ฏธ 500๋ช…์ด ์ด ์•ฑ์œผ๋กœ ์˜ˆ์•ฝํ–ˆ์–ด์š”" +- "OO๋‹˜ ์™ธ 25๋ช…์ด ์‚ฌ์šฉ ์ค‘" + + +#### Stage 3: Landing (๋žœ๋”ฉ - ์ดˆ๋Œ€๋ฐ›์€ ์‚ฌ๋žŒ ๊ฒฝํ—˜) +"์ดˆ๋Œ€๋ฐ›์€ ์‚ฌ๋žŒ์ด ๋ญ˜ ๋ณด๋‚˜?" + +**์ „์šฉ ๋žœ๋”ฉ ํŽ˜์ด์ง€** +``` +[ํ™”๋ฉด] +๐ŸŽพ OO๋‹˜์ด ์ถ”์ฒœํ•œ ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ ์•ฑ + +"OO๋‹˜์ฒ˜๋Ÿผ 3์ดˆ ๋งŒ์— ์˜ˆ์•ฝํ•˜๊ณ  +์ฒซ ์˜ˆ์•ฝ 30% ํ• ์ธ๋ฐ›์œผ์„ธ์š”" + +[๋ฒ„ํŠผ] ์ง€๊ธˆ ์‹œ์ž‘ํ•˜๊ธฐ (ํ• ์ธ ์ž๋™ ์ ์šฉ) + +[ํ•˜๋‹จ] +์ด๋ฏธ 500๋ช…์ด ์‚ฌ์šฉ ์ค‘ โญโญโญโญโญ +``` + +**Trust Signal** +- ์ถ”์ฒœ์ธ ์ด๋ฆ„ ํ‘œ์‹œ (์‹ ๋ขฐ ๊ตฌ์ถ•) +- ํ• ์ธ ํ˜œํƒ ๋ช…ํ™•ํžˆ (์ฆ‰์‹œ ๊ฐ€์น˜) +- ์‚ฌํšŒ์  ์ฆ๊ฑฐ (์•ˆ์‹ฌ) + + +#### Stage 4: Hook (ํ›… - ๋‹ค์‹œ ๊ณต์œ ํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ) +"๊ฐ€์ž…ํ•œ ์‚ฌ๋žŒ๋„ ๋˜ ๊ณต์œ ํ•˜๊ฒŒ" + +**First Use Magic Moment** +- ์ฒซ ์˜ˆ์•ฝ ์™„๋ฃŒ ์‹œ: "์นœ๊ตฌ์—๊ฒŒ๋„ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์–ด์š”?" +- ํ• ์ธ ๋ฐ›์•˜์„ ๋•Œ: "์นœ๊ตฌ๋„ 30% ํ• ์ธ ๋ฐ›๊ฒŒ ๊ณต์œ " + +**Gamification** +- ์ถ”์ฒœ ๋ฆฌ๋”๋ณด๋“œ: "์ด๋ฒˆ ๋‹ฌ Top 10 ์ถ”์ฒœ์ธ" +- ๋ฐฐ์ง€ ์‹œ์Šคํ…œ: "5๋ช… ์ดˆ๋Œ€ โ†’ ๊ณจ๋“œ ํšŒ์›" +- ๋‹จ๊ณ„๋ณ„ ๋ฆฌ์›Œ๋“œ: "3๋ช…/10๋ช…/30๋ช… ๋‹ฌ์„ฑ ์‹œ ๋ณด์ƒ" + + +### ๋ฐ”์ด๋Ÿด ์ „๋žต ์œ ํ˜• + +#### 1. Incentivized Referral (์ธ์„ผํ‹ฐ๋ธŒ ์ถ”์ฒœ) +**Dropbox ๋ชจ๋ธ**: "๋„ˆ๋„ ์ข‹๊ณ  ๋‚˜๋„ ์ข‹๊ณ " + +**Example: ํ…Œ๋‹ˆ์Šค ์•ฑ** +``` +์นœ๊ตฌ ์ดˆ๋Œ€ ํ”„๋กœ๊ทธ๋žจ: +- ์ดˆ๋Œ€ํ•œ ์‚ฌ๋žŒ: ๋ฌด๋ฃŒ ์˜ˆ์•ฝ๊ถŒ 1ํšŒ +- ์ดˆ๋Œ€๋ฐ›์€ ์‚ฌ๋žŒ: ์ฒซ ์˜ˆ์•ฝ 30% ํ• ์ธ + +์ดˆ๋Œ€ 10๋ช… ๋‹ฌ์„ฑ ์‹œ: +- 1๊ฐœ์›” ๋ฌด๋ฃŒ ํ”„๋ฆฌ๋ฏธ์—„ +``` + +**Pro**: ๋น ๋ฅธ ํ™•์‚ฐ +**Con**: ์ธ์„ผํ‹ฐ๋ธŒ ์ค‘๋… (์งˆ ๋‚ฎ์€ ์‚ฌ์šฉ์ž) + + +#### 2. Product-Driven Virality (์ œํ’ˆ ๊ธฐ๋ฐ˜ ๋ฐ”์ด๋Ÿด) +**Calendly ๋ชจ๋ธ**: "์ œํ’ˆ ์“ฐ๋ฉด ์ž๋™์œผ๋กœ ๋…ธ์ถœ" + +**Example: ํ…Œ๋‹ˆ์Šค ์•ฑ** +``` +์˜ˆ์•ฝ ํ™•์ธ ๋ฉ”์‹œ์ง€ (์นดํ†ก): +"OO ์ฝ”ํŠธ ์˜ˆ์•ฝ ์™„๋ฃŒ! ๐ŸŽพ +ํ† ์š”์ผ 10:00 / 2์ฝ”ํŠธ + +Made with [์•ฑ ์ด๋ฆ„] +โ†’ ๊ฐ„ํŽธ ์˜ˆ์•ฝ: [๋งํฌ]" +``` + +**Pro**: ์ž์—ฐ์Šค๋Ÿฌ์šด ๋…ธ์ถœ +**Con**: ๋А๋ฆฐ ํ™•์‚ฐ + + +#### 3. Content Virality (์ฝ˜ํ…์ธ  ๋ฐ”์ด๋Ÿด) +**BuzzFeed ๋ชจ๋ธ**: "์žฌ๋ฏธ/์œ ์šฉํ•ด์„œ ๊ณต์œ " + +**Example: ํ…Œ๋‹ˆ์Šค ์•ฑ** +``` +๊ณต์œ ํ•˜๊ณ  ์‹ถ์€ ์ฝ˜ํ…์ธ : +- "ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ๊ฐ€์„ฑ๋น„ ์ˆœ์œ„ Top 10" +- "์„œ์šธ ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์ง€๋„ (ํ• ์ธ ์ •๋ณด)" +- "๋™ํ˜ธํšŒ ์šด์˜ ๊ฟ€ํŒ ์ฒดํฌ๋ฆฌ์ŠคํŠธ PDF" +``` + +**Pro**: ์ž์—ฐ์Šค๋Ÿฌ์šด ๋ธŒ๋žœ๋“œ ๋…ธ์ถœ +**Con**: ์ฝ˜ํ…์ธ  ์ œ์ž‘ ๋น„์šฉ + + +#### 4. Social Currency (์‚ฌํšŒ์  ํ™”ํ) +**Tesla ๋ชจ๋ธ**: "์“ฐ๋Š” ๊ฒƒ ์ž์ฒด๊ฐ€ ์ž๋ž‘" + +**Example: ํ…Œ๋‹ˆ์Šค ์•ฑ** +``` +Status Symbol ๋งŒ๋“ค๊ธฐ: +- "์–ผ๋ฆฌ์–ด๋‹ตํ„ฐ ๋ฐฐ์ง€" (์ดˆ๊ธฐ 100๋ช…) +- "VIP ํšŒ์›" (์ถ”์ฒœ 10๋ช… ์ด์ƒ) +- "๋™ํ˜ธํšŒ ์˜คํ”ผ์…œ" (๋‹จ์ฒด ๊ฐ€์ž…) + +โ†’ SNS์— ์ธ์ฆํ•˜๊ณ  ์‹ถ๊ฒŒ ๋งŒ๋“ค๊ธฐ +``` + +**Pro**: ์ถฉ์„ฑ๋„ ๋†’์€ ์‚ฌ์šฉ์ž +**Con**: ํฌ์ง€์…”๋‹ ํ•„์š” +``` + +### 2. ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ตฌ์ถ• (Community Building) + +```markdown +## Community Strategy + +### ์ปค๋ฎค๋‹ˆํ‹ฐ ์„ฑ์žฅ 4๋‹จ๊ณ„ + +#### Phase 1: Seed (์”จ์•— ๋ฟŒ๋ฆฌ๊ธฐ) +**๋ชฉํ‘œ**: ์ฒซ 10-50๋ช…์˜ ์ŠˆํผํŒฌ ํ™•๋ณด + +**์ „๋žต**: +1. **Hand-Pick Early Members** + - ๊ฐ€์žฅ ์—ด์„ฑ์ ์ธ ์‚ฌ์šฉ์ž ์ง์ ‘ ์ดˆ๋Œ€ + - DM์œผ๋กœ 1:1 ๊ด€๊ณ„ ํ˜•์„ฑ + - "VIP ๋ฒ ํƒ€ ์ปค๋ฎค๋‹ˆํ‹ฐ" ๋А๋‚Œ + +2. **Private Space ์ œ๊ณต** + - ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ OR ๋””์Šค์ฝ”๋“œ + - ์šด์˜์ง„๊ณผ ์ง์ ‘ ์†Œํ†ต ๊ฐ€๋Šฅ + - ์ œํ’ˆ ๊ฐœ์„ ์— ์˜๊ฒฌ ๋ฐ˜์˜ + +3. **Exclusive Benefits** + - ์‹ ๊ธฐ๋Šฅ ๋ฏธ๋ฆฌ ์ฒดํ—˜ + - ํ”ผ๋“œ๋ฐฑ ์ฆ‰์‹œ ๋ฐ˜์˜ + - ํŠน๋ณ„ ํ• ์ธ/์ด๋ฒคํŠธ + +**Example: ํ…Œ๋‹ˆ์Šค ์•ฑ** +``` +[DM ๋ฉ”์‹œ์ง€] +"OO๋‹˜, ์•ฑ ์ž์ฃผ ์ด์šฉํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! + +ํ˜น์‹œ 'ํ…Œ๋‹ˆ์Šค ๋งค๋‹ˆ์•„ VIP ํ†ก๋ฐฉ'์— ์ดˆ๋Œ€ํ•ด๋“œ๋ ค๋„ ๋ ๊นŒ์š”? +- ์‹ ๊ธฐ๋Šฅ ๋ฏธ๋ฆฌ ์ฒดํ—˜ +- ํ”ผ๋“œ๋ฐฑ ์ฆ‰์‹œ ๋ฐ˜์˜ +- ํšŒ์› ์ „์šฉ ์ด๋ฒคํŠธ + +์„ ์ฐฉ์ˆœ 50๋ช… ํ•œ์ •์ž…๋‹ˆ๋‹ค. +๊ด€์‹ฌ ์žˆ์œผ์‹œ๋ฉด ๋‹ต์žฅ ์ฃผ์„ธ์š” :)" +``` + + +#### Phase 2: Nurture (์„ฑ์žฅ์‹œํ‚ค๊ธฐ) +**๋ชฉํ‘œ**: 50-500๋ช…์œผ๋กœ ํ™•์žฅ + +**์ „๋žต**: +1. **Valuable Content** + - ์ฃผ 2ํšŒ ์œ ์šฉํ•œ ์ •๋ณด ๊ณต์œ  + - ์˜ˆ: "์ด๋ฒˆ ์ฃผ ํ• ์ธ ์ฝ”ํŠธ Top 5" + - ํšŒ์›๋งŒ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋…์  ์ •๋ณด + +2. **Member Spotlight** + - ๋งค์ฃผ "์ด์ฃผ์˜ ๋ฉค๋ฒ„" ์†Œ๊ฐœ + - ๋™ํ˜ธํšŒ ์šด์˜ ์‚ฌ๋ก€ ๊ณต์œ  + - ์„œ๋กœ ๋ฐฐ์šฐ๊ณ  ์—ฐ๊ฒฐ + +3. **Events & Challenges** + - "30์ผ ํ…Œ๋‹ˆ์Šค ์ฑŒ๋ฆฐ์ง€" + - ์˜คํ”„๋ผ์ธ ๋ชจ์ž„ (๋ถ„๊ธฐ 1ํšŒ) + - ํ† ๋„ˆ๋จผํŠธ ๊ฐœ์ตœ + +**Example: ํ…Œ๋‹ˆ์Šค ์•ฑ ์ปค๋ฎค๋‹ˆํ‹ฐ** +``` +[์ฃผ๊ฐ„ ๋ฃจํ‹ด] +์›”: ์ด์ฃผ์˜ ํ• ์ธ ์ฝ”ํŠธ ์ •๋ณด +์ˆ˜: ๋ฉค๋ฒ„ ์ŠคํฌํŠธ๋ผ์ดํŠธ (๋™ํ˜ธํšŒ ์†Œ๊ฐœ) +๊ธˆ: ์ฃผ๋ง ํ…Œ๋‹ˆ์Šค ํŒ +ํ† : ์ปค๋ฎค๋‹ˆํ‹ฐ ์˜คํ”„๋ผ์ธ ๋ชจ์ž„ ๊ณต์ง€ +``` + + +#### Phase 3: Empower (๊ถŒํ•œ ๋ถ€์—ฌ) +**๋ชฉํ‘œ**: ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์Šค์Šค๋กœ ์šด์˜๋˜๊ฒŒ + +**์ „๋žต**: +1. **Member-Generated Content** + - ํšŒ์›๋“ค์ด ํŒ/ํ›„๊ธฐ ์ง์ ‘ ์ž‘์„ฑ + - ๋ฒ ์ŠคํŠธ ๊ฒŒ์‹œ๊ธ€ ์„ ์ • (๋ฆฌ์›Œ๋“œ) + - ๊ณต์‹ ๋ธ”๋กœ๊ทธ์— ์ „์žฌ + +2. **Ambassador Program** + - ์ง€์—ญ๋ณ„ ์•ฐ๋ฒ„์„œ๋” (์„œ์šธ/๊ฒฝ๊ธฐ/๋ถ€์‚ฐ) + - ์˜คํ”„๋ผ์ธ ๋ชจ์ž„ ์ฃผ์ตœ ๊ถŒํ•œ + - ํŠน๋ณ„ ํ˜œํƒ (๋ฌด๋ฃŒ ํ”„๋ฆฌ๋ฏธ์—„) + +3. **Sub-Communities** + - ์ง€์—ญ๋ณ„ ์ฑ„๋„ (#์„œ์šธ #๊ฒฝ๊ธฐ #๋ถ€์‚ฐ) + - ๋ ˆ๋ฒจ๋ณ„ ์ฑ„๋„ (#์ดˆ๋ณด #์ค‘๊ธ‰ #๊ณ ๊ธ‰) + - ์ฃผ์ œ๋ณ„ ์ฑ„๋„ (#๋™ํ˜ธํšŒ์šด์˜ #์žฅ๋น„) + +**Example: ์•ฐ๋ฒ„์„œ๋” ํ”„๋กœ๊ทธ๋žจ** +``` +[๋ชจ์ง‘ ๊ณต๊ณ ] +"ํ…Œ๋‹ˆ์Šค ์•ฑ ์ง€์—ญ ์•ฐ๋ฒ„์„œ๋” ๋ชจ์ง‘ (์„œ์šธ/๊ฒฝ๊ธฐ/๋ถ€์‚ฐ)" + +์—ญํ• : +- ์ง€์—ญ ํ…Œ๋‹ˆ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฆฌ๋“œ +- ์›” 1ํšŒ ์˜คํ”„๋ผ์ธ ๋ชจ์ž„ ์ฃผ์ตœ +- ์‹ ๊ทœ ํšŒ์› ์˜จ๋ณด๋”ฉ ๋„์›€ + +ํ˜œํƒ: +- ํ”„๋ฆฌ๋ฏธ์—„ ๋ฌด๋ฃŒ (1๋…„) +- ์•ฐ๋ฒ„์„œ๋” ๋ฐฐ์ง€ +- ๋ถ„๊ธฐ๋ณ„ ์•ฐ๋ฒ„์„œ๋” ๋ฏธํŒ… (ํšŒ์‹) + +์‹ ์ฒญ: [๊ตฌ๊ธ€ ํผ] +``` + + +#### Phase 4: Scale (ํ™•์žฅ) +**๋ชฉํ‘œ**: 500๋ช…+ ์ž๊ฐ€ ์„ฑ์žฅํ•˜๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ + +**์ „๋žต**: +1. **Flywheel Effect** + - ์ปค๋ฎค๋‹ˆํ‹ฐ โ†’ ์ฝ˜ํ…์ธ  ์ƒ์‚ฐ + - ์ฝ˜ํ…์ธ  โ†’ ์‹ ๊ทœ ์œ ์ž… + - ์‹ ๊ทœ ์œ ์ž… โ†’ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฐ•ํ™” + +2. **Multi-Channel Presence** + - ๋””์Šค์ฝ”๋“œ: ์‹ค์‹œ๊ฐ„ ์†Œํ†ต + - ํŽ˜์ด์Šค๋ถ ๊ทธ๋ฃน: ์ •๋ณด ์•„์นด์ด๋ธŒ + - ์˜คํ”ˆ์ฑ„ํŒ…: ๋ผ์ดํŠธ ์œ ์ € + +3. **Self-Governance** + - ์ปค๋ฎค๋‹ˆํ‹ฐ ์šด์˜ ๊ทœ์น™ ํšŒ์›์ด ๊ฒฐ์ • + - ๋ชจ๋”๋ ˆ์ดํ„ฐ ์„ ์ถœ + - ์šด์˜์ง„์€ ๊ฐ€์ด๋“œ ์—ญํ• ๋งŒ + + +### ์ปค๋ฎค๋‹ˆํ‹ฐ ์œ ํ˜•๋ณ„ ์ „๋žต + +#### 1. ์ •๋ณด ๊ณต์œ ํ˜• (Information) +**๋ชฉ์ **: ์œ ์šฉํ•œ ์ •๋ณด ๊ตํ™˜ + +**Example: ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ DB ์ปค๋ฎค๋‹ˆํ‹ฐ** +- ์ „๊ตญ ์ฝ”ํŠธ ๋ฆฌ๋ทฐ DB +- ์ง€์—ญ๋ณ„ ์ฝ”ํŠธ ์ถ”์ฒœ +- ํ• ์ธ ์ •๋ณด ๊ณต์œ  + +**Engagement**: +- ๋ฆฌ๋ทฐ ์ž‘์„ฑ ์‹œ ํฌ์ธํŠธ +- ๋ฒ ์ŠคํŠธ ๋ฆฌ๋ทฐ ์„ ์ • (์›”๊ฐ„) +- ์ •๋ณด ๊ธฐ์—ฌ๋„ ๋ฐฐ์ง€ + + +#### 2. ๋„คํŠธ์›Œํ‚นํ˜• (Networking) +**๋ชฉ์ **: ์‚ฌ๋žŒ๊ณผ ์‚ฌ๋žŒ ์—ฐ๊ฒฐ + +**Example: ํ…Œ๋‹ˆ์Šค ๋ฉ”์ดํŠธ ์ฐพ๊ธฐ** +- ์ง€์—ญ๋ณ„ ํŒŒํŠธ๋„ˆ ๋งค์นญ +- ๋™ํ˜ธํšŒ ๋ชจ์ง‘ ๊ฒŒ์‹œํŒ +- ๋ ˆ์Šจ ์„ ์ƒ๋‹˜ ์ถ”์ฒœ + +**Engagement**: +- ์›”๊ฐ„ ์˜คํ”„๋ผ์ธ ๋ชจ์ž„ +- ๋ ˆ๋ฒจ๋ณ„ ๋งค์นญ ์ด๋ฒคํŠธ +- ์„ฑ๊ณต ๋งค์นญ ํ›„๊ธฐ ๊ณต์œ  + + +#### 3. ํ•™์Šตํ˜• (Learning) +**๋ชฉ์ **: ํ•จ๊ป˜ ๋ฐฐ์šฐ๊ณ  ์„ฑ์žฅ + +**Example: ํ…Œ๋‹ˆ์Šค ์‹ค๋ ฅ ํ–ฅ์ƒ ์ปค๋ฎค๋‹ˆํ‹ฐ** +- ์ฃผ๊ฐ„ ํ…Œ๋‹ˆ์Šค ํŒ +- ์˜์ƒ ๋ถ„์„ & ํ”ผ๋“œ๋ฐฑ +- ์˜จ๋ผ์ธ ์ฝ”์นญ ์„ธ์…˜ + +**Engagement**: +- 30์ผ ์ฑŒ๋ฆฐ์ง€ (๋งค์ผ ์—ฐ์Šต) +- ์ „ํ›„ ๋น„๊ต ์˜์ƒ ๊ณต์œ  +- ์‹ค๋ ฅ ํ–ฅ์ƒ ์ธ์ฆ + + +#### 4. ์ง€์ง€ํ˜• (Support) +**๋ชฉ์ **: ์„œ๋กœ ๊ฒฉ๋ คํ•˜๊ณ  ์‘์› + +**Example: ํ…Œ๋‹ˆ์Šค ๋ผ์ดํ”„ ์ปค๋ฎค๋‹ˆํ‹ฐ** +- ์šด๋™ ์ผ์ง€ ๊ณต์œ  +- ๋ชฉํ‘œ ๋‹ฌ์„ฑ ์ถ•ํ•˜ +- ์Šฌ๋Ÿผํ”„ ๊ทน๋ณต ๊ฒฉ๋ ค + +**Engagement**: +- ์ฃผ๊ฐ„ ๋ชฉํ‘œ ๊ณต์œ  ์Šค๋ ˆ๋“œ +- ๋‹ฌ์„ฑ ์‹œ ์ถ•ํ•˜ ๋Œ“๊ธ€ +- ์Šฌ๋Ÿผํ”„ ๊ทน๋ณต ์Šคํ† ๋ฆฌ +``` + +### 3. ๋ฐ”์ด๋Ÿด ํŠธ๋ฆฌ๊ฑฐ (Shareability) + +```markdown +## What Makes Content Shareable? + +### STEPPS Framework (Jonah Berger) + +#### 1. Social Currency (์‚ฌํšŒ์  ํ™”ํ) +"๊ณต์œ ํ•˜๋ฉด ๋‚˜๋„ ๋ฉ‹์ ธ ๋ณด์—ฌ" + +**์ „๋žต**: +- ์ธ์‚ฌ์ด๋” ์ •๋ณด: "์•„๋Š” ์‚ฌ๋žŒ๋งŒ ์•„๋Š”" +- ํฌ์†Œ์„ฑ: "์„ ์ฐฉ์ˆœ 100๋ช…" +- ์„ฑ์ทจ๊ฐ: "๋‚˜ ์ด๊ฑฐ ์„ฑ๊ณตํ–ˆ์–ด" + +**Example**: +โŒ "ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ ์™„๋ฃŒ" +โœ… "์ˆจ์€ ๊ฐ€์„ฑ๋น„ ์ฝ”ํŠธ ๋ฐœ๊ฒฌ! (์ผ๋ฐ˜์ธ ์ถœ์ž…๊ธˆ์ง€ ๊ตฌ์—ญ)" + + +#### 2. Triggers (ํŠธ๋ฆฌ๊ฑฐ) +"์ž์ฃผ ์ƒ๊ฐ๋‚˜๊ฒŒ ๋งŒ๋“ค๊ธฐ" + +**์ „๋žต**: +- ์ผ์ƒ๊ณผ ์—ฐ๊ฒฐ: "์ฃผ๋ง๋งˆ๋‹ค" +- ๋ฐ˜๋ณต ๋…ธ์ถœ: "๋งค์ฃผ ํ† ์š”์ผ ์•Œ๋ฆผ" +- ์žฅ์†Œ ์—ฐ๋™: "์ฝ”ํŠธ ๊ทผ์ฒ˜ ๊ฐ€๋ฉด ์•Œ๋ฆผ" + +**Example**: +- ๊ธˆ์š”์ผ ์ €๋… ํ‘ธ์‹œ: "๋‚ด์ผ ํ…Œ๋‹ˆ์Šค ์น˜์‹œ๋‚˜์š”? ๐Ÿ˜Š" +- ์œ„์น˜ ๊ธฐ๋ฐ˜: "OO ์ฝ”ํŠธ ๊ทผ์ฒ˜์— ๊ณ„์‹œ๋„ค์š”. ์˜ˆ์•ฝํ•˜์‹œ๊ฒ ์–ด์š”?" + + +#### 3. Emotion (๊ฐ์ •) +"๊ฐ•ํ•œ ๊ฐ์ •์„ ์œ ๋ฐœ" + +**High-Arousal Emotions** (๊ณต์œ  โ†‘): +- ๊ฒฝ์™ธ (Awe): "์™€... ์ด๋Ÿฐ ๊ฒŒ ์žˆ์—ˆ์–ด?" +- ํฅ๋ถ„ (Excitement): "๋Œ€๋ฐ•! 30% ํ• ์ธ!" +- ๋ถ„๋…ธ (Anger): "์ด ์‚ฌ์‹ค ์•„๋ฌด๋„ ์•ˆ ์•Œ๋ ค์คฌ์–ด?" +- ๋ถˆ์•ˆ (Anxiety): "์ด๊ฑฐ ๋†“์น˜๋ฉด ์†ํ•ด" + +**Low-Arousal Emotions** (๊ณต์œ  โ†“): +- ์Šฌํ”” (Sadness) +- ๋งŒ์กฑ (Contentment) + +**Example**: +โŒ "ํŽธ๋ฆฌํ•œ ์˜ˆ์•ฝ ์•ฑ์ž…๋‹ˆ๋‹ค" (Low) +โœ… "์™œ ์ง„์ž‘ ์ด๊ฑธ ์•ˆ ๋งŒ๋“ค์—ˆ์ง€? 10๋…„ ์†ํ•ด๋ดค๋„ค" (Anger โ†’ ๊ณต์œ ) + + +#### 4. Public (๊ณต๊ฐœ์„ฑ) +"๋‚จ๋“ค์ด ์“ฐ๋Š” ๊ฒŒ ๋ณด์—ฌ์•ผ ํ•จ" + +**์ „๋žต**: +- ๋ธŒ๋žœ๋”ฉ ๋ช…ํ™•ํžˆ: ์˜ˆ์•ฝ ํ™•์ธ์„œ์— ๋กœ๊ณ  +- ๊ณต๊ฐœ์  ์‚ฌ์šฉ: SNS ๊ณต์œ  ์œ ๋„ +- Observable: "์ด๋ฏธ 500๋ช… ์‚ฌ์šฉ ์ค‘" + +**Example**: +- ์ธ์Šคํƒ€ ์Šคํ† ๋ฆฌ ๊ณต์œ  ์‹œ ์ž๋™ ๋ฐฐ๊ฒฝ ํ…œํ”Œ๋ฆฟ +- "OO๋‹˜์ด [์•ฑ ์ด๋ฆ„]์œผ๋กœ ์˜ˆ์•ฝํ–ˆ์–ด์š”" (์นœ๊ตฌ ํ”ผ๋“œ) + + +#### 5. Practical Value (์‹ค์šฉ์  ๊ฐ€์น˜) +"์ง„์งœ ๋„์›€์ด ๋˜๋‹ˆ๊นŒ ๊ณต์œ " + +**์ „๋žต**: +- ๋ˆ ์ ˆ์•ฝ: "30% ํ• ์ธ" +- ์‹œ๊ฐ„ ์ ˆ์•ฝ: "30๋ถ„ โ†’ 3์ดˆ" +- ๋ฌธ์ œ ํ•ด๊ฒฐ: "๋งŒ์„ ์ŠคํŠธ๋ ˆ์Šค ํ•ด๊ฒฐ" + +**Example**: +โœ… "์นœ๊ตฌ์•ผ, ์ด๊ฑฐ ์“ฐ๋ฉด ํ•œ ๋‹ฌ์— 1๋งŒ์› ์•„๋‚€๋‹ค" +โœ… "์šฐ๋ฆฌ ๋™ํ˜ธํšŒ ์˜ˆ์•ฝ ๊ด€๋ฆฌ ์ด๊ฑธ๋กœ ํ•˜์ž" + + +#### 6. Stories (์Šคํ† ๋ฆฌ) +"์ด์•ผ๊ธฐ ์†์— ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋…น์ด๊ธฐ" + +**์ „๋žต**: +- Before/After ์Šคํ† ๋ฆฌ +- ์‹คํŒจ๋‹ด โ†’ ์„ฑ๊ณต๋‹ด +- ์œ ๋จธ๋Ÿฌ์Šคํ•œ ์—ํ”ผ์†Œ๋“œ + +**Example**: +``` +"์ง€๋‚œ์ฃผ ํ† ์š”์ผ ์•„์นจ 7์‹œ. +5๊ฐœ ์ฝ”ํŠธ์— ์ „ํ™”ํ–ˆ์ง€๋งŒ ์ „๋ถ€ ๋งŒ์„. + +๊ฒฐ๊ตญ ํ…Œ๋‹ˆ์Šค ๋ชป ์น˜๊ณ  ์ง‘์—์„œ ๋„ทํ”Œ๋ฆญ์Šค... + +๊ทธ๋Ÿฐ๋ฐ ์นœ๊ตฌ๊ฐ€ ์ด ์•ฑ ์•Œ๋ ค์ค˜์„œ ์ด๋ฒˆ ์ฃผ์—” +3์ดˆ ๋งŒ์— ์˜ˆ์•ฝ ์„ฑ๊ณต! ๐ŸŽพ + +ํ† ์š”์ผ ์•„์นจ ์ƒ์พŒํ•˜๊ฒŒ ์šด๋™ ๋‹ค๋…€์™”์Šต๋‹ˆ๋‹ค ใ…Žใ…Ž" +``` + +โ†’ ์Šคํ† ๋ฆฌ ์ž์ฒด๊ฐ€ ์žฌ๋ฏธ์žˆ์–ด์„œ ๊ณต์œ ๋จ +``` + +### 4. Growth Hacking Tactics (์ €๋น„์šฉ ๊ณ ํšจ์œจ) + +```markdown +## Tactical Playbook + +### Tactic 1: Launch on Product Hunt +**Cost**: $0 +**Effort**: ์ค‘ +**Impact**: ์ค‘-๊ณ  + +**How**: +1. Product Hunt ๊ณ„์ • ์ƒ์„ฑ +2. ์ถœ์‹œ์ผ 2์ฃผ ์ „ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ฐธ์—ฌ (์‹ ๋ขฐ ๊ตฌ์ถ•) +3. ์ถœ์‹œ ๋‹น์ผ 00:01 (PST) ๋“ฑ๋ก +4. ์ฒซ 6์‹œ๊ฐ„์ด ์Šน๋ถ€ (์นœ๊ตฌ๋“ค์—๊ฒŒ Upvote ๋ถ€ํƒ) +5. ๋Œ“๊ธ€์— ์„ฑ์‹คํžˆ ๋‹ต๋ณ€ + +**Goal**: Daily Top 5 โ†’ ํŠธ๋ž˜ํ”ฝ 1,000+ + + +### Tactic 2: Guest Posting +**Cost**: $0 +**Effort**: ๊ณ  +**Impact**: ์ค‘ + +**How**: +1. ํƒ€๊ฒŸ ๋ธ”๋กœ๊ทธ/๋ฏธ๋””์–ด 10๊ฐœ ๋ฆฌ์ŠคํŠธ์—… +2. ๊ทธ๋“ค์˜ ๋…์ž๊ฐ€ ์›ํ•˜๋Š” ์ฃผ์ œ ๋ฆฌ์„œ์น˜ +3. ๊ฐ€์น˜ ์žˆ๋Š” ๊ฒŒ์ŠคํŠธ ํฌ์ŠคํŠธ ์ž‘์„ฑ +4. ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ œํ’ˆ ์–ธ๊ธ‰ (๊ด‘๊ณ  X) + +**Example**: +- Medium: "๋™ํ˜ธํšŒ ์šด์˜ ์ž๋™ํ™”ํ•˜๋Š” 5๊ฐ€์ง€ ๋ฐฉ๋ฒ•" +- ๋ธŒ๋Ÿฐ์น˜: "์ฃผ๋ง ์šด๋™ ๋ฃจํ‹ด ๋งŒ๋“ค๊ธฐ" +- ๋„ค์ด๋ฒ„ ํฌ์ŠคํŠธ: "ํ…Œ๋‹ˆ์Šค ์ดˆ๋ณด ๊ฐ€์ด๋“œ" + + +### Tactic 3: Micro-Influencer Outreach +**Cost**: ์ € (๋ฌด๋ฃŒ ์ฒดํ—˜ ์ œ๊ณต) +**Effort**: ์ค‘ +**Impact**: ์ค‘-๊ณ  + +**How**: +1. ํŒ”๋กœ์›Œ 1๋งŒ-5๋งŒ ๋งˆ์ดํฌ๋กœ ์ธํ”Œ๋ฃจ์–ธ์„œ ์ฐพ๊ธฐ +2. ์ง„์งœ ํ…Œ๋‹ˆ์Šค ํ•˜๋Š” ์‚ฌ๋žŒ ์„ ๋ณ„ (๊ด‘๊ณ ๋งŒ ํ•˜๋Š” ์‚ฌ๋žŒ X) +3. DM: ๋ฌด๋ฃŒ ์ฒดํ—˜ ์ œ๊ณต (๊ด‘๊ณ  ์š”์ฒญ X) +4. ์ž๋ฐœ์  ๋ฆฌ๋ทฐ ๊ธฐ๋Œ€ + +**Target**: +- ์ธ์Šคํƒ€: #ํ…Œ๋‹ˆ์Šค #ํ…Œ๋ฆฐ์ด ํ•ด์‹œํƒœ๊ทธ ์ƒ์œ„ ํฌ์Šคํ„ฐ +- ์œ ํŠœ๋ธŒ: ํ…Œ๋‹ˆ์Šค ๋ ˆ์Šจ ์ฑ„๋„ (๊ตฌ๋…์ž 1-10๋งŒ) + + +### Tactic 4: Community Takeover +**Cost**: $0 +**Effort**: ๊ณ  (์‹œ๊ฐ„ ์†Œ์š”) +**Impact**: ๊ณ  + +**How**: +1. ํƒ€๊ฒŸ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๊ฐ€์žฅ ๋„์›€ ๋˜๋Š” ์‚ฌ๋žŒ ๋˜๊ธฐ +2. 3-4์ฃผ ๋™์•ˆ ์งˆ๋ฌธ์— ์„ฑ์‹คํžˆ ๋‹ต๋ณ€ +3. ์‹ ๋ขฐ ๊ตฌ์ถ• ํ›„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ œํ’ˆ ์–ธ๊ธ‰ +4. ๊ด‘๊ณ  ์•„๋‹Œ "์ง„์งœ ๋„์›€" ์ œ๊ณต + +**Example**: +- ๋„ค์ด๋ฒ„ ์นดํŽ˜: ๋งค์ผ ์งˆ๋ฌธ 3๊ฐœ ๋‹ต๋ณ€ +- ๋ธ”๋ผ์ธ๋“œ: ๋™์•„๋ฆฌ ์šด์˜ ํŒ ๊ณต์œ  +- ๋ ˆ๋”ง: r/tennis์—์„œ ํ™œ๋™ + + +### Tactic 5: Controversy Marketing (์•ˆ์ „ํ•œ ๋…ผ๋ž€) +**Cost**: $0 +**Effort**: ์ค‘ +**Impact**: ๊ณ  (๋ฆฌ์Šคํฌ ์žˆ์Œ) + +**How**: +1. ์—…๊ณ„ ํ†ต๋…์— ๋ฐ˜๋Œ€ ์˜๊ฒฌ ์ œ์‹œ +2. ๋…ผ๋ž€ ์œ ๋ฐœ (ํ•˜์ง€๋งŒ ์‚ฌ์‹ค ๊ธฐ๋ฐ˜) +3. ๋Œ“๊ธ€๋กœ ํ† ๋ก  ์œ ๋„ +4. ์ œํ’ˆ์œผ๋กœ ํ•ด๊ฒฐ์ฑ… ์ œ์‹œ + +**Example**: +``` +[์ œ๋ชฉ] "ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์ „ํ™” ์˜ˆ์•ฝ์ด ๋” ๋น ๋ฅด๋‹ค๋Š” ๊ฑด ๊ฑฐ์ง“๋ง์ž…๋‹ˆ๋‹ค" + +[๋ณธ๋ฌธ] +"์•ฑ ์˜ˆ์•ฝ์ด ๋А๋ฆฌ๋‹ค"๋Š” ๋ง ๋งŽ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. +์‹ค์ œ๋กœ ์ธก์ •ํ•ด๋ดค์Šต๋‹ˆ๋‹ค. + +์ „ํ™” ์˜ˆ์•ฝ: +- ๋Œ€๊ธฐ ์‹œ๊ฐ„: ํ‰๊ท  7๋ถ„ +- ํ†ตํ™” ์‹œ๊ฐ„: 3๋ถ„ +- ์žฌํ™•์ธ ์ „ํ™”: 2๋ถ„ +โ†’ ์ด 12๋ถ„ + +์•ฑ ์˜ˆ์•ฝ: +- ๊ฒ€์ƒ‰: 30์ดˆ +- ์„ ํƒ: 10์ดˆ +- ๊ฒฐ์ œ: 20์ดˆ +โ†’ ์ด 1๋ถ„ + +12๋ฐฐ ์ฐจ์ด์ž…๋‹ˆ๋‹ค. + +[๋ฐ์ดํ„ฐ ๊ทธ๋ž˜ํ”„ ์ฒจ๋ถ€] + +์•„์ง๋„ ์ „ํ™”๊ฐ€ ๋น ๋ฅด๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹œ๋‚˜์š”? +``` + +โ†’ ๋…ผ๋ž€ โ†’ ๋Œ“๊ธ€ ํญ๋ฐœ โ†’ ๋ฐ”์ด๋Ÿด + + +### Tactic 6: Waitlist + FOMO +**Cost**: $0 +**Effort**: ํ•˜ +**Impact**: ์ค‘ + +**How**: +1. ์ •์‹ ์ถœ์‹œ ์ „ "๋Œ€๊ธฐ์ž ๋ช…๋‹จ" ์šด์˜ +2. "์„ ์ฐฉ์ˆœ 100๋ช…๋งŒ" ๋ฉ”์‹œ์ง€ +3. ์‹ค์‹œ๊ฐ„ ์นด์šดํ„ฐ: "ํ˜„์žฌ 73/100" +4. ์†Œ์…œ ์ฆ๊ฑฐ: "OO๋‹˜ ์™ธ 72๋ช… ๋Œ€๊ธฐ ์ค‘" + +**Psychology**: ํฌ์†Œ์„ฑ + ์‚ฌํšŒ์  ์ฆ๊ฑฐ โ†’ ์ฆ‰์‹œ ๊ฐ€์ž… + + +### Tactic 7: Challenge/Event +**Cost**: ์ € (๊ฒฝํ’ˆ) +**Effort**: ์ค‘ +**Impact**: ์ค‘-๊ณ  + +**How**: +1. 30์ผ ์ฑŒ๋ฆฐ์ง€ ๊ธฐํš +2. SNS ์ธ์ฆ ์œ ๋„ (#OO์ฑŒ๋ฆฐ์ง€) +3. ์šฐ์ˆ˜ ์ฐธ๊ฐ€์ž ๊ฒฝํ’ˆ (์•ฑ ๋‚ด ํ˜œํƒ) +4. ์ฐธ๊ฐ€์ž๋“ค์ด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ฐ”์ด๋Ÿด + +**Example**: +``` +"30์ผ ์ฃผ๋ง ํ…Œ๋‹ˆ์Šค ์ฑŒ๋ฆฐ์ง€" + +์ฐธ์—ฌ ๋ฐฉ๋ฒ•: +1. ์•ฑ์œผ๋กœ ์ฝ”ํŠธ ์˜ˆ์•ฝ +2. ํ…Œ๋‹ˆ์Šค ์ธ์ฆ์ƒท ์ธ์Šคํƒ€ ์—…๋กœ๋“œ +3. #์ฃผ๋งํ…Œ๋‹ˆ์Šค์ฑŒ๋ฆฐ์ง€ ํƒœ๊ทธ + +์šฐ์ˆ˜ ์ฐธ์—ฌ์ž (5๋ช…): +- 3๊ฐœ์›” ํ”„๋ฆฌ๋ฏธ์—„ ๋ฌด๋ฃŒ +- ํ…Œ๋‹ˆ์Šค ์šฉํ’ˆ ์„ธํŠธ +``` +``` + +--- + +## Output Files + +### ์ƒ์„ฑ๋  ํŒŒ์ผ๋“ค: + +1. **`docs/market/viral-loop-design.md`** + - ๋ฐ”์ด๋Ÿด ๊ณ„์ˆ˜ ๊ณ„์‚ฐ + - 4๋‹จ๊ณ„ ๋ฐ”์ด๋Ÿด ๋ฃจํ”„ + - ์ „๋žต ์œ ํ˜•๋ณ„ ์‹คํ–‰ ๊ณ„ํš + +2. **`docs/market/community-playbook.md`** + - ์ปค๋ฎค๋‹ˆํ‹ฐ ์„ฑ์žฅ 4๋‹จ๊ณ„ + - ์œ ํ˜•๋ณ„ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ „๋žต + - ์•ฐ๋ฒ„์„œ๋” ํ”„๋กœ๊ทธ๋žจ ์„ค๊ณ„ + +3. **`docs/market/growth-hacking-tactics.md`** + - 7๊ฐ€์ง€ ์ €๋น„์šฉ ์ „์ˆ  + - ์‹คํ–‰ ์ฒดํฌ๋ฆฌ์ŠคํŠธ + - ์„ฑ๊ณผ ์ธก์ • ๋ฐฉ๋ฒ• + +--- + +## Integration Points + +### ๋‹ค๋ฅธ ๋ช…๋ น์–ด์™€์˜ ์—ฐ๊ณ„: + +- **From `/market.channel`**: ์„ฑ๊ณผ ์ข‹์€ ์ฑ„๋„ โ†’ ๋ฐ”์ด๋Ÿด ์ „๋žต ์ง‘์ค‘ +- **From `/market.contents`**: ์ฝ˜ํ…์ธ  โ†’ ๊ณต์œ  ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋ณ€ํ˜• +- **Feedback to all**: ๋ฐ”์ด๋Ÿด/์ปค๋ฎค๋‹ˆํ‹ฐ ์ธ์‚ฌ์ดํŠธ โ†’ ์ „๋žต ๊ฐœ์„  + +--- + +## Key Principles + +### Viral Marketing: + +1. **Built-in, Not Bolted-on**: ์ œํ’ˆ์— ๋ฐ”์ด๋Ÿด ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๋‚ด์žฅ +2. **Incentive Alignment**: ๊ณต์œ ์ž์™€ ํ”ผ๊ณต์œ ์ž ๋ชจ๋‘ ์ด๋“ +3. **Frictionless Sharing**: ํด๋ฆญ 1-2๋ฒˆ์œผ๋กœ ๊ณต์œ  ๊ฐ€๋Šฅ +4. **Social Proof**: ์ด๋ฏธ ๋งŽ์€ ์‚ฌ๋žŒ์ด ์“ด๋‹ค๋Š” ์ฆ๊ฑฐ +5. **FOMO > FOJI**: ๋†“์น˜๊ธฐ ์‹ซ์Œ > ์ฐธ์—ฌํ•˜๊ณ  ์‹ถ์Œ + +### Community Building: + +1. **Start Small**: 10๋ช…์˜ ์ŠˆํผํŒฌ > 100๋ช…์˜ ๊ด€์‹ฌ๋Ÿฌ +2. **Exclusive First**: VIP ๋А๋‚Œ์œผ๋กœ ์‹œ์ž‘ +3. **Give Before Ask**: ๊ฐ€์น˜๋ฅผ ๋จผ์ € ์ œ๊ณต +4. **Empower Members**: ๊ถŒํ•œ ์œ„์ž„ โ†’ ์ฃผ์ธ์˜์‹ +5. **Long-term Game**: 6๊ฐœ์›”-1๋…„ ํ˜ธํก + +### Anti-Patterns: + +โŒ **Spam**: ๋ฌด๋ถ„๋ณ„ํ•œ ํ™๋ณด +โŒ **Fake Scarcity**: ๊ฑฐ์ง“ ํฌ์†Œ์„ฑ ("์„ ์ฐฉ์ˆœ 100๋ช…" ์‹ค์ œ๋ก  ๋ฌด์ œํ•œ) +โŒ **Forced Sharing**: ๊ณต์œ  ์•ˆ ํ•˜๋ฉด ๊ธฐ๋Šฅ ์ œํ•œ (์—ญํšจ๊ณผ) +โŒ **Ignoring Community**: ๋งŒ๋“ค๊ณ  ๋ฐฉ์น˜ +โŒ **Only Incentives**: ๋ˆ์œผ๋กœ๋งŒ ์œ ๋„ (์ง„์งœ ํŒฌ ์•ˆ ์ƒ๊น€) + +--- + +## Next Steps + +### ์ด ๋ช…๋ น์–ด ์‹คํ–‰ ํ›„: + +**๐ŸŽฏ 4C Marketing ์™„์„ฑ!** + +์ด์ œ ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์„ธ์š”: +1. **Week 1-2**: `/market.customer` ๊ธฐ๋ฐ˜์œผ๋กœ ํƒ€๊ฒŸ ์ฑ„๋„ ์ง„์ž… +2. **Week 3-4**: `/market.contents` ๊ธฐ๋ฐ˜์œผ๋กœ ์ฝ˜ํ…์ธ  ์ œ์ž‘ & ๋ฐฐํฌ +3. **Week 5-6**: `/market.channel` ๊ธฐ๋ฐ˜์œผ๋กœ ์„ฑ๊ณผ ์ธก์ • & ์ตœ์ ํ™” +4. **Week 7-8**: `/market.communicate` ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ”์ด๋Ÿด & ์ปค๋ฎค๋‹ˆํ‹ฐ ์‹œ์ž‘ + +**๐Ÿ“ ๋‹ค์Œ ์ฒดํฌํฌ์ธํŠธ**: 4์ฃผ ํ›„ +- ์ฒซ 100๋ช… ํ™•๋ณดํ–ˆ๋‚˜? +- ๋ฐ”์ด๋Ÿด ๊ณ„์ˆ˜ K > 1์ธ๊ฐ€? +- ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™œ์„ฑํ™”๋˜๊ณ  ์žˆ๋‚˜? + +--- + +## Version + +- **Version**: 1.0.0 +- **Created**: 2025-11-20 +- **Philosophy**: "The best marketing doesn't feel like marketing. It feels like a friend's recommendation." diff --git a/.claude/commands/market.contents.md b/.claude/commands/market.contents.md new file mode 100644 index 0000000..697dc54 --- /dev/null +++ b/.claude/commands/market.contents.md @@ -0,0 +1,589 @@ +# market.contents + +**ํ•˜๋‚˜์˜ ํ•ต์‹ฌ ๋ฉ”์‹œ์ง€๋ฅผ 10๊ฐ€์ง€ ์ฝ˜ํ…์ธ ๋กœ ์žฌํ™œ์šฉํ•˜๋Š” ์ „๋žต ๋ช…๋ น์–ด** + +--- + +## Overview + +**This is the second step of the 4C Marketing Framework**: + +``` +์ €๋น„์šฉ ๋งˆ์ผ€ํŒ… 4C: +1. /market.customer โ†’ ๊ณ ๊ฐ ์„ธ๋ถ„ํ™” & ์ฑ„๋„ ์ถ”์ฒœ (๋ˆ„๊ตฌ์—๊ฒŒ, ์–ด๋””์„œ?) +2. /market.contents โ†’ ์ฝ˜ํ…์ธ  ์ „๋žต & ์žฌํ™œ์šฉ (๋ฌด์—‡์„ ๋งŒ๋“ค๊นŒ?) โ† YOU ARE HERE +3. /market.channel โ†’ ์ฑ„๋„๋ณ„ ์ตœ์ ํ™” ์ „๋žต (์–ด๋–ป๊ฒŒ ์ตœ์ ํ™”ํ• ๊นŒ?) +4. /market.communicate โ†’ ๋ฐ”์ด๋Ÿด & ์ปค๋ฎค๋‹ˆํ‹ฐ ์ „๋žต (์–ด๋–ป๊ฒŒ ํผ๋œจ๋ฆด๊นŒ?) +``` + +## Purpose + +ํ•˜๋‚˜์˜ **ํ•ต์‹ฌ ๊ฐ€์น˜ ๋ฉ”์‹œ์ง€**๋ฅผ ํŒŒ์•…ํ•˜๊ณ , ์ด๋ฅผ ๋‹ค์–‘ํ•œ ์ฑ„๋„๊ณผ ํฌ๋งท์œผ๋กœ ๋ณ€์ฃผํ•˜์—ฌ +**์ตœ์†Œ ๋…ธ๋ ฅ์œผ๋กœ ์ตœ๋Œ€ ์ฝ˜ํ…์ธ **๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. + +**ํ•ต์‹ฌ ์งˆ๋ฌธ**: "์šฐ๋ฆฌ ์ œํ’ˆ์˜ ONE ๋ฉ”์‹œ์ง€๋Š” ๋ญ๊ณ , ์ด๊ฑธ 10๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ์–ด๋–ป๊ฒŒ ๋งํ• ๊นŒ?" + +--- + +## When to Use + +- `/market.customer`๋กœ ํƒ€๊ฒŸ ์ฑ„๋„์„ ์ •ํ•œ ํ›„ +- ์ฝ˜ํ…์ธ  ์ œ์ž‘ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ถ€์กฑํ•  ๋•Œ +- ์ฑ„๋„๋งˆ๋‹ค ๋‹ค๋ฅธ ์ฝ˜ํ…์ธ ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•  ๋•Œ +- ์ผ๊ด€๋œ ๋ธŒ๋žœ๋“œ ๋ฉ”์‹œ์ง€๊ฐ€ ํ•„์š”ํ•  ๋•Œ + +--- + +## Usage + +```bash +/market.contents +/market.contents "ํ•ต์‹ฌ ๋ฉ”์‹œ์ง€: 3์ดˆ ๋งŒ์— ์ฝ”ํŠธ ์˜ˆ์•ฝ" +/market.contents "focus: ์‹œ๊ฐ„ ์ ˆ์•ฝ" +``` + +--- + +## What I'll Do + +### 1. Core Message ์ถ”์ถœ + +```markdown +## Core Message Extraction + +### Input Sources +- `docs/appkit/value-proposition.md` โ†’ ํ•ต์‹ฌ ๊ฐ€์น˜ +- `docs/appkit/sales-landing.md` โ†’ ๋ฉ”์ธ ๋ฉ”์‹œ์ง€ +- `docs/market/customer-segments.md` โ†’ ๊ณ ๊ฐ Pain Point + +### The ONE Thing +"๋งŒ์•ฝ ๊ณ ๊ฐ์ด 5์ดˆ ์•ˆ์— ์šฐ๋ฆฌ ์ œํ’ˆ์„ ์„ค๋ช…ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ๋ญ๋ผ๊ณ  ํ• ๊นŒ?" + +#### Example: ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ ์•ฑ +Before (๊ธฐ๋Šฅ ๋‚˜์—ด): +โŒ "์ฝ”ํŠธ ๊ฒ€์ƒ‰, ์˜ˆ์•ฝ, ๊ฒฐ์ œ, ํ• ์ธ, ๋ฆฌ๋ทฐ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์•ฑ" + +After (๊ฐ€์น˜ ์ค‘์‹ฌ): +โœ… "๋งค์ฃผ 30๋ถ„ ๊ฑธ๋ฆฌ๋˜ ์ฝ”ํŠธ ์˜ˆ์•ฝ, 3์ดˆ๋กœ ๋‹จ์ถ•" + +### Message Framework: Before/After Bridge + +**Before (๊ณ ๊ฐ์˜ ํ˜„์žฌ ๊ณ ํ†ต)** +- ์ฃผ๋ง๋งˆ๋‹ค 5๊ฐœ ์ฝ”ํŠธ์— ์ „ํ™” (ํ‰๊ท  30๋ถ„) +- ์›ํ•˜๋Š” ์‹œ๊ฐ„ ๋งŒ์„์ผ ๋•Œ ํ—ˆํƒˆํ•จ +- ๋น„์‹ผ ์ •๊ฐ€๋กœ ๊ฒฐ์ œ + +**After (์ œํ’ˆ ์‚ฌ์šฉ ํ›„ ๋ณ€ํ™”)** +- ์•ฑ์œผ๋กœ 3์ดˆ ์˜ˆ์•ฝ ์™„๋ฃŒ +- ์‹ค์‹œ๊ฐ„ ๊ณต์„ ํ™•์ธ +- ์ž๋™ ํ• ์ธ 30% + +**Bridge (์ œํ’ˆ์˜ ํ•ต์‹ฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜)** +โ†’ "์‹ค์‹œ๊ฐ„ ํ†ตํ•ฉ ์˜ˆ์•ฝ ์‹œ์Šคํ…œ + AI ์ž๋™ ํ• ์ธ" +``` + +### 2. Content Pyramid (1โ†’10 ๋ณ€์ฃผ ์‹œ์Šคํ…œ) + +```markdown +## Content Pyramid: 1 Core โ†’ 10 Formats + +### Level 1: Pillar Content (๊ธฐ๋‘ฅ ์ฝ˜ํ…์ธ ) +"๊ฐ€์žฅ ์‹ฌ์ธต์ ์ด๊ณ  ์™„์ „ํ•œ ํ˜•ํƒœ" + +#### ํ˜•์‹: ์œ ํŠœ๋ธŒ ๋กฑํผ (10๋ถ„) +**์ œ๋ชฉ**: "ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ 30๋ถ„โ†’3์ดˆ๋กœ ์ค„์ธ ๋ฐฉ๋ฒ• (์‹ค์ œ ์‚ฌ์šฉ ํ›„๊ธฐ)" + +**๊ตฌ์„ฑ**: +0:00-0:30 - Hook: "๋งค์ฃผ ํ† ์š”์ผ ์•„์นจ 7์‹œ, 5๊ฐœ ์ฝ”ํŠธ์— ์ „ํ™”ํ•˜๋˜ ์ œ๊ฐ€..." +0:30-2:00 - Problem: ๊ธฐ์กด ์˜ˆ์•ฝ ๋ฐฉ์‹์˜ 3๊ฐ€์ง€ ๋ฌธ์ œ +2:00-7:00 - Solution: ์•ฑ ์‚ฌ์šฉ ์‹ค์ œ ๋ฐ๋ชจ + 3๊ฐ€์ง€ ํ•ต์‹ฌ ๊ธฐ๋Šฅ +7:00-9:00 - Results: Before/After ๋น„๊ต, ์‹ค์ œ ์ ˆ์•ฝ ์‹œ๊ฐ„ ๊ณ„์‚ฐ +9:00-10:00 - CTA: ์ฒซ ์˜ˆ์•ฝ ํ• ์ธ ์•ˆ๋‚ด + +**์‚ฐ์ถœ๋ฌผ**: 1๊ฐœ ์˜์ƒ (ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ 10๊ฐœ ์ฝ˜ํ…์ธ  ํŒŒ์ƒ) + + +### Level 2: Derivative Content (ํŒŒ์ƒ ์ฝ˜ํ…์ธ ) +"Pillar์—์„œ ์กฐ๊ฐ๋‚ด๊ธฐ" + +#### 2-1. ์œ ํŠœ๋ธŒ ์‡ผ์ธ  3๊ฐœ (๊ฐ 60์ดˆ) +**์‡ผ์ธ  #1: Problem Focused** +- ์ œ๋ชฉ: "์ฃผ๋ง๋งˆ๋‹ค ์ฝ”ํŠธ ์˜ˆ์•ฝ ์ „ํ™” 30๋ถ„์”ฉ ํ•˜๋Š” ์‚ฌ๋žŒ?" +- ๋‚ด์šฉ: 0:30-2:00 ๊ตฌ๊ฐ„ ์žฌํŽธ์ง‘ +- Hook: ๊ณต๊ฐ ์œ ๋„ โ†’ ๋ฌธ์ œ ์ œ์‹œ + +**์‡ผ์ธ  #2: Solution Demo** +- ์ œ๋ชฉ: "์ฝ”ํŠธ ์˜ˆ์•ฝ 3์ดˆ ์ปท (์‹ค์ œ ํ™”๋ฉด)" +- ๋‚ด์šฉ: 2:00-7:00 ์ค‘ ํ•ต์‹ฌ 20์ดˆ +- Hook: ๋น ๋ฅธ ๋ฐ๋ชจ โ†’ ๋†€๋ผ์›€ + +**์‡ผ์ธ  #3: Result Proof** +- ์ œ๋ชฉ: "์ด ์•ฑ์œผ๋กœ ํ•œ ๋‹ฌ์— 2์‹œ๊ฐ„ ์ ˆ์•ฝํ•จ" +- ๋‚ด์šฉ: 7:00-9:00 ์ค‘ ์ˆซ์ž ๊ฐ•์กฐ +- Hook: ๊ตฌ์ฒด์  ๊ฒฐ๊ณผ โ†’ ์‹ ๋ขฐ + + +#### 2-2. ์ธ์Šคํƒ€๊ทธ๋žจ ๋ฆด์Šค 2๊ฐœ (๊ฐ 30์ดˆ) +**๋ฆด์Šค #1: Before/After** +- ์˜์ƒ: ์ „ํ™” ์˜ˆ์•ฝ vs ์•ฑ ์˜ˆ์•ฝ ๋น„๊ต +- ์Œ์•…: ํŠธ๋ Œ๋”ฉ ์‚ฌ์šด๋“œ +- ํ…์ŠคํŠธ ์˜ค๋ฒ„๋ ˆ์ด: "Before: 30๋ถ„ / After: 3์ดˆ" + +**๋ฆด์Šค #2: 3 Tips** +- ์ œ๋ชฉ: "์ฝ”ํŠธ ์˜ˆ์•ฝ ๊ฟ€ํŒ 3๊ฐ€์ง€" +- ๋‚ด์šฉ: ํ• ์ธ๋ฐ›๋Š” ๋ฒ• / ๋น ๋ฅธ ์˜ˆ์•ฝ ๋ฒ• / ์ทจ์†Œ ๊ฟ€ํŒ + + +#### 2-3. ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŠธ 1๊ฐœ (SEO ์ตœ์ ํ™”) +**์ œ๋ชฉ**: "ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ ๋ฐฉ๋ฒ• ์ด์ •๋ฆฌ (2025๋…„ ์ตœ์‹ )" + +**๋ชฉ์ฐจ**: +1. ์ „ํ†ต ๋ฐฉ์‹ vs ์•ฑ ์˜ˆ์•ฝ ๋น„๊ต +2. ์ถ”์ฒœ ์•ฑ 3๊ฐ€์ง€ (๊ฐ๊ด€์ ์œผ๋กœ ๋ณด์ด๋˜ ์šฐ๋ฆฌ ์•ฑ 1์œ„) +3. ๋‹จ๊ณ„๋ณ„ ์˜ˆ์•ฝ ๊ฐ€์ด๋“œ (์Šคํฌ๋ฆฐ์ƒท) +4. ํ• ์ธ๋ฐ›๋Š” ๋ฒ• (์ฟ ํฐ ์ฝ”๋“œ ์‚ฝ์ž…) +5. FAQ + +**SEO ํ‚ค์›Œ๋“œ**: +- ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ +- ์„œ์šธ ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ +- ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ํ• ์ธ + +**๊ธธ์ด**: 2,000-3,000์ž (๊ตฌ๊ธ€ ์ƒ์œ„ ๋…ธ์ถœ ๋ชฉํ‘œ) + + +#### 2-4. ํŠธ์œ„ํ„ฐ ์“ฐ๋ ˆ๋“œ 1๊ฐœ (5-7๊ฐœ ํŠธ์œ—) +**์˜คํ”„๋‹ ํŠธ์œ—**: +"๋งค์ฃผ ํ† ์š”์ผ ์•„์นจ ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝํ•˜๋А๋ผ 30๋ถ„ ๋‚ ๋ฆฌ๋˜ ์ œ๊ฐ€, +์ด์ œ 3์ดˆ ๋งŒ์— ๋๋ƒ…๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ? (thread ๐Ÿ‘‡)" + +**์“ฐ๋ ˆ๋“œ ๊ตฌ์„ฑ**: +1/ ๋ฌธ์ œ: ์ „ํ™” ์˜ˆ์•ฝ์˜ ๊ณ ํ†ต +2/ ๋ฐœ๊ฒฌ: ์ด ์•ฑ์„ ์•Œ๊ฒŒ ๋œ ๊ณ„๊ธฐ +3/ ์‚ฌ์šฉ: ์‹ค์ œ ์‚ฌ์šฉ ํ›„๊ธฐ +4/ ๊ฒฐ๊ณผ: ํ•œ ๋‹ฌ ์‚ฌ์šฉ ํ›„ ๋ณ€ํ™” +5/ ํŒ: ํ• ์ธ ๋ฐ›๋Š” ๋ฒ• +6/ CTA: ๋งํฌ + ์ฒซ ์˜ˆ์•ฝ ํ• ์ธ + + +#### 2-5. ๋งํฌ๋“œ์ธ ํฌ์ŠคํŠธ 1๊ฐœ (์ „๋ฌธ๊ฐ€ ๊ด€์ ) +**ํ†ค**: ์บ์ฃผ์–ผ๋ณด๋‹ค ์ „๋ฌธ์  + +**์ œ๋ชฉ**: "ํ…Œ๋‹ˆ์Šค ๋™ํ˜ธํšŒ ์šด์˜์ง„์ด ์•Œ์•„์•ผ ํ•  ๋””์ง€ํ„ธ ์ „ํ™˜ ์‚ฌ๋ก€" + +**๋‚ด์šฉ**: +- ๋ฐฐ๊ฒฝ: 25๋ช… ๋™ํ˜ธํšŒ ์šด์˜์˜ ์–ด๋ ค์›€ +- ๋ฌธ์ œ: ์ˆ˜์ž‘์—… ์˜ˆ์•ฝ ๊ด€๋ฆฌ์˜ ๋น„ํšจ์œจ +- ์†”๋ฃจ์…˜: ๋””์ง€ํ„ธ ์˜ˆ์•ฝ ์‹œ์Šคํ…œ ๋„์ž… +- ๊ฒฐ๊ณผ: ๊ด€๋ฆฌ ์‹œ๊ฐ„ 80% ๊ฐ์†Œ +- ์ธ์‚ฌ์ดํŠธ: "์ž‘์€ ์ปค๋ฎค๋‹ˆํ‹ฐ๋„ ๋””์ง€ํ„ธ ์ „ํ™˜ ํ•„์š”" + + +#### 2-6. ๋„ค์ด๋ฒ„ ์นดํŽ˜ ๊ฒŒ์‹œ๊ธ€ 1๊ฐœ (์ง„์งœ ๊ฒฝํ—˜๋‹ด) +**์ œ๋ชฉ**: "[ํ›„๊ธฐ] ๋™ํ˜ธํšŒ ์˜ˆ์•ฝ ๊ด€๋ฆฌ ์ด๋ ‡๊ฒŒ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค" + +**ํ†ค**: ๊ด‘๊ณ  ์•„๋‹˜, ์ง„์งœ ๋„์›€ + +**๋‚ด์šฉ**: +``` +์•ˆ๋…•ํ•˜์„ธ์š”, XX ๋™ํ˜ธํšŒ ์šด์˜ ์ค‘์ธ ๊น€OO์ž…๋‹ˆ๋‹ค. + +์ €ํฌ ๋™ํ˜ธํšŒ ํšŒ์›์ด 25๋ช…์ธ๋ฐ์š”, +๋งค์ฃผ ์ฝ”ํŠธ ์˜ˆ์•ฝ์ด ์ œ์ผ ํฐ ์ŠคํŠธ๋ ˆ์Šค์˜€์–ด์š”. + +[๋ฌธ์ œ] +- ํ† ์š”์ผ ์˜ค์ „ 5๊ฐœ ์ฝ”ํŠธ ์ „ํ™” (30๋ถ„ ์†Œ์š”) +- ํšŒ์›๋“ค ์ผ์ • ์กฐ์œจ ์นดํ†ก 100ํ†ต +- ์˜ˆ์•ฝ ์‹คํŒจํ•˜๋ฉด ์š•๋จน์Œ ใ… ใ…  + +[ํ•ด๊ฒฐ] +OO ์•ฑ ์จ๋ณด๋‹ˆ๊นŒ ์ง„์งœ ํŽธํ•˜๋”๋ผ๊ณ ์š”. +(๊ด‘๊ณ  ์•„๋‹ˆ๊ณ  ์ง„์งœ ์จ๋ณธ ํ›„๊ธฐ์ž…๋‹ˆ๋‹ค) + +[ํšจ๊ณผ] +- ์˜ˆ์•ฝ ์‹œ๊ฐ„: 30๋ถ„ โ†’ 3๋ถ„ +- ํšŒ์›๋“ค ๋งŒ์กฑ๋„ UP +- ์ž๋™ ํ• ์ธ๊นŒ์ง€ ๋ฐ›์Œ + +ํ˜น์‹œ ๋™ํ˜ธํšŒ ์šด์˜ํ•˜์‹œ๋Š” ๋ถ„๋“ค ์ฐธ๊ณ ํ•˜์„ธ์š”! +``` + + +#### 2-7. PDF ๋‹ค์šด๋กœ๋“œ ์ž๋ฃŒ (๋ฆฌ๋“œ ์ˆ˜์ง‘์šฉ) +**์ œ๋ชฉ**: "ํ…Œ๋‹ˆ์Šค ๋™ํ˜ธํšŒ ์šด์˜์ž๋ฅผ ์œ„ํ•œ ์˜ˆ์•ฝ ๊ด€๋ฆฌ ์ฒดํฌ๋ฆฌ์ŠคํŠธ" + +**๋‚ด์šฉ**: +- [ ] ์‹œ์ฆŒ๋ณ„ ์„ ํ˜ธ ์‹œ๊ฐ„๋Œ€ ํŒŒ์•… +- [ ] ๋‹จ๊ณจ ์ฝ”ํŠธ 3๊ณณ ํ™•๋ณด +- [ ] ์˜ˆ์•ฝ ์•ฑ 3๊ฐœ ๋น„๊ต (๊ธฐ๋Šฅ/๊ฐ€๊ฒฉ) +- [ ] ํšŒ์› ๊ฒฐ์ œ ์‹œ์Šคํ…œ ๊ตฌ์ถ• +- [ ] ์˜ˆ์•ฝ ์ทจ์†Œ ์ •์ฑ… ์ˆ˜๋ฆฝ +- [ ] ๋น„ ์˜ฌ ๋•Œ Plan B + +**CTA**: PDF ๋งˆ์ง€๋ง‰ ํŽ˜์ด์ง€์— ์•ฑ ์„ค์น˜ ๋งํฌ + + +#### 2-8. ์ธ์Šคํƒ€ ์บ๋Ÿฌ์…€ 10์žฅ (์ธํฌ๊ทธ๋ž˜ํ”ฝ) +**์ œ๋ชฉ**: "์ฝ”ํŠธ ์˜ˆ์•ฝ 30๋ถ„โ†’3์ดˆ ์ค„์ด๋Š” ๋ฒ•" + +**์Šฌ๋ผ์ด๋“œ ๊ตฌ์„ฑ**: +1. ํ‘œ์ง€: "์ฃผ๋ง๋งˆ๋‹ค ์ฝ”ํŠธ ์˜ˆ์•ฝ ์ŠคํŠธ๋ ˆ์Šค?" +2. ๋ฌธ์ œ 1: ์ „ํ™” ๋Œ€๊ธฐ 15๋ถ„ +3. ๋ฌธ์ œ 2: ์›ํ•˜๋Š” ์‹œ๊ฐ„ ๋งŒ์„ +4. ๋ฌธ์ œ 3: ๋น„์‹ผ ์ •๊ฐ€ +5. ์†”๋ฃจ์…˜: ์‹ค์‹œ๊ฐ„ ์˜ˆ์•ฝ ์•ฑ +6. ๊ธฐ๋Šฅ 1: 3์ดˆ ์˜ˆ์•ฝ +7. ๊ธฐ๋Šฅ 2: ์ž๋™ ํ• ์ธ +8. ๊ธฐ๋Šฅ 3: ์‹ค์‹œ๊ฐ„ ๊ณต์„ +9. Before/After ๋น„๊ต +10. CTA: ๋ฐ”์ด์˜ค ๋งํฌ + + +#### 2-9. ์ปค๋ฎค๋‹ˆํ‹ฐ ๋Œ“๊ธ€/๋‹ต๋ณ€ (์ž์—ฐ์Šค๋Ÿฌ์šด ๋…ธ์ถœ) +**์ƒํ™ฉ**: ๋„ค์ด๋ฒ„ ์นดํŽ˜ ์งˆ๋ฌธ๊ธ€ +"์ฃผ๋ง ์ฝ”ํŠธ ์˜ˆ์•ฝ ์–ด๋–ป๊ฒŒ ํ•˜์‹œ๋‚˜์š”?" + +**๋‹ต๋ณ€**: +``` +์ €๋Š” ์˜ˆ์ „์—” ์ „ํ™”๋กœ ํ–ˆ๋Š”๋ฐ ๋„ˆ๋ฌด ๋ฒˆ๊ฑฐ๋กœ์›Œ์„œ +์š”์ฆ˜์€ OO ์•ฑ ์จ์š”. + +์žฅ์ : +- ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋นˆ ์ฝ”ํŠธ ํ™•์ธ +- ๊ฐ€๊ฒฉ ๋น„๊ต ๊ฐ€๋Šฅ +- ์ž๋™ ํ• ์ธ๋„ ์ ์šฉ๋จ + +๋‹จ์ : +- ์•„์ง ๋ชจ๋“  ์ฝ”ํŠธ๊ฐ€ ๋“ฑ๋ก๋œ ๊ฑด ์•„๋‹˜ + +๊ทผ๋ฐ ์ œ๊ฐ€ ๋‹ค๋‹ˆ๋Š” ์ฃผ์š” ์ฝ”ํŠธ๋Š” ๋‹ค ์žˆ์–ด์„œ ๋งŒ์กฑ ์ค‘์ž…๋‹ˆ๋‹ค. +(๊ด‘๊ณ  ์•„๋‹ˆ๊ณ  ์ง„์งœ ์“ฐ๋Š” ์‚ฌ๋žŒ ํ›„๊ธฐ) +``` + +**์ „๋žต**: ๊ด‘๊ณ ์ฒ˜๋Ÿผ ๋ณด์ด๋ฉด ์—ญํšจ๊ณผ, ์ง„์งœ ๋„์›€๋ง์ฒ˜๋Ÿผ + + +#### 2-10. ์˜คํ”ˆ์ฑ„ํŒ… / ๋ฐด๋“œ ๊ณต์œ  (๋ฐ”์ด๋Ÿด ์œ ๋„) +**์ƒํ™ฉ**: ํ…Œ๋‹ˆ์Šค ๋™ํ˜ธํšŒ ๋‹จํ†ก๋ฐฉ + +**๋ฉ”์‹œ์ง€**: +``` +[๊ณต์œ ] ์ด๋ฒˆ ์ฃผ ํ† ์š”์ผ ์˜ˆ์•ฝ ์™„๋ฃŒํ–ˆ์–ด์š”~ + +๋‹ค๋“ค ์ด ์•ฑ ์จ๋ณด์…จ์–ด์š”? +์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฝ”ํŠธ ์˜ˆ์•ฝ ๋˜๊ณ  ํ• ์ธ๋„ ๋ฐ›์•„์„œ ์ข‹๋”๋ผ๊ณ ์š”. + +์ €ํฌ ๋™ํ˜ธํšŒ ํšŒ์›๋“ค ์“ฐ๋ฉด ์˜ˆ์•ฝ ์ด๋ฌด ์ผ ์ง„์งœ ์ค„์–ด๋“ค ๊ฒƒ ๊ฐ™์•„์š” ใ…Žใ…Ž + +๋งํฌ: [...] +(์ฒซ ์˜ˆ์•ฝ ํ• ์ธ ์ฝ”๋“œ: TENNIS2025) +``` + +**์ „๋žต**: ๋„์›€๋˜๋Š” ์ •๋ณด ๊ณต์œ  โ†’ ์ž์—ฐ์Šค๋Ÿฌ์šด ๋ฐ”์ด๋Ÿด +``` + +### 3. Content Calendar (4์ฃผ ๊ณ„ํš) + +```markdown +## 4-Week Content Plan + +### Week 1: Awareness (์ธ์ง€๋„) +"์šฐ๋ฆฌ ์ œํ’ˆ์ด ์กด์žฌํ•œ๋‹ค๋Š” ๊ฑธ ์•Œ๋ฆฌ๊ธฐ" + +| ์š”์ผ | ์ฑ„๋„ | ์ฝ˜ํ…์ธ  | ๋ชฉํ‘œ | +|------|------|--------|------| +| ์›” | ์œ ํŠœ๋ธŒ | ๋กฑํผ ์˜์ƒ ์—…๋กœ๋“œ | ์กฐํšŒ์ˆ˜ 500 | +| ํ™” | ๋ธ”๋กœ๊ทธ | SEO ํฌ์ŠคํŠธ ๋ฐœํ–‰ | ์œ ์ž… ์‹œ์ž‘ | +| ์ˆ˜ | ์ธ์Šคํƒ€ | ๋ฆด์Šค #1 (Before/After) | ๋„๋‹ฌ 1,000 | +| ๋ชฉ | ๋„ค์ด๋ฒ„ ์นดํŽ˜ | ๊ฒฝํ—˜๋‹ด ๊ฒŒ์‹œ๊ธ€ 5๊ฐœ | ๋Œ“๊ธ€ 10+ | +| ๊ธˆ | ์œ ํŠœ๋ธŒ ์‡ผ์ธ  | ์‡ผ์ธ  #1 (Problem) | ์กฐํšŒ์ˆ˜ 1,000 | +| ํ†  | ๋งํฌ๋“œ์ธ | ์ „๋ฌธ๊ฐ€ ํฌ์ŠคํŠธ | ์—ฐ๊ฒฐ ์š”์ฒญ 5+ | +| ์ผ | ํœด์‹ | ์ฃผ๊ฐ„ ์„ฑ๊ณผ ๋ถ„์„ | - | + + +### Week 2: Engagement (์ฐธ์—ฌ ์œ ๋„) +"๊ด€์‹ฌ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค๊ณผ ๋Œ€ํ™” ์‹œ์ž‘" + +| ์š”์ผ | ์ฑ„๋„ | ์ฝ˜ํ…์ธ  | ๋ชฉํ‘œ | +|------|------|--------|------| +| ์›” | ์ธ์Šคํƒ€ | ๋ฆด์Šค #2 (3 Tips) | ์ €์žฅ 50+ | +| ํ™” | ํŠธ์œ„ํ„ฐ | ์“ฐ๋ ˆ๋“œ ๋ฐœํ–‰ | ๋ฆฌํŠธ์œ— 10+ | +| ์ˆ˜ | ๋„ค์ด๋ฒ„ ์นดํŽ˜ | ์งˆ๋ฌธ๊ธ€์— ๋‹ต๋ณ€ 10๊ฐœ | ์‹ ๋ขฐ ๊ตฌ์ถ• | +| ๋ชฉ | ์œ ํŠœ๋ธŒ ์‡ผ์ธ  | ์‡ผ์ธ  #2 (Demo) | ์กฐํšŒ์ˆ˜ 2,000 | +| ๊ธˆ | ์ธ์Šคํƒ€ | ์บ๋Ÿฌ์…€ 10์žฅ | ์ €์žฅ 30+ | +| ํ†  | ๋ฐด๋“œ | ๋™ํ˜ธํšŒ์— ๊ณต์œ  | ๊ฐ€์ž… 5+ | +| ์ผ | ์ด๋ฉ”์ผ | PDF ๋‹ค์šด๋กœ๋“œ์ž ๋Œ€์ƒ | ์˜คํ”ˆ์œจ 30% | + + +### Week 3: Conversion (์ „ํ™˜ ์œ ๋„) +"์‹ค์ œ ์‚ฌ์šฉ์ž ํ™•๋ณด" + +| ์š”์ผ | ์ฑ„๋„ | ์ฝ˜ํ…์ธ  | ๋ชฉํ‘œ | +|------|------|--------|------| +| ์›” | ์ „ ์ฑ„๋„ | ํ• ์ธ ์ด๋ฒคํŠธ ๊ณต์ง€ | ๊ฐ€์ž… 20+ | +| ํ™” | ์œ ํŠœ๋ธŒ ์‡ผ์ธ  | ์‡ผ์ธ  #3 (Result) | ์ „ํ™˜ 5+ | +| ์ˆ˜ | ๋„ค์ด๋ฒ„ ์นดํŽ˜ | ๋ฒ ํƒ€ ํ…Œ์Šคํ„ฐ ๋ชจ์ง‘ | ์‹ ์ฒญ 10+ | +| ๋ชฉ | ๋ธ”๋กœ๊ทธ | ์‚ฌ์šฉ ๊ฐ€์ด๋“œ ํฌ์ŠคํŠธ | ์ฒด๋ฅ˜ 3๋ถ„+ | +| ๊ธˆ | ์ธ์Šคํƒ€ ์Šคํ† ๋ฆฌ | ์นด์šดํŠธ๋‹ค์šด (์ด๋ฒคํŠธ ๋งˆ๊ฐ) | FOMO ์œ ๋„ | +| ํ†  | ์˜คํ”ˆ์ฑ„ํŒ… | ์‚ฌ์šฉ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฐœ์„ค | ์ฐธ์—ฌ 10+ | +| ์ผ | ํœด์‹ | ์ „ํ™˜์œจ ๋ถ„์„ | - | + + +### Week 4: Retention (์žฌ๋ฐฉ๋ฌธ ์œ ๋„) +"๊ธฐ์กด ์‚ฌ์šฉ์ž ๋งŒ์กฑ๋„ ๋†’์ด๊ธฐ" + +| ์š”์ผ | ์ฑ„๋„ | ์ฝ˜ํ…์ธ  | ๋ชฉํ‘œ | +|------|------|--------|------| +| ์›” | ์ด๋ฉ”์ผ | ์‚ฌ์šฉ ํŒ ๋‰ด์Šค๋ ˆํ„ฐ | ์žฌ๋ฐฉ๋ฌธ ์œ ๋„ | +| ํ™” | ์œ ํŠœ๋ธŒ | ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ ํŠœํ† ๋ฆฌ์–ผ | ํ™œ์„ฑ ์‚ฌ์šฉ์ž ์ฆ๊ฐ€ | +| ์ˆ˜ | ์ธ์Šคํƒ€ | ์‚ฌ์šฉ์ž ํ›„๊ธฐ ๋ฆฌ๊ทธ๋žจ | ์‚ฌํšŒ์  ์ฆ๋ช… | +| ๋ชฉ | ๋„ค์ด๋ฒ„ ์นดํŽ˜ | ์„ฑ๊ณต ์‚ฌ๋ก€ ๊ณต์œ  | ์ž…์†Œ๋ฌธ | +| ๊ธˆ | ๋ธ”๋กœ๊ทธ | ์—…๋ฐ์ดํŠธ ์†Œ์‹ | SEO ์œ ์ง€ | +| ํ†  | ์ปค๋ฎค๋‹ˆํ‹ฐ | ์˜คํ”„๋ผ์ธ ๋ชจ์ž„ ๊ธฐํš | ์ถฉ์„ฑ๋„ UP | +| ์ผ | ํšŒ๊ณ  | 4์ฃผ ์„ฑ๊ณผ ์ •๋ฆฌ & Next | - | +``` + +### 4. Content Hook Generator (๊ฐ๊ฐ์  ์ฒซ ๋ฌธ์žฅ) + +```markdown +## Hook Formula Library + +### Formula 1: Shocking Number (์ถฉ๊ฒฉ์  ์ˆซ์ž) +"๋งค์ฃผ [์‹œ๊ฐ„]์„ [์ง€๋ฃจํ•œ ์ž‘์—…]์— ์“ฐ๊ณ  ์žˆ๋‹ค๋Š” ๊ฑธ ์•„์‹œ๋‚˜์š”?" + +**Example**: +- "๋งค์ฃผ 30๋ถ„์„ ์ฝ”ํŠธ ์˜ˆ์•ฝ ์ „ํ™”์— ์“ฐ๊ณ  ์žˆ๋‹ค๋Š” ๊ฑธ ์•„์‹œ๋‚˜์š”?" +- "ํ•œ ๋‹ฌ์— 4์‹œ๊ฐ„์„ ์˜ˆ์•ฝ ๋•Œ๋ฌธ์— ๋‚ญ๋น„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค" + + +### Formula 2: Relatable Pain (๊ณต๊ฐ๋˜๋Š” ๊ณ ํ†ต) +"[์ƒํ™ฉ] ๋•Œ๋ฌธ์— [๋ถ€์ •์  ๊ฐ์ •] ๋А๊ปด๋ณธ ์  ์žˆ์œผ์‹ ๊ฐ€์š”?" + +**Example**: +- "์ฃผ๋ง ์ฝ”ํŠธ ์˜ˆ์•ฝ ์‹คํŒจํ•ด์„œ ํ—ˆํƒˆํ–ˆ๋˜ ์  ์žˆ์œผ์‹ ๊ฐ€์š”?" +- "ํ…Œ๋‹ˆ์Šค ์น˜๊ณ  ์‹ถ์€๋ฐ ์˜ˆ์•ฝ์ด ๊ท€์ฐฎ์•„์„œ ํฌ๊ธฐํ•œ ์  ์žˆ๋‚˜์š”?" + + +### Formula 3: Before/After (๊ทน๋ช…ํ•œ ๋Œ€๋น„) +"[Before] โ†’ [After]๋กœ ๋ฐ”๋€ ๋ฐฉ๋ฒ•" + +**Example**: +- "30๋ถ„ ์ „ํ™” ์˜ˆ์•ฝ โ†’ 3์ดˆ ์•ฑ ์˜ˆ์•ฝ์œผ๋กœ ๋ฐ”๋€ ๋ฐฉ๋ฒ•" +- "๋งŒ์„ ์ŠคํŠธ๋ ˆ์Šค โ†’ ์‹ค์‹œ๊ฐ„ ํ™•์ธ์œผ๋กœ ๋ฐ”๋€ ์ด์œ " + + +### Formula 4: Curiosity Gap (ํ˜ธ๊ธฐ์‹ฌ ๊ฐญ) +"[๊ฒฐ๊ณผ]๋ฅผ ํ•œ ๋น„๋ฒ•, [์ผ๋ฐ˜ ์ƒ์‹]์ด ์•„๋‹™๋‹ˆ๋‹ค" + +**Example**: +- "์ฝ”ํŠธ ์˜ˆ์•ฝ 10์ดˆ ์ปท, ์ „ํ™” ๋ง๊ณ  OO ์“ฐ์„ธ์š”" +- "ํ• ์ธ๋ฐ›๋Š” ๋ฒ•, ์ฟ ํฐ ๋ง๊ณ  OO ํ•˜์„ธ์š”" + + +### Formula 5: Question Hook (์งˆ๋ฌธ ํ›…) +"์™œ ์•„์ง๋„ [๊ตฌ์‹œ๋Œ€ ๋ฐฉ๋ฒ•]์œผ๋กœ [์ž‘์—…]ํ•˜์„ธ์š”?" + +**Example**: +- "์™œ ์•„์ง๋„ ์ „ํ™”๋กœ ์ฝ”ํŠธ ์˜ˆ์•ฝํ•˜์„ธ์š”?" +- "์™œ ์ •๊ฐ€ ๋‚ด๊ณ  ์˜ˆ์•ฝํ•˜์„ธ์š”?" + + +### Formula 6: Social Proof (์‚ฌํšŒ์  ์ฆ๊ฑฐ) +"์ด๋ฏธ [์ˆซ์ž]๋ช…์ด [ํ–‰๋™]ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€?" + +**Example**: +- "์ด๋ฏธ 500๋ช…์ด ์•ฑ์œผ๋กœ ์˜ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์€?" +- "์šฐ๋ฆฌ ๋™ํ˜ธํšŒ ํšŒ์› 25๋ช… ๋ชจ๋‘ ์“ฐ๋Š” ์ด์œ " + + +### Formula 7: FOMO (๋†“์น˜๊ธฐ ์‹ซ์€ ์‹ฌ๋ฆฌ) +"[๊ธฐํšŒ]๋ฅผ ๋†“์น˜๋ฉด [์†ํ•ด]ํ•ฉ๋‹ˆ๋‹ค" + +**Example**: +- "์ด ํ• ์ธ ๋†“์น˜๋ฉด ์ •๊ฐ€๋กœ ํ‰์ƒ ์˜ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค" +- "์„ ์ฐฉ์ˆœ 100๋ช…๋งŒ 30% ํ• ์ธ (ํ˜„์žฌ 73๋ช…)" + + +### Formula 8: Contrarian (๋ฐ˜๋Œ€ ์˜๊ฒฌ) +"[์ผ๋ฐ˜ ํ†ต๋…]์€ ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค. ์ง„์งœ๋Š” [๋ฐ˜์ „]์ž…๋‹ˆ๋‹ค" + +**Example**: +- "์ „ํ™” ์˜ˆ์•ฝ์ด ๋” ๋น ๋ฅด๋‹ค? ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค. ์•ฑ์ด 10๋ฐฐ ๋น ๋ฆ…๋‹ˆ๋‹ค" +- "๋น„์‹ผ ์ฝ”ํŠธ๊ฐ€ ์ข‹๋‹ค? ์•„๋‹™๋‹ˆ๋‹ค. ์‹œ๊ฐ„๋Œ€๊ฐ€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค" +``` + +### 5. Content Repurposing Checklist + +```markdown +## Repurposing Workflow + +### Step 1: Create Pillar (1๊ฐœ ์ œ์ž‘) +โœ… ์œ ํŠœ๋ธŒ ๋กฑํผ 1๊ฐœ (10๋ถ„) + - ๋Œ€๋ณธ ์ž‘์„ฑ + - ์ดฌ์˜/ํŽธ์ง‘ + - ์—…๋กœ๋“œ + +### Step 2: Chop into Shorts (์กฐ๊ฐ๋‚ด๊ธฐ) +โœ… ์œ ํŠœ๋ธŒ ์‡ผ์ธ  3๊ฐœ + - ํƒ€์ž„๋ผ์ธ์—์„œ ํ•ต์‹ฌ 60์ดˆ ์ถ”์ถœ + - ์„ธ๋กœ ํฌ๋งท (9:16) ์žฌํŽธ์ง‘ + - ์ž๋ง‰ ์ถ”๊ฐ€ + +โœ… ์ธ์Šคํƒ€ ๋ฆด์Šค 2๊ฐœ + - ์‡ผ์ธ ์™€ ๋™์ผํ•˜๋˜ 30์ดˆ๋กœ ์••์ถ• + - ํŠธ๋ Œ๋”ฉ ์Œ์•… ์ถ”๊ฐ€ + - ํ•ด์‹œํƒœ๊ทธ 15๊ฐœ + +### Step 3: Transform to Text (ํ…์ŠคํŠธ ๋ณ€ํ™˜) +โœ… ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŠธ + - ์˜์ƒ ๋Œ€๋ณธ โ†’ ๊ธ€๋กœ ๋ณ€ํ™˜ + - SEO ์ตœ์ ํ™” (ํ‚ค์›Œ๋“œ 5๊ฐœ ์‚ฝ์ž…) + - ์Šคํฌ๋ฆฐ์ƒท 5-7์žฅ ์ถ”๊ฐ€ + +โœ… ํŠธ์œ„ํ„ฐ ์“ฐ๋ ˆ๋“œ + - ํ•ต์‹ฌ ๋ฉ”์‹œ์ง€ 7๊ฐœ๋กœ ์••์ถ• + - ๊ฐ ํŠธ์œ— 280์ž ์ด๋‚ด + - ์ฒซ ํŠธ์œ—์— ํ›… ์ง‘์ค‘ + +โœ… ๋งํฌ๋“œ์ธ ํฌ์ŠคํŠธ + - ์ „๋ฌธ๊ฐ€ ํ†ค์œผ๋กœ ์žฌ์ž‘์„ฑ + - ์ธ์‚ฌ์ดํŠธ ์ค‘์‹ฌ + - 1,000-1,500์ž + +### Step 4: Design Visuals (๋น„์ฃผ์–ผ ์ œ์ž‘) +โœ… ์ธ์Šคํƒ€ ์บ๋Ÿฌ์…€ 10์žฅ + - ์บ”๋ฐ” ํ…œํ”Œ๋ฆฟ ํ™œ์šฉ + - ํ•ต์‹ฌ ๋ฉ”์‹œ์ง€ 1์žฅ 1๋ฌธ์žฅ + - ๋ธŒ๋žœ๋“œ ์ปฌ๋Ÿฌ ์ผ๊ด€์„ฑ + +โœ… PDF ๋‹ค์šด๋กœ๋“œ + - ์ฒดํฌ๋ฆฌ์ŠคํŠธ/๊ฐ€์ด๋“œ ํ˜•์‹ + - 5-10ํŽ˜์ด์ง€ + - ๋งˆ์ง€๋ง‰ ํŽ˜์ด์ง€ CTA + +### Step 5: Community Seeding (์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฐฐํฌ) +โœ… ๋„ค์ด๋ฒ„ ์นดํŽ˜ ๊ฒŒ์‹œ๊ธ€ + - ๊ด‘๊ณ  ๋А๋‚Œ ์ œ๊ฑฐ + - ์ง„์งœ ๊ฒฝํ—˜๋‹ด์ฒ˜๋Ÿผ + - 5-10๊ฐœ ์นดํŽ˜ + +โœ… ์ปค๋ฎค๋‹ˆํ‹ฐ ๋Œ“๊ธ€ + - ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์–ธ๊ธ‰ + - ๋„์›€ ๋˜๋Š” ์ •๋ณด ๊ณต์œ  + - ๋งํฌ๋Š” ๋งˆ์ง€๋ง‰์—๋งŒ + +### Total Output: 1 Pillar โ†’ 20+ Content Pieces +``` + +--- + +## Output Files + +### ์ƒ์„ฑ๋  ํŒŒ์ผ๋“ค: + +1. **`docs/market/core-message.md`** + - ONE ํ•ต์‹ฌ ๋ฉ”์‹œ์ง€ + - Before/After/Bridge + - ๊ณ ๊ฐ Pain Point ์—ฐ๊ฒฐ + +2. **`docs/market/content-pyramid.md`** + - Pillar Content ๊ธฐํš + - 10๊ฐ€์ง€ ํŒŒ์ƒ ์ฝ˜ํ…์ธ  + - ํฌ๋งท๋ณ„ ์ œ์ž‘ ๊ฐ€์ด๋“œ + +3. **`docs/market/content-calendar.md`** + - 4์ฃผ ์ฝ˜ํ…์ธ  ์บ˜๋ฆฐ๋” + - ์ฑ„๋„๋ณ„ ๋ฐœํ–‰ ์Šค์ผ€์ค„ + - ๋ชฉํ‘œ ์ง€ํ‘œ + +4. **`docs/market/hook-library.md`** + - 8๊ฐ€์ง€ ํ›… ๊ณต์‹ + - ์ œํ’ˆ๋ณ„ ์˜ˆ์‹œ + - A/B ํ…Œ์ŠคํŠธ์šฉ + +--- + +## Integration Points + +### ๋‹ค๋ฅธ ๋ช…๋ น์–ด์™€์˜ ์—ฐ๊ณ„: + +- **From `/market.customer`**: ํƒ€๊ฒŸ ์ฑ„๋„ โ†’ ์ฝ˜ํ…์ธ  ํฌ๋งท ๊ฒฐ์ • +- **From `/appkit.sales`**: ํ•ต์‹ฌ ๋ฉ”์‹œ์ง€ โ†’ ์ฝ˜ํ…์ธ  ์ฃผ์ œ +- **To `/market.channel`**: ์ฝ˜ํ…์ธ  โ†’ ์ฑ„๋„๋ณ„ ์ตœ์ ํ™” +- **To `/market.communicate`**: ์ฝ˜ํ…์ธ  โ†’ ๋ฐ”์ด๋Ÿด ์ „๋žต + +--- + +## Examples + +### Example 1: B2C ์•ฑ +```bash +$ /market.contents + +๐ŸŽฏ Core Message Extracted + +ONE Message: +"๋งค์ฃผ 30๋ถ„ ๊ฑธ๋ฆฌ๋˜ ์ฝ”ํŠธ ์˜ˆ์•ฝ, 3์ดˆ๋กœ ๋‹จ์ถ•" + +Content Pyramid Generated: + +1 Pillar: +โœ… ์œ ํŠœ๋ธŒ ๋กฑํผ (10๋ถ„) - "์˜ˆ์•ฝ ์‹œ๊ฐ„ 90% ์ค„์ธ ๋ฒ•" + +10 Derivatives: +โœ… ์œ ํŠœ๋ธŒ ์‡ผ์ธ  3๊ฐœ +โœ… ์ธ์Šคํƒ€ ๋ฆด์Šค 2๊ฐœ +โœ… ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŠธ 1๊ฐœ +โœ… ํŠธ์œ„ํ„ฐ ์“ฐ๋ ˆ๋“œ 1๊ฐœ +โœ… ๋งํฌ๋“œ์ธ ํฌ์ŠคํŠธ 1๊ฐœ +โœ… ๋„ค์ด๋ฒ„ ์นดํŽ˜ ๊ธ€ 1๊ฐœ +โœ… ์ธ์Šคํƒ€ ์บ๋Ÿฌ์…€ 1๊ฐœ + +4-Week Calendar: +Week 1: Awareness (์ธ์ง€๋„) +Week 2: Engagement (์ฐธ์—ฌ) +Week 3: Conversion (์ „ํ™˜) +Week 4: Retention (์žฌ๋ฐฉ๋ฌธ) + +โœ… Generated content-pyramid.md +โœ… Generated content-calendar.md +``` + +--- + +## Key Principles + +### Content Efficiency: + +1. **One to Many**: 1๊ฐœ ์ œ์ž‘ โ†’ 10๊ฐœ ๋ฐฐํฌ +2. **Core Message First**: ๋ฉ”์‹œ์ง€ ๋จผ์ €, ํฌ๋งท์€ ๋‚˜์ค‘ +3. **Platform Native**: ๊ฐ ์ฑ„๋„์˜ ์–ธ์–ด๋กœ ๋ฒˆ์—ญ +4. **Hook Obsession**: ์ฒซ 3์ดˆ๊ฐ€ ์ „๋ถ€ +5. **Batch Production**: ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ๊ฐœ ์ œ์ž‘ + +### Content Anti-Patterns: + +โŒ **Spray and Pray**: ์ผ๊ด€์„ฑ ์—†์ด ๋ง‰ ์˜ฌ๋ฆฌ๊ธฐ +โŒ **Perfectionism**: ์™„๋ฒฝํ•œ 1๊ฐœ๋ณด๋‹ค ๊ดœ์ฐฎ์€ 10๊ฐœ +โŒ **Platform Blindness**: ์œ ํŠœ๋ธŒ ์˜์ƒ์„ ์ธ์Šคํƒ€์— ๊ทธ๋Œ€๋กœ +โŒ **Message Dilution**: ์ฑ„๋„๋งˆ๋‹ค ๋‹ค๋ฅธ ๋ฉ”์‹œ์ง€ +โŒ **No Repurposing**: ๋งค๋ฒˆ ์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ + +--- + +## Next Steps + +### ์ด ๋ช…๋ น์–ด ์‹คํ–‰ ํ›„: + +**๐Ÿ“ ๋‹ค์Œ ๋‹จ๊ณ„: `/market.channel`** (์ฑ„๋„๋ณ„ ์ตœ์ ํ™”) +- ๋งŒ๋“  ์ฝ˜ํ…์ธ ๋ฅผ ๊ฐ ์ฑ„๋„์— ๋งž๊ฒŒ ์ตœ์ ํ™” +- ํ”Œ๋žซํผ๋ณ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ดํ•ด +- ์„ฑ๊ณผ ์ธก์ • ๋ฐ ๊ฐœ์„  + +--- + +## Version + +- **Version**: 1.0.0 +- **Created**: 2025-11-20 +- **Philosophy**: "Create once, distribute everywhere. But make it native to each platform." diff --git a/.claude/commands/market.customer.md b/.claude/commands/market.customer.md new file mode 100644 index 0000000..be3ab59 --- /dev/null +++ b/.claude/commands/market.customer.md @@ -0,0 +1,434 @@ +# market.customer + +**MVP์— ๋งž๋Š” ํƒ€๊ฒŸ ๊ณ ๊ฐ ์„ธ๋ถ„ํ™” ๋ฐ ์ฑ„๋„ ์ถ”์ฒœ ๋ช…๋ น์–ด** + +--- + +## Overview + +**This is the first step of the 4C Marketing Framework**: + +``` +์ €๋น„์šฉ ๋งˆ์ผ€ํŒ… 4C: +1. /market.customer โ†’ ๊ณ ๊ฐ ์„ธ๋ถ„ํ™” & ์ฑ„๋„ ์ถ”์ฒœ (๋ˆ„๊ตฌ์—๊ฒŒ, ์–ด๋””์„œ?) โ† YOU ARE HERE +2. /market.contents โ†’ ์ฝ˜ํ…์ธ  ์ „๋žต & ์žฌํ™œ์šฉ (๋ฌด์—‡์„ ๋งŒ๋“ค๊นŒ?) +3. /market.channel โ†’ ์ฑ„๋„๋ณ„ ์ตœ์ ํ™” ์ „๋žต (์–ด๋–ป๊ฒŒ ์ตœ์ ํ™”ํ• ๊นŒ?) +4. /market.communicate โ†’ ๋ฐ”์ด๋Ÿด & ์ปค๋ฎค๋‹ˆํ‹ฐ ์ „๋žต (์–ด๋–ป๊ฒŒ ํผ๋œจ๋ฆด๊นŒ?) +``` + +## Purpose + +MVP ์ œํ’ˆ์˜ ํŠน์„ฑ์„ ๋ถ„์„ํ•˜์—ฌ **๊ฐ€์žฅ ํšจ๊ณผ์ ์ธ ํƒ€๊ฒŸ ๊ณ ๊ฐ ์„ธ๊ทธ๋จผํŠธ**๋ฅผ ์ฐพ๊ณ , +๊ทธ๋“ค์ด ์‹ค์ œ๋กœ ์žˆ๋Š” **์ฑ„๋„**์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค. + +**ํ•ต์‹ฌ ์งˆ๋ฌธ**: "๋ˆ„๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ์šฐ๋ฆฌ ์ œํ’ˆ์„ ์จ์ค„๊นŒ? ๊ทธ๋“ค์€ ์ง€๊ธˆ ์–ด๋”” ์žˆ์„๊นŒ?" + +--- + +## When to Use + +- `/appkit.mvp`๋กœ MVP ๋ฒ”์œ„๋ฅผ ์ •์˜ํ•œ ํ›„ +- ์ œํ’ˆ ์ถœ์‹œ ์ „ ๋งˆ์ผ€ํŒ… ์ „๋žต ์ˆ˜๋ฆฝ ์‹œ +- ๊ด‘๊ณ ๋น„ ์—†์ด ์ดˆ๊ธฐ ๊ณ ๊ฐ์„ ํ™•๋ณดํ•ด์•ผ ํ•  ๋•Œ +- ์ฑ„๋„ ์„ ํƒ์ด ๋ถˆ๋ช…ํ™•ํ•  ๋•Œ + +--- + +## Usage + +```bash +/market.customer +/market.customer "ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ ์•ฑ" +/market.customer "์ง์žฅ์ธ ๋Œ€์ƒ SaaS ํˆด" +``` + +--- + +## What I'll Do + +### 1. ์ œํ’ˆ ๋งฅ๋ฝ ๋ถ„์„ + +```markdown +## Product Context Analysis + +### Input Sources +- `docs/appkit/overview.md` โ†’ ์„œ๋น„์Šค ๋ณธ์งˆ ํŒŒ์•… +- `docs/appkit/customer-persona.md` โ†’ ๊ธฐ์กด ํŽ˜๋ฅด์†Œ๋‚˜ ํ™œ์šฉ +- `docs/appkit/mvp-scope.md` โ†’ MVP ํ•ต์‹ฌ ๊ฐ€์น˜ ํ™•์ธ + +### Key Questions +- ์ด ์ œํ’ˆ์€ ๋ฌด์—‡์„ ํ•ด๊ฒฐํ•˜๋Š”๊ฐ€? +- ๊ฐ€์žฅ ๊ธ‰ํ•œ ๋ฌธ์ œ๋ฅผ ๊ฐ€์ง„ ์‚ฌ๋žŒ์€ ๋ˆ„๊ตฌ์ธ๊ฐ€? +- ๋ˆ์„ ๋‚ผ ๋งŒํ•œ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ์‚ฌ๋žŒ์€? +- ์ž…์†Œ๋ฌธ์„ ๋‚ผ ๋งŒํ•œ ์‚ฌ๋žŒ์€? +``` + +### 2. ๊ณ ๊ฐ ์„ธ๊ทธ๋จผํŠธ ์šฐ์„ ์ˆœ์œ„ํ™” + +```markdown +## Customer Segmentation Matrix + +### Early Adopters (์ตœ์šฐ์„  ํƒ€๊ฒŸ) +"์ œํ’ˆ์ด ์™„๋ฒฝํ•˜์ง€ ์•Š์•„๋„ ๋จผ์ € ์จ์ค„ ์‚ฌ๋žŒ๋“ค" + +#### Segment 1: ํ…Œ๋‹ˆ์Šค ๋™ํ˜ธํšŒ ์šด์˜์ง„ (Primary) +**Why First?** +- Pain Point ๊ฐ•๋„: โญโญโญโญโญ (๋งค์ฃผ ์˜ˆ์•ฝ ์ „ํ™” 30ํ†ต) +- ๊ตฌ๋งค๋ ฅ: โญโญโญโญ (ํšŒ๋น„๋กœ ๊ฒฐ์ œ ๊ฐ€๋Šฅ) +- ์ž…์†Œ๋ฌธ ํŒŒ๊ธ‰๋ ฅ: โญโญโญโญโญ (ํšŒ์› 20-50๋ช…์—๊ฒŒ ์ฆ‰์‹œ ์ „ํŒŒ) +- ์ ‘๊ทผ ์šฉ์ด์„ฑ: โญโญโญโญ (๋„ค์ด๋ฒ„ ์นดํŽ˜, ๋ฐด๋“œ์— ์ง‘์ค‘) + +**Demographics** +- ๋‚˜์ด: 35-55์„ธ +- ์ง์—…: ํšŒ์‚ฌ์›, ์ž์˜์—… +- ์†Œ๋“: ์ค‘์ƒ์œ„ +- ์ง€์—ญ: ์ˆ˜๋„๊ถŒ + +**Psychographics** +- ๊ฐ€์น˜๊ด€: "์šฐ๋ฆฌ ํšŒ์›๋“ค ํŽธํ•˜๊ฒŒ ํ•ด์ฃผ๊ณ  ์‹ถ๋‹ค" +- ๊ด€์‹ฌ์‚ฌ: ๋™ํ˜ธํšŒ ํ™œ์„ฑํ™”, ํšจ์œจ์  ์šด์˜ +- ์ •๋ณด ์Šต๋“: ๋„ค์ด๋ฒ„ ์นดํŽ˜, ๋ฐด๋“œ, ์นดํ†ก ๋‹จํ†ก๋ฐฉ +- ๊ตฌ๋งค ๊ฒฐ์ •: ์‹ค์šฉ์„ฑ > ๊ฐ€๊ฒฉ (ํšŒ์›๋“ค์ด ์ข‹์•„ํ•˜๋ฉด OK) + +**Where Are They?** +1. ๋„ค์ด๋ฒ„ ์นดํŽ˜: "ํ…Œ๋‹ˆ์Šค ๋™ํ˜ธํšŒ", "XX์ง€์—ญ ํ…Œ๋‹ˆ์Šค" +2. ๋ฐด๋“œ: ์ง€์—ญ๋ณ„ ํ…Œ๋‹ˆ์Šค ๋ฐด๋“œ +3. ์นด์นด์˜คํ†ก: ๋™ํ˜ธํšŒ ๋‹จํ†ก๋ฐฉ (์ ‘๊ทผ ์–ด๋ ค์›€) +4. ์˜คํ”„๋ผ์ธ: ์ฃผ๋ง ์•„์นจ ์ฝ”ํŠธ์žฅ + +**First Touch Strategy** +โ†’ ๋„ค์ด๋ฒ„ ์นดํŽ˜ "์šด์˜์ง„ ๊ณ ๋ฏผ" ๊ฒŒ์‹œํŒ์— ์ง„์งœ ๊ฒฝํ—˜๋‹ด ์ž‘์„ฑ +โ†’ "์ €ํฌ ๋™ํ˜ธํšŒ ์˜ˆ์•ฝ ๊ด€๋ฆฌ ์ด๋ ‡๊ฒŒ ํ•ด๊ฒฐํ–ˆ์–ด์š”" (๊ด‘๊ณ  X) + + +#### Segment 2: ์ง์žฅ ๋‚ด ํ…Œ๋‹ˆ์Šค ๋™์•„๋ฆฌ ๊ฐ„์‚ฌ (Secondary) +**Why Second?** +- Pain Point: โญโญโญโญ (๋ถ„๊ธฐ๋ณ„ ์˜ˆ์•ฝ ์—…๋ฌด ์ŠคํŠธ๋ ˆ์Šค) +- ๊ตฌ๋งค๋ ฅ: โญโญโญ (๋™์•„๋ฆฌ ์˜ˆ์‚ฐ ์žˆ์Œ) +- ์ž…์†Œ๋ฌธ: โญโญโญ (๋‹ค๋ฅธ ์ง์žฅ ๋™์•„๋ฆฌ๋กœ ์ „ํŒŒ ๊ฐ€๋Šฅ) +- ์ ‘๊ทผ: โญโญโญ (๋งํฌ๋“œ์ธ, ์ง์žฅ์ธ ์ปค๋ฎค๋‹ˆํ‹ฐ) + +**Where Are They?** +1. ๋ธ”๋ผ์ธ๋“œ: "์ง์žฅ ์ƒํ™œ" ๊ฒŒ์‹œํŒ +2. ๋งํฌ๋“œ์ธ: ์ง์žฅ์ธ ๊ทธ๋ฃน +3. ์‚ฌ๋‚ด ๊ฒŒ์‹œํŒ: ์ ‘๊ทผ ์–ด๋ ค์›€ +4. ์˜คํ”ˆ ์ฑ„ํŒ…๋ฐฉ: "XX๊ธฐ์—… ํ…Œ๋‹ˆ์Šค" + + +#### Segment 3: ๊ฐœ์ธ ์—ด์„ฑ ํ”Œ๋ ˆ์ด์–ด (Tertiary) +**Why Third?** +- Pain Point: โญโญโญ (๊ฐœ์ธ ์˜ˆ์•ฝ ๋ฒˆ๊ฑฐ๋กœ์›€) +- ๊ตฌ๋งค๋ ฅ: โญโญโญโญ (๊ฐœ์ธ ๊ฒฐ์ œ) +- ์ž…์†Œ๋ฌธ: โญโญ (๊ฐœ์ธ์  ์ถ”์ฒœ) +- ์ ‘๊ทผ: โญโญโญโญโญ (์ธ์Šคํƒ€, ์œ ํŠœ๋ธŒ) + +**Where Are They?** +1. ์ธ์Šคํƒ€๊ทธ๋žจ: #ํ…Œ๋‹ˆ์Šค #ํ…Œ๋ฆฐ์ด #ํ…Œ๋‹ˆ์Šค๋ ˆ์Šจ +2. ์œ ํŠœ๋ธŒ: ํ…Œ๋‹ˆ์Šค ๋ ˆ์Šจ ์˜์ƒ ๋Œ“๊ธ€๋ž€ +3. ํ…Œ๋‹ˆ์Šค์šฉํ’ˆ ์‡ผํ•‘๋ชฐ: ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒŒ์‹œํŒ +``` + +### 3. Channel Recommendation Matrix + +```markdown +## Channel Priority by Customer Segment + +### Tier 1: Immediate Action (์ด๋ฒˆ ์ฃผ๋ถ€ํ„ฐ) +"Early Adopters๊ฐ€ ์žˆ๋Š” ๊ณณ" + +| Channel | Segment | Cost | Effort | Expected Result | +|---------|---------|------|--------|-----------------| +| ๋„ค์ด๋ฒ„ ์นดํŽ˜ | ๋™ํ˜ธํšŒ ์šด์˜์ง„ | ๋ฌด๋ฃŒ | ์ค‘ | ์ฒซ 10๋ช… ํ™•๋ณด | +| ๋ฐด๋“œ | ๋™ํ˜ธํšŒ | ๋ฌด๋ฃŒ | ์ค‘ | ์ฒซ ๋‹จ์ฒด ๊ณ ๊ฐ | +| ๋ธ”๋ผ์ธ๋“œ | ์ง์žฅ ๋™์•„๋ฆฌ | ๋ฌด๋ฃŒ | ํ•˜ | ํ”ผ๋“œ๋ฐฑ ์ˆ˜์ง‘ | + +**Action Plan (Week 1-2)** +1. ๋„ค์ด๋ฒ„ ์นดํŽ˜ 10๊ฐœ ๊ฐ€์ž… + - "์„œ์šธ ํ…Œ๋‹ˆ์Šค ๋™ํ˜ธํšŒ" + - "๊ฒฝ๊ธฐ ํ…Œ๋‹ˆ์Šค ๋ชจ์ž„" + - "์ฃผ๋ง ํ…Œ๋‹ˆ์Šค" +2. ์šด์˜์ง„ ๊ณ ๋ฏผ ๊ฒŒ์‹œํŒ์— ์ง„์งœ ๊ฒฝํ—˜๋‹ด ์ž‘์„ฑ +3. DM์œผ๋กœ ๋ฒ ํƒ€ ํ…Œ์Šคํ„ฐ ๋ชจ์ง‘ (๊ด‘๊ณ  ์•„๋‹˜) + + +### Tier 2: Medium-term Growth (2-4์ฃผ) +"์ธ์ง€๋„ ํ™•์‚ฐ" + +| Channel | Segment | Cost | Effort | Expected Result | +|---------|---------|------|--------|-----------------| +| ์ธ์Šคํƒ€๊ทธ๋žจ | ๊ฐœ์ธ ํ”Œ๋ ˆ์ด์–ด | ์ € | ์ค‘ | ๋ธŒ๋žœ๋“œ ์ธ์ง€๋„ | +| ์œ ํŠœ๋ธŒ ์‡ผ์ธ  | ์ผ๋ฐ˜ ๋Œ€์ค‘ | ์ € | ๊ณ  | ์ž์—ฐ ์œ ์ž… | +| ๋ธ”๋กœ๊ทธ SEO | ๊ฒ€์ƒ‰ ์œ ์ž… | ๋ฌด๋ฃŒ | ์ค‘ | ์žฅ๊ธฐ ์ž์‚ฐ | + +**Content Ideas** +- ์ธ์Šคํƒ€ ๋ฆด์Šค: "ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ ๊ฟ€ํŒ" +- ์œ ํŠœ๋ธŒ ์‡ผ์ธ : "๋™ํ˜ธํšŒ ์ด๋ฌด๊ฐ€ ์•Œ๋ ค์ฃผ๋Š” ์˜ˆ์•ฝ ๋น„๋ฒ•" +- ๋ธ”๋กœ๊ทธ: "์„œ์šธ ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ ๊ฐ€์ด๋“œ" + + +### Tier 3: Scale (4์ฃผ+) +"๋งค์Šค ๋งˆ์ผ€ํŒ… ์ค€๋น„" + +| Channel | Segment | Cost | Effort | Expected Result | +|---------|---------|------|--------|-----------------| +| ๋„ค์ด๋ฒ„ ๊ด‘๊ณ  | ๊ฒ€์ƒ‰ ์œ ์ž… | ์ค‘ | ํ•˜ | ๋น ๋ฅธ ํ™•์žฅ | +| ์ธํ”Œ๋ฃจ์–ธ์„œ | ๋Œ€์ค‘ | ์ค‘-๊ณ  | ์ค‘ | ๋ฐ”์ด๋Ÿด | +| ์ œํœด (์ฝ”ํŠธ) | ์žฅ์†Œ ๊ธฐ๋ฐ˜ | ๋ฌด๋ฃŒ | ๊ณ  | Win-win | + +**Note**: Tier 3๋Š” Tier 1-2 ๊ฒ€์ฆ ํ›„ ์ง„ํ–‰ +``` + +### 4. Persona-Channel-Message Mapping + +```markdown +## Integrated Marketing Map + +### Early Adopter Journey + +#### Persona: ๊น€ํšŒ์žฅ (45์„ธ, ํ…Œ๋‹ˆ์Šค ๋™ํ˜ธํšŒ ํšŒ์žฅ) + +**ํ˜„์žฌ ์ƒํ™ฉ** +- ๋งค์ฃผ ํ† ์š”์ผ ์•„์นจ ์˜ˆ์•ฝ์„ ์œ„ํ•ด 5๊ฐœ ์ฝ”ํŠธ์— ์ „ํ™” +- ํšŒ์› 25๋ช… ์ผ์ • ์กฐ์œจ์ด ๊ฐ€์žฅ ํฐ ์ŠคํŠธ๋ ˆ์Šค +- ๋„ค์ด๋ฒ„ ์นดํŽ˜์—์„œ "์ด๋ฒˆ ์ฃผ ์˜ˆ์•ฝ ์™„๋ฃŒ" ๊ณต์ง€ ์ž‘์„ฑ + +**Where**: ๋„ค์ด๋ฒ„ ์นดํŽ˜ "์„œ์šธ ํ…Œ๋‹ˆ์Šค ๋™ํ˜ธํšŒ" (ํšŒ์› 3,500๋ช…) + +**Message Hook**: +"๋™ํ˜ธํšŒ ํšŒ์žฅ๋‹˜๋“ค, ๋งค์ฃผ ์ฝ”ํŠธ ์˜ˆ์•ฝ ์ „ํ™” 30ํ†ต ๊ฑฐ๋Š” ๊ฑฐ ์ง€์น˜์ง€ ์•Š์œผ์„ธ์š”?" + +**Offer**: +"์ €ํฌ ๋™ํ˜ธํšŒ๋Š” ์ด ์•ฑ์œผ๋กœ ์˜ˆ์•ฝ ๊ด€๋ฆฌ 10๋ถ„์œผ๋กœ ์ค„์˜€์Šต๋‹ˆ๋‹ค" +โ†’ ๋ฌด๋ฃŒ ๋ฒ ํƒ€ ํ…Œ์Šคํ„ฐ ๋ชจ์ง‘ (์„ ์ฐฉ์ˆœ 10๊ฐœ ๋™ํ˜ธํšŒ) + +**Conversion Path**: +1. ์นดํŽ˜ ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ (์ง„์งœ ๊ฒฝํ—˜๋‹ด) +2. ๋Œ“๊ธ€๋กœ ๋ฌธ์˜ โ†’ DM์œผ๋กœ ์•ˆ๋‚ด +3. ์นดํ†ก ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ ์ดˆ๋Œ€ +4. ์‚ฌ์šฉ ๊ฐ€์ด๋“œ ์ œ๊ณต +5. ํ›„๊ธฐ ์ž‘์„ฑ ๋ถ€ํƒ (์ธ์„ผํ‹ฐ๋ธŒ: 1๊ฐœ์›” ๋ฌด๋ฃŒ) + + +#### Persona: ๋ฐ•๊ฐ„์‚ฌ (32์„ธ, ์ง์žฅ ํ…Œ๋‹ˆ์Šค ๋™์•„๋ฆฌ ๊ฐ„์‚ฌ) + +**Where**: ๋ธ”๋ผ์ธ๋“œ "์ง์žฅ ์ƒํ™œ" ๊ฒŒ์‹œํŒ + +**Message Hook**: +"ํ…Œ๋‹ˆ์Šค ๋™์•„๋ฆฌ ๊ฐ„์‚ฌ ๋งก์•˜๋‹ค๊ฐ€ ์˜ˆ์•ฝ ์—…๋ฌด๋กœ ํ‡ด๊ทผ ๋Šฆ์–ด๋ณธ ์  ์žˆ์œผ์‹ ๊ฐ€์š”?" + +**Offer**: +"3๋ถ„ ๋งŒ์— ๋ถ„๊ธฐ ์˜ˆ์•ฝ ์™„๋ฃŒํ•˜๋Š” ๋ฒ•" +โ†’ ์ฒดํฌ๋ฆฌ์ŠคํŠธ PDF ๋‹ค์šด๋กœ๋“œ (์ด๋ฉ”์ผ ์ˆ˜์ง‘) + +**Conversion Path**: +1. ๋ธ”๋ผ์ธ๋“œ ๊ฒŒ์‹œ๊ธ€ +2. PDF ๋‹ค์šด๋กœ๋“œ (๋žœ๋”ฉ ํŽ˜์ด์ง€) +3. ์ด๋ฉ”์ผ๋กœ ์•ฑ ์†Œ๊ฐœ +4. 7์ผ ๋ฌด๋ฃŒ ์ฒดํ—˜ +``` + +### 5. Channel Testing Framework + +```markdown +## Channel Validation Checklist + +### Week 1-2: Hypothesis Testing +๊ฐ ์ฑ„๋„์—์„œ ์ตœ์†Œ ์‹คํ—˜ ์ง„ํ–‰ + +#### Test 1: ๋„ค์ด๋ฒ„ ์นดํŽ˜ +**Hypothesis**: ๋™ํ˜ธํšŒ ์šด์˜์ง„์ด ์‹ค์ œ ์‚ฌ์šฉํ• ๊นŒ? + +**Experiment**: +- 5๊ฐœ ์นดํŽ˜์— ๊ฒฝํ—˜๋‹ด ๊ฒŒ์‹œ +- ๋ฒ ํƒ€ ํ…Œ์Šคํ„ฐ 10๋ช… ๋ชจ์ง‘ ๋ชฉํ‘œ + +**Success Metrics**: +- ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ์ˆ˜: 500+ +- DM ๋ฌธ์˜: 5+ +- ์‹ค์ œ ๊ฐ€์ž…: 3+ + +**Pivot Signal**: +- ์กฐํšŒ์ˆ˜ < 100: ๋ฉ”์‹œ์ง€ ๋ณ€๊ฒฝ +- ๋ฌธ์˜ < 2: ์ฑ„๋„ ๋ณ€๊ฒฝ + + +#### Test 2: ๋ธ”๋ผ์ธ๋“œ +**Hypothesis**: ์ง์žฅ์ธ๋“ค์ด ๊ด€์‹ฌ ๊ฐ€์งˆ๊นŒ? + +**Experiment**: +- "์ง์žฅ ์ƒํ™œ" ๊ฒŒ์‹œํŒ 2๊ฑด ์ž‘์„ฑ +- PDF ๋‹ค์šด๋กœ๋“œ 20๊ฑด ๋ชฉํ‘œ + +**Success Metrics**: +- ๊ณต๊ฐ ์ˆ˜: 10+ +- ๋Œ“๊ธ€: 5+ +- PDF ๋‹ค์šด๋กœ๋“œ: 20+ + +**Pivot Signal**: +- ๊ณต๊ฐ < 5: ํƒ€๊ฒŸ ๋ถˆ์ผ์น˜ +- ๋‹ค์šด๋กœ๋“œ < 5: ์˜คํผ ๋ณ€๊ฒฝ + + +### Week 3-4: Double Down +๊ฒ€์ฆ๋œ ์ฑ„๋„์— ์ง‘์ค‘ + +**If ๋„ค์ด๋ฒ„ ์นดํŽ˜ wins**: +โ†’ 10๊ฐœ โ†’ 30๊ฐœ ์นดํŽ˜๋กœ ํ™•๋Œ€ +โ†’ ์„ฑ๊ณต ์‚ฌ๋ก€ ์Šคํ† ๋ฆฌํ…”๋ง + +**If ๋ธ”๋ผ์ธ๋“œ wins**: +โ†’ ๋‹ค๋ฅธ ์ง์žฅ์ธ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™•๋Œ€ (๋‹น๊ทผ ๋™๋„ค์ƒํ™œ, ์—๋ธŒ๋ฆฌํƒ€์ž„) +``` + +--- + +## Output Files + +### ์ƒ์„ฑ๋  ํŒŒ์ผ๋“ค: + +1. **`docs/market/customer-segments.md`** + - Early Adopter ์šฐ์„ ์ˆœ์œ„ + - ์„ธ๊ทธ๋จผํŠธ๋ณ„ ํŠน์„ฑ ๋ฐ Pain Point + - Where they are (๊ตฌ์ฒด์  ์ฑ„๋„) + +2. **`docs/market/channel-recommendations.md`** + - Tier 1/2/3 ์ฑ„๋„ ์šฐ์„ ์ˆœ์œ„ + - ์ฑ„๋„๋ณ„ ๋น„์šฉ/๋…ธ๋ ฅ/๊ธฐ๋Œ€ํšจ๊ณผ + - ์ฃผ์ฐจ๋ณ„ ์‹คํ–‰ ๊ณ„ํš + +3. **`docs/market/persona-channel-map.md`** + - ํŽ˜๋ฅด์†Œ๋‚˜๋ณ„ ๊ณ ๊ฐ ์—ฌ์ • + - ์ฑ„๋„-๋ฉ”์‹œ์ง€ ๋งค์นญ + - ์ „ํ™˜ ๊ฒฝ๋กœ ์„ค๊ณ„ + +--- + +## Integration Points + +### ๋‹ค๋ฅธ ๋ช…๋ น์–ด์™€์˜ ์—ฐ๊ณ„: + +- **From `/appkit.customer`**: Primary Persona ํ™œ์šฉ +- **From `/appkit.mvp`**: MVP ํ•ต์‹ฌ ๊ฐ€์น˜ โ†’ ๋ฉ”์‹œ์ง€ ํ›… +- **To `/market.contents`**: ์ฑ„๋„๋ณ„ ์ฝ˜ํ…์ธ  ์•„์ด๋””์–ด +- **To `/market.channel`**: ์„ ํƒ๋œ ์ฑ„๋„์˜ ์ตœ์ ํ™” ์ „๋žต + +--- + +## Examples + +### Example 1: B2C ๋ชจ๋ฐ”์ผ ์•ฑ +```bash +$ /market.customer "ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ์˜ˆ์•ฝ ์•ฑ" + +๐ŸŽฏ Customer Segmentation Complete + +Early Adopters (์šฐ์„ ์ˆœ์œ„): +1. ํ…Œ๋‹ˆ์Šค ๋™ํ˜ธํšŒ ์šด์˜์ง„ (Primary) + โ†’ ๋„ค์ด๋ฒ„ ์นดํŽ˜, ๋ฐด๋“œ +2. ์ง์žฅ ํ…Œ๋‹ˆ์Šค ๋™์•„๋ฆฌ ๊ฐ„์‚ฌ (Secondary) + โ†’ ๋ธ”๋ผ์ธ๋“œ, ๋งํฌ๋“œ์ธ +3. ๊ฐœ์ธ ์—ด์„ฑ ํ”Œ๋ ˆ์ด์–ด (Tertiary) + โ†’ ์ธ์Šคํƒ€๊ทธ๋žจ, ์œ ํŠœ๋ธŒ + +Tier 1 Channels (์ด๋ฒˆ ์ฃผ): +โœ… ๋„ค์ด๋ฒ„ ์นดํŽ˜ 10๊ฐœ +โœ… ๋ฐด๋“œ 5๊ฐœ +โœ… ๋ธ”๋ผ์ธ๋“œ "์ง์žฅ์ƒํ™œ" + +Week 1-2 Goal: +- ์ฒซ 10๋ช… Early Adopters ํ™•๋ณด +- ์ฑ„๋„๋ณ„ A/B ํ…Œ์ŠคํŠธ +- ๊ฒ€์ฆ๋œ ์ฑ„๋„์— ์ง‘์ค‘ + +โœ… Generated customer-segments.md +โœ… Generated channel-recommendations.md +โœ… Generated persona-channel-map.md +``` + +### Example 2: B2B SaaS ํˆด +```bash +$ /market.customer "์ง์žฅ์ธ ์ผ์ • ๊ด€๋ฆฌ SaaS" + +๐ŸŽฏ Customer Segmentation Complete + +Early Adopters: +1. ์Šคํƒ€ํŠธ์—… ํŒ€์žฅ (5-10๋ช… ํŒ€) + โ†’ ๋งํฌ๋“œ์ธ, ์Šคํƒ€ํŠธ์—… ์ปค๋ฎค๋‹ˆํ‹ฐ +2. ํ”„๋ฆฌ๋žœ์„œ PM/๊ธฐํš์ž + โ†’ ๋ธŒ๋Ÿฐ์น˜, ํผ๋ธ”๋ฆฌ + +Tier 1 Channels: +โœ… ๋งํฌ๋“œ์ธ (์ „๋ฌธ๊ฐ€ ๋„คํŠธ์›Œํ‚น) +โœ… ๋””์Šค์ฝฐ์ด์—‡ (์Šคํƒ€ํŠธ์—…) +โœ… ๋ธŒ๋Ÿฐ์น˜ (์ฝ˜ํ…์ธ  ๋งˆ์ผ€ํŒ…) + +Week 1-2 Goal: +- ๋ฒ ํƒ€ ๊ณ ๊ฐ 5ํŒ€ ํ™•๋ณด +- ์‚ฌ์šฉ ์‚ฌ๋ก€ ํ™•๋ณด +- ์ถ”์ฒœ ๋ฐ”์ด๋Ÿด ์œ ๋„ + +โœ… Generated files +``` + +--- + +## Key Principles + +### Customer-First Marketing: + +1. **Segment Before Scale**: ๋Œ€์ค‘๋ณด๋‹ค ํ‹ˆ์ƒˆ ์‹œ์žฅ ๋จผ์ € +2. **Go Where They Are**: ์ƒˆ ์ฑ„๋„ ๋งŒ๋“ค์ง€ ๋ง๊ณ  ๊ธฐ์กด ๊ณต๊ฐ„์— ๋“ค์–ด๊ฐ€๊ธฐ +3. **Earn Trust First**: ๊ด‘๊ณ ํ•˜์ง€ ๋ง๊ณ  ์ง„์งœ ๊ฐ€์น˜ ์ œ๊ณต +4. **Manual Initially**: ์ž๋™ํ™” ์ „์— ์ง์ ‘ ๋Œ€ํ™” +5. **Quality > Quantity**: 1000๋ช…๋ณด๋‹ค ์ง„์งœ ์ข‹์•„ํ•˜๋Š” 10๋ช… + +### Channel Anti-Patterns: + +โŒ **Spray and Pray**: ๋ชจ๋“  ์ฑ„๋„ ๋™์‹œ ์‹œ๋„ +โŒ **Vanity Metrics**: ํŒ”๋กœ์›Œ ์ˆ˜์— ์ง‘์ฐฉ +โŒ **Ad Dependence**: ๊ด‘๊ณ ๋น„ ์—†์œผ๋ฉด ๊ณ ๊ฐ ๋ชป ๋ชจ์œผ๋Š” ๊ตฌ์กฐ +โŒ **Broadcasting**: ์ผ๋ฐฉ์  ํ™๋ณด +โŒ **Impatience**: ์ฒซ ์ฃผ์— ๊ฒฐ๊ณผ ๊ธฐ๋Œ€ + +--- + +## Tips + +### ์„ฑ๊ณต์ ์ธ Early Adopter ํ™•๋ณด๋ฅผ ์œ„ํ•ด: + +1. **Micro-Segment**: ์ž‘๊ณ  ๊ตฌ์ฒด์ ์ธ ์„ธ๊ทธ๋จผํŠธ๋ถ€ํ„ฐ + - "ํ…Œ๋‹ˆ์Šค ์ข‹์•„ํ•˜๋Š” ์‚ฌ๋žŒ" โŒ + - "์ฃผ๋ง ์•„์นจ ํ…Œ๋‹ˆ์Šค ๋™ํ˜ธํšŒ ์šด์˜์ง„" โœ… + +2. **Real Pain Only**: ์ง„์งœ ์•„ํ”ˆ ๋ฌธ์ œ๋งŒ ํƒ€๊ฒŸ + - "์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์€๋ฐ" โŒ + - "์ด๊ฑฐ ์—†์œผ๋ฉด ์ง„์งœ ํž˜๋“ค์–ด" โœ… + +3. **Community First**: ๊ฐœ์ธ๋ณด๋‹ค ์ปค๋ฎค๋‹ˆํ‹ฐ + - ๊ฐœ์ธ 1๋ช… ์ „ํ™˜ < ๋™ํ˜ธํšŒ ํšŒ์žฅ 1๋ช… ์ „ํ™˜ (20๋ช… ๋™๋ฐ˜) + +4. **Earn Your Way In**: ์ŠคํŒธํ•˜์ง€ ๋ง๊ณ  ์‹ ๋ขฐ ์Œ“๊ธฐ + - "์šฐ๋ฆฌ ์ œํ’ˆ ์จ์ฃผ์„ธ์š”" โŒ + - "์ œ๊ฐ€ ์ด๋Ÿฐ ๊ณ ๋ฏผ ํ•ด๊ฒฐํ–ˆ๋Š”๋ฐ ๋„์›€ ๋ ๊นŒ์š”?" โœ… + +5. **Test Fast, Pivot Faster**: 2์ฃผ ์•ˆ์— ๊ฒ€์ฆ + - ๋ฐ˜์‘ ์—†์œผ๋ฉด ๊ณผ๊ฐํžˆ ์ฑ„๋„/๋ฉ”์‹œ์ง€ ๋ณ€๊ฒฝ + +--- + +## Next Steps + +### ์ด ๋ช…๋ น์–ด ์‹คํ–‰ ํ›„: + +**๐Ÿ“ ๋‹ค์Œ ๋‹จ๊ณ„: `/market.contents`** (์ฝ˜ํ…์ธ  ์ „๋žต) +- ํƒ€๊ฒŸ ์ฑ„๋„์ด ์ •ํ•ด์กŒ์œผ๋‹ˆ ์–ด๋–ค ์ฝ˜ํ…์ธ ๋ฅผ ๋งŒ๋“ค์ง€ ๊ธฐํš +- ํ•˜๋‚˜์˜ ํ•ต์‹ฌ ๋ฉ”์‹œ์ง€๋ฅผ 10๊ฐ€์ง€ ํฌ๋งท์œผ๋กœ ์žฌํ™œ์šฉ +- ์ฑ„๋„๋ณ„ ์ตœ์  ์ฝ˜ํ…์ธ  ํ˜•์‹ ์ œ์•ˆ + +--- + +## Version + +- **Version**: 1.0.0 +- **Created**: 2025-11-20 +- **Philosophy**: "Find the smallest viable audience that loves you, not the largest possible audience that's indifferent." diff --git a/.claude/skills/README.md b/.claude/skills/README.md new file mode 100644 index 0000000..04fdd13 --- /dev/null +++ b/.claude/skills/README.md @@ -0,0 +1,195 @@ +# AI_์žก๋Œ์ด Skills Overview + +์ด ๋””๋ ‰ํ† ๋ฆฌ๋Š” ํ”„๋กœ์ ํŠธ ์ „์šฉ AI ์Šคํ‚ฌ๋“ค์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์Šคํ‚ฌ์€ ํŠน์ • ์ฝ˜ํ…์ธ  ์ œ์ž‘ ์ž‘์—…์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. + +## ๐Ÿ“š Available Skills + +### 1๏ธโƒฃ YouTube Narration Coach +**๋””๋ ‰ํ† ๋ฆฌ**: `youtube-narration-coach/` +**๋ชฉ์ **: ์œ ํŠœ๋ธŒ ๋‚˜๋ ˆ์ด์…˜ ๋Œ€๋ณธ ๋ถ„์„ ๋ฐ ๊ฐœ์„  + +**์ฃผ์š” ๊ธฐ๋Šฅ**: +- 7๋‹จ๊ณ„ ํ”„๋ ˆ์ž„์›Œํฌ ๊ธฐ๋ฐ˜ ๋ถ„์„ (HOOKโ†’PROBLEMโ†’AGITATEโ†’SOLUTIONโ†’VALUEโ†’PROOFโ†’CTA) +- ํ•œ๊ตญ ์‹œ์ฒญ์ž ์‹ฌ๋ฆฌ ํŠธ๋ฆฌ๊ฑฐ ์ฒดํฌ +- ์„น์…˜๋ณ„ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ œ๊ณต +- ๊ตฌ์ฒดํ™” ์งˆ๋ฌธ์„ ํ†ตํ•œ ์ฝ”์นญ ๋ฐฉ์‹ +- ์™„์ฃผ์œจ ์ตœ์ ํ™” ํ”ผ๋“œ๋ฐฑ + +**์‚ฌ์šฉ ๋ฐฉ๋ฒ•**: +``` +"์ด ๋Œ€๋ณธ ๋ถ„์„ํ•ด์ค˜" +"์œ ํŠœ๋ธŒ ์Šคํฌ๋ฆฝํŠธ ํ”ผ๋“œ๋ฐฑ ํ•„์š”ํ•ด" +"ํ”„๋ ˆ์ž„์›Œํฌ ์ ์šฉํ•ด์„œ ๋ด์ค˜" +``` + +--- + +### 2๏ธโƒฃ Landing Page Copywriter +**๋””๋ ‰ํ† ๋ฆฌ**: `landing-page-copywriter/` +**๋ชฉ์ **: ๊ณ ์ „ํ™˜์œจ ๋žœ๋”ฉํŽ˜์ด์ง€ ์นดํ”ผ ์ƒ์„ฑ + +**์ฃผ์š” ๊ธฐ๋Šฅ**: +- PAS/AIDA/StoryBrand ํ”„๋ ˆ์ž„์›Œํฌ ์ ์šฉ +- Hero, Problem, Solution, CTA ์„น์…˜ ์ƒ์„ฑ +- A/B ํ…Œ์ŠคํŠธ ์ œ์•ˆ +- ์ „ํ™˜ ์ตœ์ ํ™” ํŒ +- ์‚ฌํšŒ์  ์ฆ๊ฑฐ ๊ตฌ์กฐํ™” + +**์‚ฌ์šฉ ๋ฐฉ๋ฒ•**: +``` +"์ด ์ œํ’ˆ์œผ๋กœ ๋žœ๋”ฉํŽ˜์ด์ง€ ์นดํ”ผ ์จ์ค˜" +"PAS ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ์„ธ์ผ์ฆˆ ํŽ˜์ด์ง€ ๋งŒ๋“ค์–ด์ค˜" +"CTA ์ตœ์ ํ™”ํ•ด์ค˜" +``` + +--- + +### 3๏ธโƒฃ PPT Slide Extractor โœจ +**๋””๋ ‰ํ† ๋ฆฌ**: `ppt-slide-extractor/` +**๋ชฉ์ **: ์œ ํŠœ๋ธŒ ๋‚˜๋ ˆ์ด์…˜ ๋Œ€๋ณธ์—์„œ ์˜์ƒ ์†ก์ถœ์šฉ PPT ์žฅํ‘œ ์ถ”์ถœ + +**ํ•ต์‹ฌ ์ปจ์…‰**: +- ์œ ํŠœ๋ธŒ ์‹œ์ฒญ์ž๊ฐ€ ๋‚˜๋ ˆ์ด์…˜๊ณผ ํ•จ๊ป˜ ๋ณด๋Š” ์‹œ๊ฐ ์ž๋ฃŒ +- ๋ณต์žกํ•œ ์„ค๋ช…์„ ๋‹จ์ˆœํ™”ํ•ด์„œ ์ „๋‹ฌ +- ์˜คํ”„๋ผ์ธ ๋ฐœํ‘œ ์ž๋ฃŒ ์•„๋‹˜ (๋ฐœํ‘œ์ž ๋…ธํŠธ, ์ œ์Šค์ฒ˜ ๊ฐ€์ด๋“œ X) + +**์ฃผ์š” ๊ธฐ๋Šฅ**: +- 6๊ฐ€์ง€ ์žฅํ‘œ ํƒ€์ž… ์ž๋™ ๋ถ„๋ฅ˜ (Title/Problem/Process/Comparison/Data/CTA) +- ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ ์ถ”์ถœ (5๊ฐœ ์ดํ•˜) +- ์ด๋ฏธ์ง€ ์ œ์•ˆ (๊ฐ„๋‹จํžˆ 1-2์ค„) +- ํƒ€์ž„์Šคํƒฌํ”„ ์—ฐ๋™ + +**ํ•ต์‹ฌ ์›์น™**: +- **1์žฅ = 1๋ฉ”์‹œ์ง€**: ํ•œ ์Šฌ๋ผ์ด๋“œ์— ํ•˜๋‚˜์˜ ํ•ต์‹ฌ๋งŒ +- **3์ดˆ ๋ฃฐ**: ์‹œ์ฒญ์ž๊ฐ€ 3์ดˆ ์•ˆ์— ํŒŒ์•… ๊ฐ€๋Šฅ +- **Less is More**: ํ…์ŠคํŠธ ์ตœ์†Œํ™”, ํ‚ค์›Œ๋“œ ์ค‘์‹ฌ +- **๋‚˜๋ ˆ์ด์…˜ ๋ณด์กฐ**: ์Šฌ๋ผ์ด๋“œ๋Š” ๋งํ•˜๋Š” ๋‚ด์šฉ์˜ ์‹œ๊ฐ์  ๋ณด์กฐ + +**์žฅํ‘œ ํƒ€์ž…**: +1. **ํƒ€์ดํ‹€**: ์˜์ƒ ์‹œ์ž‘, ์„น์…˜ ์ „ํ™˜ +2. **๋ฌธ์ œ ์ œ์‹œ**: ๊ณ ํ†ต ํฌ์ธํŠธ ์‹œ๊ฐํ™” +3. **ํ”„๋กœ์„ธ์Šค**: ๋‹จ๊ณ„๋ณ„ ์›Œํฌํ”Œ๋กœ์šฐ (1โ†’2โ†’3โ†’4) +4. **๋น„๊ต**: Before/After, A vs B +5. **๋ฐ์ดํ„ฐ**: ์ˆซ์ž, ํ†ต๊ณ„, ์‚ฌํšŒ์  ์ฆ๊ฑฐ +6. **CTA**: ํ–‰๋™ ์œ ๋„ (3๋‹จ๊ณ„ ๊น”๋•Œ๊ธฐ) + +**์ถœ๋ ฅ ๊ตฌ์กฐ** (์‹ฌํ”Œ): +``` +SLIDE #N: [ํƒ€์ž…] +โ”œโ”€ โฐ [0:00-0:15] +โ”œโ”€ ์ œ๋ชฉ: [5-8๋‹จ์–ด] +โ”œโ”€ ๋‚ด์šฉ: [ํ‚ค์›Œ๋“œ 3-5๊ฐœ] +โ””โ”€ ์ด๋ฏธ์ง€: [๊ฐ„๋‹จํ•œ ์„ค๋ช… 1-2์ค„] +``` + +**์‚ฌ์šฉ ๋ฐฉ๋ฒ•**: +``` +"์ด ๋‚˜๋ ˆ์ด์…˜์œผ๋กœ PPT ๋งŒ๋“ค์–ด์ค˜" +"๋Œ€๋ณธ์—์„œ ์žฅํ‘œ ๋ฝ‘์•„์ค˜" +"์˜์ƒ์šฉ ์Šฌ๋ผ์ด๋“œ ํ•„์š”ํ•ด" +"์œ ํŠœ๋ธŒ PPT ์ถ”์ถœํ•ด์ค˜" +``` + +**์˜ˆ์ƒ ์žฅํ‘œ ์ˆ˜**: +- 10๋ถ„ ์˜์ƒ: 8-12์žฅ +- 15๋ถ„ ์˜์ƒ: 12-18์žฅ +- ํ‰๊ท : 1-1.5๋ถ„๋‹น 1์žฅ + +--- + +## ๐ŸŽฏ Skills Usage Workflow + +### Workflow 1: ๋Œ€๋ณธ ์ž‘์„ฑ โ†’ ์žฅํ‘œ ์ถ”์ถœ +``` +1. YouTube Narration Coach๋กœ ๋Œ€๋ณธ ์ž‘์„ฑ/๊ฐœ์„  + โ†“ +2. ํ”„๋ ˆ์ž„์›Œํฌ ๊ธฐ๋ฐ˜ ์™„์„ฑ๋„ ๊ฒ€์ฆ + โ†“ +3. PPT Slide Extractor๋กœ ์žฅํ‘œ ์ž๋™ ์ถ”์ถœ + โ†“ +4. ๋””์ž์ด๋„ˆ์—๊ฒŒ ์ „๋‹ฌ or ์ง์ ‘ PPT ์ œ์ž‘ +``` + +### Workflow 2: ์ œํ’ˆ โ†’ ๋žœ๋”ฉํŽ˜์ด์ง€ โ†’ ๋ฐœํ‘œ ์ž๋ฃŒ +``` +1. Landing Page Copywriter๋กœ ์ œํ’ˆ ์นดํ”ผ ์ž‘์„ฑ + โ†“ +2. YouTube Narration Coach๋กœ ๋ฐœํ‘œ ๋Œ€๋ณธ ๋ณ€ํ™˜ + โ†“ +3. PPT Slide Extractor๋กœ ํ”ผ์น˜๋ฑ ์ƒ์„ฑ +``` + +--- + +## ๐Ÿ“ Directory Structure + +``` +.claude/skills/ +โ”œโ”€โ”€ README.md (์ด ํŒŒ์ผ) +โ”œโ”€โ”€ youtube-narration-coach/ +โ”‚ โ””โ”€โ”€ SKILL.md (์Šคํ‚ฌ ์ •์˜) +โ”œโ”€โ”€ landing-page-copywriter/ +โ”‚ โ””โ”€โ”€ SKILL.md +โ””โ”€โ”€ ppt-slide-extractor/ + โ””โ”€โ”€ SKILL.md +``` + +--- + +## ๐Ÿ”ง How Skills Work + +### Activation +์Šคํ‚ฌ์€ ๋‹ค์Œ ์ƒํ™ฉ์—์„œ ์ž๋™ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค: +1. **ํ‚ค์›Œ๋“œ ๊ฐ์ง€**: ํŠน์ • ๋‹จ์–ด/๊ตฌ๋ฌธ ๊ฐ์ง€ ์‹œ +2. **ํŒŒ์ผ ํ™•์žฅ์ž**: `.md`, `.txt` ๋Œ€๋ณธ ํŒŒ์ผ ์ œ๊ณต ์‹œ +3. **๋ช…์‹œ์  ์š”์ฒญ**: "~ํ•ด์ค˜" ํ˜•ํƒœ์˜ ์ง์ ‘ ์š”์ฒญ + +### Coordination +์—ฌ๋Ÿฌ ์Šคํ‚ฌ์ด ๋™์‹œ์— ํ•„์š”ํ•œ ๊ฒฝ์šฐ, Claude๊ฐ€ ์ž๋™์œผ๋กœ ์กฐ์œจํ•ฉ๋‹ˆ๋‹ค: +- **์ˆœ์ฐจ ์‹คํ–‰**: ๋Œ€๋ณธ ์ž‘์„ฑ โ†’ ๋ถ„์„ โ†’ ์žฅํ‘œ ์ถ”์ถœ +- **๋ณ‘๋ ฌ ์‹คํ–‰**: ๋žœ๋”ฉํŽ˜์ด์ง€ ์นดํ”ผ + PPT ์Šฌ๋ผ์ด๋“œ ๋™์‹œ ์ƒ์„ฑ +- **๋ฐ˜๋ณต ๊ฐœ์„ **: ํ”ผ๋“œ๋ฐฑ โ†’ ์ˆ˜์ • โ†’ ์žฌ์ถ”์ถœ + +--- + +## ๐Ÿ’ก Best Practices + +### For YouTube Narration Coach +- ๋Œ€๋ณธ ์ดˆ์•ˆ ๋‹จ๊ณ„๋ถ€ํ„ฐ ํ™œ์šฉ +- ์„น์…˜๋ณ„ ์ˆœ์ฐจ ๊ฐœ์„  (ํ•œ ๋ฒˆ์— ๋‹ค ๊ณ ์น˜๊ธฐ X) +- ํ”„๋ ˆ์ž„์›Œํฌ ์งˆ๋ฌธ์— ๊ตฌ์ฒด์ ์œผ๋กœ ๋‹ต๋ณ€ + +### For Landing Page Copywriter +- ์ œํ’ˆ/์„œ๋น„์Šค ์ •๋ณด ๊ตฌ์ฒด์ ์œผ๋กœ ์ œ๊ณต +- ํƒ€๊ฒŸ ์ฒญ์ค‘ ๋ช…ํ™•ํžˆ ์ •์˜ +- A/B ํ…Œ์ŠคํŠธ ์ œ์•ˆ ์ ๊ทน ํ™œ์šฉ + +### For PPT Slide Extractor +- ๋Œ€๋ณธ ์™„์„ฑ๋„ 70% ์ด์ƒ์ผ ๋•Œ ์‚ฌ์šฉ +- ์žฅํ‘œ ์Šคํƒ€์ผ ๋ฏธ๋ฆฌ ์„ ํƒ (๋ฏธ๋‹ˆ๋ฉ€/์ •๋ณดํ˜•/ํ˜ผํ•ฉ) +- ์ถ”์ถœ ํ›„ ํŠน์ • ์Šฌ๋ผ์ด๋“œ๋งŒ ์ˆ˜์ • ๊ฐ€๋Šฅ +- ๋””์ž์ธ ๊ฐ€์ด๋“œ๋ผ์ธ์„ ๋””์ž์ด๋„ˆ์—๊ฒŒ ์ „๋‹ฌ + +--- + +## ๐Ÿš€ Coming Soon + +### Planned Skills +- **Video Script Analyzer**: ์˜์ƒ ํŽธ์ง‘ ํƒ€์ž„๋ผ์ธ ์ƒ์„ฑ +- **Thumbnail Copy Generator**: ์ธ๋„ค์ผ ํ…์ŠคํŠธ ์ถ”์ถœ +- **SEO Optimizer**: ์ œ๋ชฉ/ํƒœ๊ทธ/์„ค๋ช… ์ตœ์ ํ™” +- **A/B Test Generator**: ๋‹ค์–‘ํ•œ ๋ฒ„์ „ ์ž๋™ ์ƒ์„ฑ + +--- + +## ๐Ÿ“ž Feedback + +์Šคํ‚ฌ ๊ฐœ์„  ์ œ์•ˆ์ด๋‚˜ ๋ฒ„๊ทธ ๋ฆฌํฌํŠธ: +- ํ”„๋กœ์ ํŠธ ์ด์Šˆ ํŠธ๋ž˜์ปค ์‚ฌ์šฉ +- ๋˜๋Š” CLAUDE.md์— ํ”ผ๋“œ๋ฐฑ ์„น์…˜ ์ถ”๊ฐ€ + +--- + +**Last Updated**: 2025-11-08 +**Total Skills**: 3 +**Latest Addition**: PPT Slide Extractor v1.0 diff --git a/.claude/skills/beginner-friendly-script-improver/skill.md b/.claude/skills/beginner-friendly-script-improver/skill.md new file mode 100644 index 0000000..46327df --- /dev/null +++ b/.claude/skills/beginner-friendly-script-improver/skill.md @@ -0,0 +1,554 @@ +--- +name: beginner-friendly-script-improver +description: ๋น„๊ฐœ๋ฐœ์ž ๋Œ€์ƒ ๋Œ€๋ณธ ๊ฐœ์„  ์ „๋ฌธ๊ฐ€. ๊ธฐ์ˆ  ์šฉ์–ด โ†’ ์‰ฌ์šด ์„ค๋ช… ๋ณ€ํ™˜, ์ถ”์ƒ ๊ฐœ๋… โ†’ ๊ตฌ์ฒด์  ๋น„์œ , ์ „๋ฌธ ์šฉ์–ด ์ฒซ ๋“ฑ์žฅ ์‹œ ๊ด„ํ˜ธ ์„ค๋ช… ์ž๋™ ์ถ”๊ฐ€. ์ดํ•ด๋„ 95% ์œ ์ง€ํ•˜๋ฉฐ ์ ‘๊ทผ์„ฑ ๊ทน๋Œ€ํ™”. +--- + +# Beginner-Friendly Script Improver + +๋น„๊ฐœ๋ฐœ์ž๋„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ธฐ์ˆ /๊ฐœ๋ฐœ ๊ด€๋ จ ๋Œ€๋ณธ์„ ๊ฐœ์„ ํ•˜๋Š” ์ „๋ฌธ๊ฐ€์ž…๋‹ˆ๋‹ค. + +## Core Principles (ํ•ต์‹ฌ ์›์น™) + +### ๐ŸŽฏ Mission +**"๊ฐœ๋ฐœ ์ง€์‹ ์ œ๋กœ์ธ ์‚ฌ๋žŒ๋„ 95% ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ"** + +- ๊ธฐ์ˆ  ์šฉ์–ด โ†’ ์ผ์ƒ ์–ธ์–ด +- ์ถ”์ƒ ๊ฐœ๋… โ†’ ๊ตฌ์ฒด์  ๋น„์œ  +- ์ „๋ฌธ ์šฉ์–ด โ†’ ์ฆ‰์‹œ ์„ค๋ช… +- ๋ณต์žกํ•œ ๊ฐœ๋… โ†’ ๋‹จ๊ณ„์  ์„ค๋ช… + +### โœ… DO (๋ฐ˜๋“œ์‹œ ํ•ด์•ผ ํ•  ๊ฒƒ) +1. **์ฒซ ๋“ฑ์žฅ ์šฉ์–ด๋Š” ์ฆ‰์‹œ ์„ค๋ช…** + - "LLM" โ†’ "LLM(ChatGPT, Claude ๊ฐ™์€ ๋Œ€๊ทœ๋ชจ AI ์–ธ์–ด ๋ชจ๋ธ)" + - "API" โ†’ "API(ํ”„๋กœ๊ทธ๋žจ๋“ค๋ผ๋ฆฌ ๋Œ€ํ™”ํ•˜๋Š” ํ†ต๋กœ)" + +2. **๋น„์œ ๋กœ ์„ค๋ช…** + - "๋กœ์ปฌ ์„ค์น˜" โ†’ "๋‚ด ์ง‘์— ์š”๋ฆฌ์‚ฌ ๊ณ ์šฉํ•˜๋Š” ๊ฒƒ" + - "์›น UI" โ†’ "์‹๋‹น์— ๊ฐ€์„œ ์ฃผ๋ฌธํ•˜๋Š” ๊ฒƒ" + +3. **๊ตฌ์ฒด์  ์˜ˆ์‹œ ์ถ”๊ฐ€** + - "Skills" โ†’ "๋งˆ์น˜ ์—‘์…€ ํ•จ์ˆ˜์ฒ˜๋Ÿผ, ์ž…๋ ฅ ๋„ฃ์œผ๋ฉด ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ด" + +4. **๋น„๊ตํ‘œ๋กœ ์ •๋ฆฌ** + - ๋ณต์žกํ•œ ์ฐจ์ด์ ์€ ํ‘œ๋กœ ์‹œ๊ฐํ™” + +### โŒ DON'T (์ ˆ๋Œ€ ํ•˜์ง€ ๋ง ๊ฒƒ) +1. **์ „๋ฌธ ์šฉ์–ด ๋‚˜์—ด** + - โŒ "LLM์„ ๋กœ์ปฌ์— ์„ค์น˜ํ•ด์„œ API๋กœ ์—ฐ๋™" + - โœ… "AI๋ฅผ ๋‚ด ์ปดํ“จํ„ฐ์— ์„ค์น˜ํ•ด์„œ ์‚ฌ์šฉ" + +2. **์„ค๋ช… ์—†๋Š” ์˜๋ฌธ ์•ฝ์–ด** + - โŒ "MCP๋ฅผ ํ†ตํ•ด" + - โœ… "MCP(AI์—๊ฒŒ ์™ธ๋ถ€ ์ •๋ณด๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ)๋ฅผ ํ†ตํ•ด" + +3. **๋‹น์—ฐํ•˜๋‹ค๊ณ  ๊ฐ€์ •** + - โŒ "VS Code์—์„œ" (์„ค๋ช… ์—†์ด) + - โœ… "VS Code(์ฝ”๋“œ ํŽธ์ง‘ ํ”„๋กœ๊ทธ๋žจ, ๋ฌด๋ฃŒ)์—์„œ" + +--- + +## ๐Ÿ” Analysis Framework (๋ถ„์„ ์ฒด๊ณ„) + +๋Œ€๋ณธ์„ ๋ถ„์„ํ•  ๋•Œ ๋‹ค์Œ ํ•ญ๋ชฉ์„ ์ฒดํฌ: + +### 1๏ธโƒฃ ์ „๋ฌธ ์šฉ์–ด ์Šค์บ” + +**์ฒดํฌ๋ฆฌ์ŠคํŠธ**: +- [ ] ๊ธฐ์ˆ  ์šฉ์–ด (LLM, API, JSON, IDE, CLI, Git ๋“ฑ) +- [ ] ๊ฐœ๋ฐœ ๋„๊ตฌ (VS Code, Node.js, npm ๋“ฑ) +- [ ] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐœ๋… (ํ•จ์ˆ˜, ๋ณ€์ˆ˜, ํด๋ž˜์Šค, ๊ฐ์ฒด ๋“ฑ) +- [ ] ๋น„์ฆˆ๋‹ˆ์Šค ์šฉ์–ด (SaaS, MVP, PMF, KPI ๋“ฑ) +- [ ] ํ”„๋ ˆ์ž„์›Œํฌ/๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ด๋ฆ„ +- [ ] ์˜๋ฌธ ์•ฝ์–ด (๋ชจ๋“  ์•ฝ์–ด) + +**๋ถ„์„ ์งˆ๋ฌธ**: +1. "์ด ์šฉ์–ด๊ฐ€ ์ฒ˜์Œ ๋“ฑ์žฅํ•˜๋Š”๊ฐ€?" +2. "๋น„๊ฐœ๋ฐœ์ž๊ฐ€ ์ด ์šฉ์–ด๋ฅผ ์•Œ๊ณ  ์žˆ์„๊นŒ?" +3. "์„ค๋ช… ์—†์ด ๋„˜์–ด๊ฐ€๋„ ์ดํ•ด ๊ฐ€๋Šฅํ•œ๊ฐ€?" + +### 2๏ธโƒฃ ์ถ”์ƒ ๊ฐœ๋… ์Šค์บ” + +**์ฒดํฌ๋ฆฌ์ŠคํŠธ**: +- [ ] ๋กœ์ปฌ vs ํด๋ผ์šฐ๋“œ +- [ ] ํ”„๋ก ํŠธ์—”๋“œ vs ๋ฐฑ์—”๋“œ +- [ ] ๋™๊ธฐ vs ๋น„๋™๊ธฐ +- [ ] ๊ฐ์ฒด์ง€ํ–ฅ, ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ +- [ ] ์›Œํฌํ”Œ๋กœ์šฐ, ํŒŒ์ดํ”„๋ผ์ธ +- [ ] ์•„ํ‚คํ…์ฒ˜, ์ธํ”„๋ผ + +**๊ฐœ์„  ๋ฐฉ๋ฒ•**: +- ์ผ์ƒ ๋น„์œ ๋กœ ๋ณ€ํ™˜ +- ์‹œ๊ฐ์  ๋น„๊ต (ํ‘œ, ๋„์‹) +- ๋‹จ๊ณ„๋ณ„ ๋ถ„ํ•ด + +### 3๏ธโƒฃ ์ปจํ…์ŠคํŠธ ๋ถ€์กฑ ์Šค์บ” + +**์ฒดํฌ๋ฆฌ์ŠคํŠธ**: +- [ ] "์ด๊ฑธ ์™œ ํ•ด์•ผ ํ•˜๋Š”๊ฐ€?" ์„ค๋ช… ํ•„์š” +- [ ] "์ด๊ฒŒ ๋ญ”๊ฐ€?" ์ •์˜ ํ•„์š” +- [ ] "์–ด๋–ป๊ฒŒ ์ƒ๊ธด ๊ฑด๊ฐ€?" ์‹œ๊ฐ์  ์„ค๋ช… ํ•„์š” +- [ ] "์‹ค์ œ๋กœ๋Š” ์–ด๋–ค ๊ฑด๊ฐ€?" ์˜ˆ์‹œ ํ•„์š” + +--- + +## ๐Ÿ“š ์šฉ์–ด ๋ณ€ํ™˜ ์‚ฌ์ „ + +### ๊ฐœ๋ฐœ ๋„๊ตฌ & ํ™˜๊ฒฝ + +| ์ „๋ฌธ ์šฉ์–ด | ์‰ฌ์šด ์„ค๋ช… | ๋น„์œ /์˜ˆ์‹œ | +|----------|----------|----------| +| LLM | ChatGPT, Claude ๊ฐ™์€ ๋Œ€๊ทœ๋ชจ AI ์–ธ์–ด ๋ชจ๋ธ | - | +| ๋กœ์ปฌ ์„ค์น˜ | ๋‚ด ์ปดํ“จํ„ฐ์— ์ง์ ‘ ์„ค์น˜ | ๋‚ด ์ง‘์— ์š”๋ฆฌ์‚ฌ ๊ณ ์šฉ | +| ์›น UI | ์›น์‚ฌ์ดํŠธ ํ™”๋ฉด | ์‹๋‹น์— ๊ฐ€์„œ ์ฃผ๋ฌธ | +| API | ํ”„๋กœ๊ทธ๋žจ๋“ค๋ผ๋ฆฌ ๋Œ€ํ™”ํ•˜๋Š” ํ†ต๋กœ | ์ „ํ™”์„  | +| VS Code | ์ฝ”๋“œ ํŽธ์ง‘ ํ”„๋กœ๊ทธ๋žจ (๋ฌด๋ฃŒ) | ๋ฉ”๋ชจ์žฅ์˜ ๊ฐ•๋ ฅ ๋ฒ„์ „ | +| IDE | ๊ฐœ๋ฐœ ๋„๊ตฌ ํ”„๋กœ๊ทธ๋žจ | - | +| CLI | ๋ช…๋ น์–ด ์ž…๋ ฅ ์ฐฝ | - | +| JSON | ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ฆฌํ•ด์„œ ์ €์žฅํ•˜๋Š” ํ…์ŠคํŠธ ํ˜•์‹ | ์—‘์…€์„ ํ…์ŠคํŠธ๋กœ | +| Git | ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ | ๋ฌธ์„œ ๋ณ€๊ฒฝ ์ด๋ ฅ ์ถ”์  | +| Node.js | JavaScript ์‹คํ–‰ ํ”„๋กœ๊ทธ๋žจ | - | + +### ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐœ๋… + +| ์ „๋ฌธ ์šฉ์–ด | ์‰ฌ์šด ์„ค๋ช… | ๋น„์œ /์˜ˆ์‹œ | +|----------|----------|----------| +| ํ•จ์ˆ˜ | ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ช…๋ น์–ด ๋ฌถ์Œ | ์žํŒ๊ธฐ (์ž…๋ ฅโ†’๊ฒฐ๊ณผ) | +| ๋ณ€์ˆ˜ | ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ์ƒ์ž | ์ด๋ฆ„ํ‘œ ๋ถ™์€ ๋ฐ”๊ตฌ๋‹ˆ | +| ๊ฐ์ฒด | ๊ด€๋ จ ์ •๋ณด๋ฅผ ๋ฌถ์–ด๋†“์€ ๊ฒƒ | ํ”„๋กœํ•„ ์นด๋“œ | +| ํด๋ž˜์Šค | ๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ์„ค๊ณ„๋„ | ๋ถ•์–ด๋นต ํ‹€ | +| ์›Œํฌํ”Œ๋กœ์šฐ | ์—…๋ฌด ํ๋ฆ„, ์ž‘์—… ์ˆœ์„œ | ์š”๋ฆฌ ๋ ˆ์‹œํ”ผ | +| ํŒŒ์ดํ”„๋ผ์ธ | ์—ฌ๋Ÿฌ ์ž‘์—…์ด ์ˆœ์ฐจ์ ์œผ๋กœ ์ง„ํ–‰๋˜๋Š” ๊ณผ์ • | ๊ณต์žฅ ์กฐ๋ฆฝ ๋ผ์ธ | + +### AI/ML ์šฉ์–ด + +| ์ „๋ฌธ ์šฉ์–ด | ์‰ฌ์šด ์„ค๋ช… | ๋น„์œ /์˜ˆ์‹œ | +|----------|----------|----------| +| ํ”„๋กฌํ”„ํŠธ | AI์—๊ฒŒ ์ฃผ๋Š” ์ง€์‹œ๋ฌธ | ์ง์›์—๊ฒŒ ์ฃผ๋Š” ์—…๋ฌด ์ง€์‹œ | +| ์ปจํ…์ŠคํŠธ | AI๊ฐ€ ์ดํ•ดํ•˜๋Š” ์ƒํ™ฉ ์ •๋ณด | ๋Œ€ํ™”์˜ ์•ž๋’ค ๋งฅ๋ฝ | +| ํ† ํฐ | AI๊ฐ€ ์ฒ˜๋ฆฌํ•˜๋Š” ํ…์ŠคํŠธ ๋‹จ์œ„ | ๋‹จ์–ด ์กฐ๊ฐ | +| ํŒŒ์ธํŠœ๋‹ | AI๋ฅผ ํŠน์ • ๋ชฉ์ ์— ๋งž๊ฒŒ ์žฌํ•™์Šต | ์‹ ์ž…์‚ฌ์› ์ง๋ฌด ๊ต์œก | +| MCP | AI์—๊ฒŒ ์™ธ๋ถ€ ์ •๋ณด๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ | ์Šค๋งˆํŠธํฐ ์•ฑ | + +### ๋น„์ฆˆ๋‹ˆ์Šค ์šฉ์–ด + +| ์ „๋ฌธ ์šฉ์–ด | ์‰ฌ์šด ์„ค๋ช… | ๋น„์œ /์˜ˆ์‹œ | +|----------|----------|----------| +| SaaS | ๊ตฌ๋…ํ˜• ์›น ์„œ๋น„์Šค | ๋„ทํ”Œ๋ฆญ์Šค, ๋ฉœ๋ก  | +| MVP | ์ตœ์†Œ ๊ธฐ๋Šฅ ์ œํ’ˆ | ํ”„๋กœํ† ํƒ€์ž… | +| PMF | ์ œํ’ˆ-์‹œ์žฅ ์ ํ•ฉ์„ฑ | ์ œํ’ˆ์ด ์‹œ์žฅ์— ๋”ฑ ๋งž๋Š” ์ƒํƒœ | +| KPI | ํ•ต์‹ฌ ์„ฑ๊ณผ ์ง€ํ‘œ | ๋ชฉํ‘œ ๋‹ฌ์„ฑ๋ฅ  | +| AGI | ์ธ๊ฐ„ ์ˆ˜์ค€ ๋ฒ”์šฉ AI | ๋ชจ๋“  ์ผ์„ ์‚ฌ๋žŒ์ฒ˜๋Ÿผ ํ•˜๋Š” AI | +| AX | AI๋กœ ๋ชจ๋“  ๊ฒŒ ๋ฐ”๋€Œ๋Š” ์‹œ๋Œ€ | - | + +--- + +## ๐ŸŽจ ๊ฐœ์„  ํŒจํ„ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ + +### Pattern 1: ์ฒซ ๋“ฑ์žฅ ์šฉ์–ด โ†’ ๊ด„ํ˜ธ ์„ค๋ช… + +**Before**: +``` +LLM์„ ๋กœ์ปฌ์— ์„ค์น˜ํ•˜๋ฉด API๋ฅผ ํ†ตํ•ด ์ž‘์—…๋ฉ๋‹ˆ๋‹ค. +``` + +**After**: +``` +LLM(ChatGPT, Claude ๊ฐ™์€ ๋Œ€๊ทœ๋ชจ AI ์–ธ์–ด ๋ชจ๋ธ)์„ +๋‚ด ์ปดํ“จํ„ฐ์— ์ง์ ‘ ์„ค์น˜ํ•˜๋ฉด +API(ํ”„๋กœ๊ทธ๋žจ๋“ค๋ผ๋ฆฌ ๋Œ€ํ™”ํ•˜๋Š” ํ†ต๋กœ)๋ฅผ ํ†ตํ•ด ์ž‘์—…๋ฉ๋‹ˆ๋‹ค. +``` + +### Pattern 2: ์ถ”์ƒ ๊ฐœ๋… โ†’ ๊ตฌ์ฒด์  ๋น„์œ  + +**Before**: +``` +๋กœ์ปฌ LLM๊ณผ ์›น UI์˜ ์ฐจ์ด๋Š”... +``` + +**After**: +``` +๋‚ด ์ปดํ“จํ„ฐ์— ์„ค์น˜ํ•œ AI์™€ ์›น์‚ฌ์ดํŠธ์˜ ์ฐจ์ด๋Š” ์ด๋ ‡์Šต๋‹ˆ๋‹ค: + +| ๊ตฌ๋ถ„ | ์›น์‚ฌ์ดํŠธ | ๋‚ด ์ปดํ“จํ„ฐ | +|------|---------|----------| +| ๋น„์œ  | ์‹๋‹น ์ฃผ๋ฌธ | ๋‚ด ์ง‘ ์š”๋ฆฌ์‚ฌ | +| ๋งฅ๋ฝ ์ดํ•ด | ๋งค๋ฒˆ ์„ค๋ช… ํ•„์š” | ๋‚ด ์ƒํ™ฉ ์™„์ „ ํŒŒ์•… | +``` + +### Pattern 3: ๊ธฐ์ˆ  ์„ค๋ช… โ†’ ์ผ์ƒ ๋น„์œ  + +**Before**: +``` +Skills๋Š” ์ž…์ถœ๋ ฅ์ด ์ •ํ•ด์ง„ ํ•จ์ˆ˜์ด๊ณ , +SubAgent๋Š” ํŒ๋‹จ ๋กœ์ง์„ ๊ฐ€์ง„ ์—์ด์ „ํŠธ์ž…๋‹ˆ๋‹ค. +``` + +**After**: +``` +Skills(์ž๋™ ๋„๊ตฌ) โ†’ ์žํŒ๊ธฐ +- ๋ฒ„ํŠผ(์ž…๋ ฅ) ๋ˆ„๋ฅด๋ฉด ์ปคํ”ผ(๊ฒฐ๊ณผ)๊ฐ€ ๋‚˜์˜ด +- ๋งค๋ฒˆ ๋˜‘๊ฐ™์€ ๊ฒฐ๊ณผ + +SubAgent(AI ์ง์›) โ†’ ๋ฐ”๋ฆฌ์Šคํƒ€ +- "๋‹ฌ๋‹ฌํ•œ ๊ฑฐ ์ฃผ์„ธ์š”" ํ•˜๋ฉด ์ƒํ™ฉ ๋ณด๊ณ  ํŒ๋‹จ +- ๋‚ด ์ทจํ–ฅ ๊ธฐ์–ตํ•˜๊ณ  ์ถ”์ฒœ +``` + +### Pattern 4: ์ฝ”๋“œ/๊ธฐ์ˆ  โ†’ "์‹ค์ œ ํ™”๋ฉด" ์•ˆ๋‚ด + +**Before**: +```javascript +Command: /์ฝ˜ํ…์ธ -์ œ์ž‘-ํŒŒ์ดํ”„๋ผ์ธ +``` + +**After**: +``` +์ด๋Ÿฐ ์‹์œผ๋กœ ์ž๋™์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค (์‹ค์ œ ์ง„ํ–‰ ๊ณผ์ •): + +Command: /์ฝ˜ํ…์ธ -์ œ์ž‘-ํŒŒ์ดํ”„๋ผ์ธ +``` + +### Pattern 5: ๋ณต์žกํ•œ ์ฐจ์ด โ†’ ๋น„๊ตํ‘œ + +**Before**: +``` +์›น UI๋Š” ๋งค๋ฒˆ ๋งฅ๋ฝ์„ ์„ค๋ช…ํ•ด์•ผ ํ•˜๊ณ  ํŒŒ์ผ ์ ‘๊ทผ์ด ์•ˆ ๋˜์ง€๋งŒ, +๋กœ์ปฌ ์„ค์น˜๋Š” ๋‚ด ์ƒํ™ฉ์„ ํŒŒ์•…ํ•˜๊ณ  ํŒŒ์ผ์„ ์ž์œ ๋กญ๊ฒŒ ์ฝ์Šต๋‹ˆ๋‹ค. +``` + +**After**: +``` +| ๊ตฌ๋ถ„ | ์›น์‚ฌ์ดํŠธ (ChatGPT) | ๋‚ด ์ปดํ“จํ„ฐ (Claude Code) | +|------|-------------------|------------------------| +| ๋น„์œ  | ์‹๋‹น์— ๊ฐ€์„œ ์ฃผ๋ฌธ | ๋‚ด ์ง‘์— ์š”๋ฆฌ์‚ฌ ๊ณ ์šฉ | +| ๋งฅ๋ฝ ์ดํ•ด | ๋งค๋ฒˆ ์„ค๋ช… ํ•„์š” | ๋‚ด ์ƒํ™ฉ ์™„์ „ ํŒŒ์•… | +| ํŒŒ์ผ ์ ‘๊ทผ | ๋ถˆ๊ฐ€๋Šฅ | ๋‚ด ํŒŒ์ผ ์ž์œ ๋กญ๊ฒŒ ์ฝ๊ธฐ | +| ์ž๋™ํ™” | ๋ถˆ๊ฐ€๋Šฅ (๋‚ด๊ฐ€ ๊ณ„์† ์ง€์‹œ) | ๊ฐ€๋Šฅ (ํ•œ ๋ฒˆ ๋ช…๋ น์œผ๋กœ ์ „์ฒด ์‹คํ–‰) | +``` + +### Pattern 6: ์˜๋ฌธ ์•ฝ์–ด โ†’ ํ•œ๊ธ€ + ๊ด„ํ˜ธ ์„ค๋ช… + +**Before**: +``` +MCP, JSON, SaaS ๊ฐ™์€ ๊ฒƒ๋“ค... +``` + +**After**: +``` +MCP(AI์—๊ฒŒ ์™ธ๋ถ€ ์ •๋ณด๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ), +JSON(๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ฆฌํ•ด์„œ ์ €์žฅํ•˜๋Š” ํ…์ŠคํŠธ ํ˜•์‹), +SaaS(๊ตฌ๋…ํ˜• ์›น ์„œ๋น„์Šค) ๊ฐ™์€ ๊ฒƒ๋“ค... +``` + +--- + +## ๐Ÿ”„ ๊ฐœ์„  ํ”„๋กœ์„ธ์Šค + +### Step 1: ์Šค์บ” (Scan) + +**์ „์ฒด ๋Œ€๋ณธ์„ ์ฝ๊ณ  ๋‹ค์Œ์„ ์‹๋ณ„**: +- [ ] ๋น„๊ฐœ๋ฐœ์ž๊ฐ€ ๋ชจ๋ฅผ ์šฉ์–ด ๋ฆฌ์ŠคํŠธ์—… +- [ ] ์„ค๋ช… ์—†์ด ๋“ฑ์žฅํ•˜๋Š” ๊ฐœ๋… ํ‘œ์‹œ +- [ ] ์ถ”์ƒ์ ์ธ ์„ค๋ช… ๋ถ€๋ถ„ ์ฒดํฌ +- [ ] ๋น„์œ ๊ฐ€ ํ•„์š”ํ•œ ๋ถ€๋ถ„ ํ‘œ์‹œ + +**Output**: +``` +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +๐Ÿ“Š ์šฉ์–ด ๋ถ„์„ ๊ฒฐ๊ณผ +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + +๐Ÿ”ด ์ฆ‰์‹œ ๊ฐœ์„  ํ•„์š” (๋‚œ์ด๋„ โ˜…โ˜…โ˜…): +- LLM (66์ค„): ์„ค๋ช… ์—†์ด ๋“ฑ์žฅ +- API (68์ค„): ๊ธฐ์ˆ  ์šฉ์–ด ๊ทธ๋Œ€๋กœ +- VS Code (227์ค„): ์ •์ฒด ๋ถˆ๋ช… + +๐ŸŸก ๊ฐœ์„  ๊ถŒ์žฅ (๋‚œ์ด๋„ โ˜…โ˜…โ˜†): +- ์›Œํฌํ”Œ๋กœ์šฐ (104์ค„): ์™ธ๋ž˜์–ด +- JSON (243์ค„): ๋น„๊ฐœ๋ฐœ์ž ์ƒ์†Œ +- MCP (243์ค„): ์•ฝ์–ด๋งŒ ์žˆ์Œ + +๐ŸŸข ๊ฐœ์„  ์„ ํƒ (๋‚œ์ด๋„ โ˜…โ˜†โ˜†): +- AGI (130์ค„): ๋งฅ๋ฝ์ƒ ์ดํ•ด ๊ฐ€๋Šฅ +- SaaS (198์ค„): ๋น„์ฆˆ๋‹ˆ์Šค ์šฉ์–ด +``` + +### Step 2: ์šฐ์„ ์ˆœ์œ„ (Prioritize) + +**๋‚œ์ด๋„๋ณ„ ๋ถ„๋ฅ˜**: +- ๐Ÿ”ด โ˜…โ˜…โ˜… ํ•„์ˆ˜: ์ดํ•ด ๋ถˆ๊ฐ€๋Šฅ (LLM, API, VS Code) +- ๐ŸŸก โ˜…โ˜…โ˜† ๊ถŒ์žฅ: ์ดํ•ด ์–ด๋ ค์›€ (์›Œํฌํ”Œ๋กœ์šฐ, JSON) +- ๐ŸŸข โ˜…โ˜†โ˜† ์„ ํƒ: ๋งฅ๋ฝ์ƒ ์ถ”๋ก  ๊ฐ€๋Šฅ (AGI, SaaS) + +### Step 3: ๊ฐœ์„  (Improve) + +**๊ฐ ์šฉ์–ด๋ณ„ ๊ฐœ์„ ์•ˆ ์ œ์‹œ**: + +``` +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +๐Ÿ”ง ๊ฐœ์„ ์•ˆ +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + +1. LLM (66์ค„) ๐Ÿ”ด +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +Before: +"llm์„ ๋กœ์ปฌ์— ์„ค์น˜ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค." + +After: +"LLM(ChatGPT, Claude ๊ฐ™์€ ๋Œ€๊ทœ๋ชจ AI ์–ธ์–ด ๋ชจ๋ธ)์„ +๋‚ด ์ปดํ“จํ„ฐ์— ์ง์ ‘ ์„ค์น˜ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค." + +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +์ด์œ : ์ฒซ ๋“ฑ์žฅ ์‹œ ๋ฐ˜๋“œ์‹œ ์„ค๋ช… ํ•„์š” + +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + +2. API (68์ค„) ๐Ÿ”ด +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +Before: +"api๋ฅผ ํ†ตํ•ด ์ž‘์—…๋˜๋Š”๊ฑด๋ฐ" + +After: +"API(ํ”„๋กœ๊ทธ๋žจ๋“ค๋ผ๋ฆฌ ๋Œ€ํ™”ํ•˜๋Š” ํ†ต๋กœ)๋ฅผ ํ†ตํ•ด ์ž‘์—…๋˜๋Š”๊ฑด๋ฐ" + +๋˜๋Š” ๋” ์‰ฝ๊ฒŒ: +"์ธํ„ฐ๋„ท์„ ํ†ตํ•ด GPT์™€ ์—ฐ๊ฒฐ๋˜๋Š” ๊ฑด๋ฐ" + +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +์ด์œ : ๊ธฐ์ˆ  ์šฉ์–ด๋ฅผ ์ผ์ƒ ์–ธ์–ด๋กœ ๋ณ€ํ™˜ +``` + +### Step 4: ๊ฒ€์ฆ (Validate) + +**๊ฐœ์„ ๋œ ๋Œ€๋ณธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ**: +- [ ] ๋ชจ๋“  ์ „๋ฌธ ์šฉ์–ด ์ฒซ ๋“ฑ์žฅ ์‹œ ์„ค๋ช…๋จ +- [ ] ๋น„์œ ๊ฐ€ ์ ์ ˆํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์›€ +- [ ] ๋น„๊ตํ‘œ๊ฐ€ ๋ช…ํ™•ํ•จ +- [ ] ์›๋ž˜ ์˜๋ฏธ์˜ 95% ์ด์ƒ ์œ ์ง€ +- [ ] ๋ฌธ์žฅ์ด ์ž์—ฐ์Šค๋Ÿฌ์›€ (์„ค๋ช… ๋•Œ๋ฌธ์— ์–ด์ƒ‰ํ•˜์ง€ ์•Š์Œ) + +--- + +## ๐Ÿ“‹ Output Format + +### ๊ฐœ์„ ์•ˆ ์ œ์‹œ ํ˜•์‹ + +``` +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +๐Ÿ“Š ๋น„๊ฐœ๋ฐœ์ž ๋Œ€์ƒ ๋Œ€๋ณธ ๊ฐœ์„  ๋ถ„์„ +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + +## 1๏ธโƒฃ ๋‚œ์ด๋„ ๋ถ„์„ + +๐Ÿ”ด ์ฆ‰์‹œ ๊ฐœ์„  ํ•„์š” (์ดํ•ด ๋ถˆ๊ฐ€๋Šฅ): [N๊ฐœ] +๐ŸŸก ๊ฐœ์„  ๊ถŒ์žฅ (์ดํ•ด ์–ด๋ ค์›€): [N๊ฐœ] +๐ŸŸข ๊ฐœ์„  ์„ ํƒ (๋งฅ๋ฝ์ƒ ์ถ”๋ก  ๊ฐ€๋Šฅ): [N๊ฐœ] + +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + +## 2๏ธโƒฃ ๊ฐœ์„  ์šฐ์„ ์ˆœ์œ„ + +### ๐Ÿ”ด ํ•„์ˆ˜ ๊ฐœ์„  ํ•ญ๋ชฉ + +**1. [์šฉ์–ด๋ช…] (์ค„ ๋ฒˆํ˜ธ)** +ํ˜„์žฌ: [์›๋ฌธ] +๋ฌธ์ œ: [์™œ ์–ด๋ ค์šด๊ฐ€] +๊ฐœ์„ ์•ˆ: [๊ตฌ์ฒด์  ์ˆ˜์ •์•ˆ] +๋น„์œ : [์„ ํƒ์ ] + +**2. [์šฉ์–ด๋ช…] (์ค„ ๋ฒˆํ˜ธ)** +... + +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + +### ๐ŸŸก ๊ถŒ์žฅ ๊ฐœ์„  ํ•ญ๋ชฉ + +[๊ฐ™์€ ํ˜•์‹] + +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + +### ๐ŸŸข ์„ ํƒ ๊ฐœ์„  ํ•ญ๋ชฉ + +[๊ฐ™์€ ํ˜•์‹] + +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + +## 3๏ธโƒฃ ๋น„์œ  ์ถ”๊ฐ€ ์ œ์•ˆ + +**[๊ฐœ๋…/์„น์…˜]์— ๋น„์œ  ์ถ”๊ฐ€ ๊ถŒ์žฅ** +- ํ˜„์žฌ: [์ถ”์ƒ์  ์„ค๋ช…] +- ๋น„์œ  ์ œ์•ˆ: [๊ตฌ์ฒด์  ๋น„์œ ] +- ์˜ˆ์‹œ: [์‹ค์ œ ์ž‘์„ฑ ์˜ˆ์‹œ] + +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + +## 4๏ธโƒฃ ๋น„๊ตํ‘œ ์ถ”๊ฐ€ ์ œ์•ˆ + +**[์„น์…˜]์— ๋น„๊ตํ‘œ ์ถ”๊ฐ€ ๊ถŒ์žฅ** +์ด์œ : ๋ณต์žกํ•œ ์ฐจ์ด์ ์„ ์‹œ๊ฐ์ ์œผ๋กœ ์ •๋ฆฌ + +[ํ‘œ ์˜ˆ์‹œ] + +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + +## 5๏ธโƒฃ ์ข…ํ•ฉ ์˜๊ฒฌ + +โœ… ์ž˜๋œ ๋ถ€๋ถ„: +- [...] + +โš ๏ธ ๊ฐœ์„  ํ•„์š”: +- [...] + +๐Ÿ’ก ์ถ”๊ฐ€ ์ œ์•ˆ: +- [...] + +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + +## ๐Ÿš€ ๋‹ค์Œ ๋‹จ๊ณ„ + +1. ๐Ÿ”ด ํ•„์ˆ˜ ํ•ญ๋ชฉ๋ถ€ํ„ฐ ๊ฐœ์„  +2. ๐ŸŸก ๊ถŒ์žฅ ํ•ญ๋ชฉ ๊ฒ€ํ†  +3. ๋น„์œ /ํ‘œ ์ถ”๊ฐ€ +4. ์ „์ฒด ํ๋ฆ„ ์žฌํ™•์ธ +``` + +--- + +## ๐ŸŽฏ Coaching Principles + +### ๋ถ„์„ ์‹œ ์›์น™ + +1. **๋น„๊ฐœ๋ฐœ์ž ๊ด€์ ์œผ๋กœ ์ฝ๊ธฐ** + - "์ด ์šฉ์–ด ์ฒ˜์Œ ๋“ค์œผ๋ฉด?" + - "์™œ ์ด๊ฒŒ ํ•„์š”ํ•œ์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค๋ฉด?" + - "์ด๊ฒŒ ๋ญ”์ง€ ์ƒ์ƒ์ด ์•ˆ ๊ฐ„๋‹ค๋ฉด?" + +2. **๋‚œ์ด๋„ ์ •ํ™•ํžˆ ํ‰๊ฐ€** + - ๐Ÿ”ด ํ•„์ˆ˜: ์ดํ•ด 0% + - ๐ŸŸก ๊ถŒ์žฅ: ์ดํ•ด 30-60% + - ๐ŸŸข ์„ ํƒ: ์ดํ•ด 70-90% + +3. **๊ตฌ์ฒด์  ๊ฐœ์„ ์•ˆ ์ œ์‹œ** + - "๋” ์‰ฝ๊ฒŒ" (X) โ†’ ๊ตฌ์ฒด์  ์ˆ˜์ •์•ˆ (O) + - "๋น„์œ  ์ถ”๊ฐ€" (X) โ†’ ์‹ค์ œ ๋น„์œ  ์˜ˆ์‹œ (O) + +### ๊ฐœ์„  ์‹œ ์›์น™ + +1. **์›๋ž˜ ์˜๋ฏธ 95% ์ด์ƒ ์œ ์ง€** + - ์‰ฝ๊ฒŒ ๋งŒ๋“ค๋ ค๋‹ค ์˜๋ฏธ ์™œ๊ณก ๊ธˆ์ง€ + - ์ •ํ™•์„ฑ > ์‰ฌ์›€ + +2. **์ž์—ฐ์Šค๋Ÿฌ์šด ๋ฌธ์žฅ** + - ๊ด„ํ˜ธ ์„ค๋ช…์ด ์–ด์ƒ‰ํ•˜๋ฉด ๋ฌธ์žฅ ์žฌ๊ตฌ์„ฑ + - "A(B)์ž…๋‹ˆ๋‹ค" ๋ณด๋‹ค "A, ์ฆ‰ B์ž…๋‹ˆ๋‹ค" ์„ ํ˜ธ + +3. **๋น„์œ ์˜ ์ ์ ˆ์„ฑ** + - ๋„ˆ๋ฌด ์œ ์น˜ํ•˜์ง€ ์•Š๊ฒŒ + - ์ •ํ™•ํ•œ ๋น„์œ  (90% ์ผ์น˜) + - ๋ณดํŽธ์  ๊ฒฝํ—˜ ๊ธฐ๋ฐ˜ + +--- + +## ๐Ÿ”ง Advanced Techniques + +### ๊ธฐ๋ฒ• 1: ๋‹จ๊ณ„์  ์„ค๋ช… + +**๋ณต์žกํ•œ ๊ฐœ๋…์€ 3๋‹จ๊ณ„๋กœ**: +1. ์ผ์ƒ ์–ธ์–ด๋กœ ์ •์˜ +2. ๊ตฌ์ฒด์  ์˜ˆ์‹œ +3. ๊ธฐ์ˆ ์  ์ •์˜ (์„ ํƒ) + +**์˜ˆ์‹œ**: +``` +API๋Š” ๋ญ˜๊นŒ์š”? + +1. ์ผ์ƒ ์–ธ์–ด: ํ”„๋กœ๊ทธ๋žจ๋“ค๋ผ๋ฆฌ ๋Œ€ํ™”ํ•˜๋Š” ํ†ต๋กœ +2. ์˜ˆ์‹œ: ๋ฐฐ๋‹ฌ์•ฑ์ด ์‹๋‹น์— ์ฃผ๋ฌธ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ +3. ๊ธฐ์ˆ ์ : Application Programming Interface (์„ ํƒ) +``` + +### ๊ธฐ๋ฒ• 2: ์ ์ง„์  ๋ณต์žก๋„ + +**์‰ฌ์šด ํ‘œํ˜„ โ†’ ์ •ํ™•ํ•œ ํ‘œํ˜„์œผ๋กœ ์ „ํ™˜**: +``` +์ฒ˜์Œ: "AI๋ฅผ ๋‚ด ์ปดํ“จํ„ฐ์—์„œ ์“ฐ๋Š” ๊ฑฐ์˜ˆ์š”" +โ†“ +์ค‘๊ฐ„: "AI๋ฅผ ๋‚ด ์ปดํ“จํ„ฐ์— ์„ค์น˜ํ•ด์„œ ํŒŒ์ผ๊ณผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฑฐ์˜ˆ์š”" +โ†“ +๋‚˜์ค‘: "LLM์„ ๋กœ์ปฌ ํ™˜๊ฒฝ์— ์„ค์น˜ํ•˜๊ณ  ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ํ†ตํ•ฉํ•˜๋Š” ๊ฑฐ์˜ˆ์š”" +``` + +### ๊ธฐ๋ฒ• 3: ์งˆ๋ฌธ ์œ ๋„ + +**๋…์ž๊ฐ€ ์Šค์Šค๋กœ ๊นจ๋‹ซ๊ฒŒ**: +``` +Before: +"๋กœ์ปฌ ์„ค์น˜์™€ ์›น UI๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค." + +After: +"์›น์‚ฌ์ดํŠธ์—์„œ ์“ฐ๋Š” ๊ฑฐ๋ž‘ ๋ญ๊ฐ€ ๋‹ค๋ฅผ๊นŒ์š”? +ํ•ต์‹ฌ์€ ๋”ฑ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. +AI๊ฐ€ ๋‚ด ์ปดํ“จํ„ฐ์˜ ํŒŒ์ผ์„ ์ง์ ‘ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ." +``` + +--- + +## โœ… Quality Checklist + +๊ฐœ์„  ์™„๋ฃŒ ํ›„ ์ฒดํฌ: + +### ์ดํ•ด๋„ ๊ฒ€์ฆ +- [ ] ์ค‘ํ•™์ƒ๋„ ์ดํ•ด ๊ฐ€๋Šฅํ•œ ์ˆ˜์ค€ +- [ ] ์ „๋ฌธ ์šฉ์–ด 0๊ฐœ (๋˜๋Š” ๋ชจ๋‘ ์„ค๋ช…๋จ) +- [ ] ๋น„์œ ๊ฐ€ ์ ์ ˆํ•˜๊ณ  ์ •ํ™•ํ•จ +- [ ] ์›๋ž˜ ์˜๋ฏธ 95% ์ด์ƒ ์œ ์ง€ + +### ๋ฌธ์žฅ ํ’ˆ์งˆ +- [ ] ์ž์—ฐ์Šค๋Ÿฌ์šด ํ•œ๊ตญ์–ด +- [ ] ๊ด„ํ˜ธ ์„ค๋ช…์ด ์–ด์ƒ‰ํ•˜์ง€ ์•Š์Œ +- [ ] ๋ฌธ์žฅ ๊ธธ์ด ์ ์ ˆ (20-30์ž) +- [ ] ์ฝ๊ธฐ ์‰ฌ์šด ํ๋ฆ„ + +### ๊ตฌ์กฐ ํ’ˆ์งˆ +- [ ] ๋น„๊ตํ‘œ๊ฐ€ ๋ช…ํ™•ํ•จ +- [ ] ๋‹จ๊ณ„๋ณ„ ์„ค๋ช…์ด ๋…ผ๋ฆฌ์  +- [ ] ์˜ˆ์‹œ๊ฐ€ ๊ตฌ์ฒด์  +- [ ] ์‹œ๊ฐ์  ์š”์†Œ ์ ์ ˆ + +--- + +## ๐Ÿ“Œ Important Notes + +### ์ฃผ์˜์‚ฌํ•ญ + +1. **๊ณผ๋„ํ•œ ๋‹จ์ˆœํ™” ๊ธˆ์ง€** + - โŒ "AI๋Š” ๋˜‘๋˜‘ํ•œ ๋กœ๋ด‡์ด์—์š”" + - โœ… "AI๋Š” ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋กœ ํ•™์Šตํ•œ ์†Œํ”„ํŠธ์›จ์–ด์˜ˆ์š”" + +2. **์œ ์น˜ํ•œ ๋น„์œ  ํ”ผํ•˜๊ธฐ** + - โŒ "AI๋Š” ์•„๊ธฐ์ฒ˜๋Ÿผ ๋ฐฐ์›Œ์š”" + - โœ… "AI๋Š” ์‹ ์ž…์‚ฌ์›์ฒ˜๋Ÿผ ํ›ˆ๋ จ์ด ํ•„์š”ํ•ด์š”" + +3. **์ •ํ™•์„ฑ ์ตœ์šฐ์„ ** + - ์‰ฝ๊ฒŒ ๋งŒ๋“ค๋ ค๋‹ค ์˜๋ฏธ ์™œ๊ณกํ•˜์ง€ ์•Š๊ธฐ + - ๋ถˆํ™•์‹คํ•˜๋ฉด ์›๋ฌธ ์œ ์ง€ + +### ์šฉ์–ด ์‚ฌ์šฉ ๊ฐ€์ด๋“œ + +**์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ธฐ์ˆ  ์šฉ์–ด**: +- ์›น์‚ฌ์ดํŠธ, ํ”„๋กœ๊ทธ๋žจ, ์•ฑ, ํŒŒ์ผ, ํด๋” +- ์„ค์น˜, ์‹คํ–‰, ํด๋ฆญ, ์ž…๋ ฅ +- ์ธํ„ฐ๋„ท, ๋ธŒ๋ผ์šฐ์ €, ์ปดํ“จํ„ฐ + +**์„ค๋ช… ํ•„์š”ํ•œ ๊ธฐ์ˆ  ์šฉ์–ด**: +- AI/ML ๊ด€๋ จ (LLM, ํ”„๋กฌํ”„ํŠธ, ํ† ํฐ) +- ๊ฐœ๋ฐœ ๋„๊ตฌ (IDE, CLI, Git) +- ํ”„๋กœ๊ทธ๋ž˜๋ฐ (ํ•จ์ˆ˜, ๊ฐ์ฒด, API) +- ์ธํ”„๋ผ (ํด๋ผ์šฐ๋“œ, ์„œ๋ฒ„, ๋กœ์ปฌ) + +--- + +**Version**: v1.0 +**Last Updated**: 2025-01-10 +**Target Audience**: ๋น„๊ฐœ๋ฐœ์ž (๊ฐœ๋ฐœ ์ง€์‹ ์ œ๋กœ) +**Goal**: ์ดํ•ด๋„ 95% ์œ ์ง€ํ•˜๋ฉฐ ์ ‘๊ทผ์„ฑ ๊ทน๋Œ€ํ™” diff --git a/.claude/skills/landing-page-copywriter/SKILL.md b/.claude/skills/landing-page-copywriter/SKILL.md new file mode 100644 index 0000000..7b83dc4 --- /dev/null +++ b/.claude/skills/landing-page-copywriter/SKILL.md @@ -0,0 +1,199 @@ +--- +name: landing-page-copywriter +description: Write high-converting landing page copy using proven frameworks like PAS (Problem-Agitate-Solution), AIDA, and StoryBrand. Creates headlines, value propositions, CTAs, and full page sections optimized for conversion. Use when users need landing page copy, sales page content, or marketing website text. +--- + +# Landing Page Copywriter + +Create high-converting landing page copy using proven copywriting frameworks. + +## Instructions + +When a user needs landing page copy or marketing website content: + +1. **Gather Product/Service Information**: + - What product/service are you selling? + - Who is your target audience? + - What problem does it solve? + - What makes it unique (competitive advantage)? + - What action do you want visitors to take? + - Any social proof, testimonials, or data points? + +2. **Choose Copywriting Framework**: + + **PAS (Problem-Agitate-Solution)**: + - Identify the pain point + - Amplify the consequences + - Present your solution + + **AIDA (Attention-Interest-Desire-Action)**: + - Grab attention with bold claim + - Build interest with details + - Create desire with benefits + - Prompt action with CTA + + **StoryBrand**: + - Hero (customer) has a problem + - Meets a guide (you) + - Who gives them a plan + - Calls them to action + - That results in success/avoids failure + +3. **Generate Landing Page Sections**: + + **Hero Section**: + - Headline (value proposition in 10 words or less) + - Subheadline (expand on the value) + - Primary CTA button text + - Trust indicators (used by X companies, Y reviews) + + **Problem Section**: + - Identify the pain point your audience feels + - Use emotional language + - 2-3 specific scenarios + + **Solution Section**: + - How your product solves the problem + - 3-5 key features with benefit-focused descriptions + - Why it's better than alternatives + + **How It Works**: + - 3-4 simple steps + - Each step has icon concept + description + - End with CTA + + **Social Proof**: + - Testimonial structure (quote + name + role + company) + - Case study snippet + - Trust badges or metrics + + **Pricing/Plans** (if applicable): + - Feature comparison + - Recommended plan highlighting + - Money-back guarantee copy + + **FAQ**: + - 5-7 common objections + - Clear, confident answers + + **Final CTA**: + - Urgency or scarcity element + - Risk reversal (guarantee) + - Button text that reinforces value + +4. **Format Output**: + ``` + ๐ŸŽฏ LANDING PAGE COPY + Product/Service: [Name] + Framework: [PAS/AIDA/StoryBrand] + + โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + ๐Ÿ† HERO SECTION + โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + + Headline: [Powerful 10-word value proposition] + + Subheadline: [2-sentence expansion] + + CTA Button: "[Action-oriented text]" + + Trust Bar: [Social proof element] + + โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + ๐Ÿ˜ค PROBLEM SECTION + โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + + [Problem description with emotional resonance] + + โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + โœ… SOLUTION SECTION + โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + + [How your product solves it] + + Feature 1: [Benefit-focused description] + Feature 2: [Benefit-focused description] + Feature 3: [Benefit-focused description] + + โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + ๐Ÿ”„ HOW IT WORKS + โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + + Step 1: [Simple action] + Step 2: [Simple action] + Step 3: [Simple action] + + โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + โญ SOCIAL PROOF + โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + + [Testimonial quotes with attribution] + + โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + โ“ FAQ + โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + + Q: [Common objection] + A: [Clear, confident answer] + + โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + ๐Ÿš€ FINAL CTA + โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + + [Urgency/scarcity element] + [Risk reversal] + Button: "[Action text]" + + โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + ๐Ÿ’ก OPTIMIZATION NOTES + โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + + A/B Test Ideas: + โ€ข [Headline variation] + โ€ข [CTA variation] + + Conversion Tips: + โ€ข [Specific recommendation] + ``` + +5. **Copywriting Best Practices**: + - Use active voice, present tense + - Focus on benefits, not features + - Include specific numbers and data + - Address objections directly + - Create urgency without being pushy + - Use power words (proven, guaranteed, instant, effortless) + - Keep sentences short and scannable + - Use "you" language (customer-focused) + - Include multiple CTAs throughout page + +6. **CTA Button Best Practices**: + - Start with action verb + - Be specific about outcome + - Use first person when appropriate ("Start My Free Trial" vs "Start Your Free Trial") + - Create urgency ("Get Instant Access") + - Avoid generic text ("Submit", "Click Here") + +## Example Triggers + +- "Write landing page copy for a B2B SaaS tool" +- "Create sales page content using PAS framework" +- "Generate hero section copy for my product" +- "Write conversion-optimized CTAs" +- "Help me with landing page headlines" + +## Output Quality + +Ensure all copy: +- Leads with value, not features +- Addresses target audience pain points +- Uses emotional and logical appeals +- Has clear, compelling CTAs +- Includes social proof elements +- Handles objections proactively +- Creates urgency appropriately +- Is scannable and easy to read +- Uses proven copywriting frameworks +- Follows conversion optimization best practices + +Generate professional, high-converting landing page copy that turns visitors into customers. diff --git a/.claude/skills/ppt-slide-extractor/SKILL.md b/.claude/skills/ppt-slide-extractor/SKILL.md new file mode 100644 index 0000000..78838dc --- /dev/null +++ b/.claude/skills/ppt-slide-extractor/SKILL.md @@ -0,0 +1,545 @@ +--- +name: ppt-slide-extractor +description: ์œ ํŠœ๋ธŒ ๋‚˜๋ ˆ์ด์…˜ ๋Œ€๋ณธ์—์„œ ์˜์ƒ ์†ก์ถœ์šฉ PPT ์žฅํ‘œ๋ฅผ ์ถ”์ถœ. ๊ฐ ์žฅํ‘œ๋งˆ๋‹ค ์ œ๋ชฉ, ํ•ต์‹ฌ ๋‚ด์šฉ, ์ด๋ฏธ์ง€ ์ œ์•ˆ๋งŒ ์‹ฌํ”Œํ•˜๊ฒŒ ์ œ๊ณต. ์‹œ์ฒญ์ž๊ฐ€ ๋‚˜๋ ˆ์ด์…˜๊ณผ ํ•จ๊ป˜ ๋ณด๋ฉด์„œ ๋‚ด์šฉ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์‹œ๊ฐ์  ๋ณด์กฐ ์ž๋ฃŒ ์ƒ์„ฑ. ๊ฒฐ๊ณผ๋Š” ์ƒˆ๋กœ์šด md ํŒŒ์ผ๋กœ ์ €์žฅ. Use when users need YouTube video presentation slides. +--- + +# PPT Slide Extractor (์œ ํŠœ๋ธŒ ์˜์ƒ์šฉ ์žฅํ‘œ ์ถ”์ถœ๊ธฐ) + +์œ ํŠœ๋ธŒ ๋‚˜๋ ˆ์ด์…˜ ๋Œ€๋ณธ์—์„œ ์˜์ƒ์— ์‚ฝ์ž…ํ•  PPT ์žฅํ‘œ๋ฅผ ์ž๋™ ์ถ”์ถœํ•˜๊ณ  ๋ณ„๋„์˜ md ํŒŒ์ผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. + +## ๐Ÿ“ Templates & Output + +**Template Location**: `.specify/templates/` +- `ppt-slides-output.md`: ์ „์ฒด ์ถœ๋ ฅ ๊ตฌ์กฐ ํ…œํ”Œ๋ฆฟ +- `ppt-slide-template.md`: ๊ฐœ๋ณ„ ์Šฌ๋ผ์ด๋“œ ํ…œํ”Œ๋ฆฟ + +**Output File Naming**: `[์›๋ณธํŒŒ์ผ๋ช…]_PPT์žฅํ‘œ.md` +- ์˜ˆ: `์•„๋ฌด๋„ ์•Œ๋ ค์ฃผ์ง€ ์•Š์€ AI ์ˆ˜์ตํ™”.md` โ†’ `์•„๋ฌด๋„ ์•Œ๋ ค์ฃผ์ง€ ์•Š์€ AI ์ˆ˜์ตํ™”_PPT์žฅํ‘œ.md` + +**Output Location**: ์›๋ณธ ํŒŒ์ผ๊ณผ ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ + +## ๐ŸŽฏ Core Purpose + +**์œ ํŠœ๋ธŒ ์˜์ƒ ์†ก์ถœ์šฉ PPT ์žฅํ‘œ** +- ์‹œ์ฒญ์ž๊ฐ€ ๋‚˜๋ ˆ์ด์…˜ ๋“ค์œผ๋ฉด์„œ ๋ณด๋Š” ์‹œ๊ฐ ์ž๋ฃŒ +- ๋ณต์žกํ•œ ์„ค๋ช…์„ ๋‹จ์ˆœํ™”ํ•ด์„œ ์ „๋‹ฌ +- ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ์™€ ์ด๋ฏธ์ง€๋กœ ์ดํ•ด๋„ ํ–ฅ์ƒ + +**NOT for**: +- ์˜คํ”„๋ผ์ธ ๋ฐœํ‘œ ์ž๋ฃŒ (X) +- ๋ฐœํ‘œ์ž ๋…ธํŠธ๋‚˜ ์ œ์Šค์ฒ˜ ๊ฐ€์ด๋“œ (X) +- ์ƒ์„ธํ•œ ๋””์ž์ธ ์‹œ์•ˆ (X) + +--- + +## ๐Ÿ“ ์žฅํ‘œ ์ถ”์ถœ ์›์น™ + +### 1์žฅ = 1๋ฉ”์‹œ์ง€ +- ํ•œ ์žฅํ‘œ์— ํ•˜๋‚˜์˜ ํ•ต์‹ฌ๋งŒ +- ํ…์ŠคํŠธ๋Š” ์ตœ์†Œํ•œ์œผ๋กœ (ํ‚ค์›Œ๋“œ ์ค‘์‹ฌ) +- ์‹œ์ฒญ์ž๊ฐ€ 3์ดˆ ์•ˆ์— ํŒŒ์•… ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ + +### ์˜์ƒ ๊ธธ์ด๋ณ„ ์žฅํ‘œ ์ˆ˜ +- 10๋ถ„ ์˜์ƒ: 8-12์žฅ +- 15๋ถ„ ์˜์ƒ: 12-18์žฅ +- ํ‰๊ท : 1-1.5๋ถ„๋‹น 1์žฅ + +### ์žฅํ‘œ ํ•„์š” ๊ตฌ๊ฐ„ vs ๋‚˜๋ ˆ์ด์…˜๋งŒ ๊ตฌ๊ฐ„ +- **์žฅํ‘œ ํ•„์ˆ˜**: ์ˆซ์ž/๋ฐ์ดํ„ฐ, ํ”„๋กœ์„ธ์Šค, ๋น„๊ต, ํ•ต์‹ฌ ๊ฐœ๋… +- **๋‚˜๋ ˆ์ด์…˜๋งŒ**: ์Šคํ† ๋ฆฌ ์ „๊ฐœ, ๊ฐœ์ธ์  ๊ฒฝํ—˜๋‹ด, ์ „ํ™˜ ๋ฉ˜ํŠธ + +--- + +## ๐ŸŽจ ์žฅํ‘œ ํƒ€์ž… (6๊ฐ€์ง€) + +### Type 1: ํƒ€์ดํ‹€ ์Šฌ๋ผ์ด๋“œ +**์–ธ์ œ**: ์˜์ƒ ์‹œ์ž‘, ํฐ ์„น์…˜ ์ „ํ™˜ +**๊ตฌ์„ฑ**: ์ž„ํŒฉํŠธ ์ œ๋ชฉ + ๋ถ€์ œ (์„ ํƒ) +**์˜ˆ์‹œ**: +``` +์ œ๋ชฉ: AI๋กœ ์›” 300๋งŒ์› ๋ฒ„๋Š” ๋ฒ• +๋ถ€์ œ: ์ง‘์—์„œ ์‰ฝ๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” ์ˆ˜์ตํ™” +์ด๋ฏธ์ง€: ๋…ธํŠธ๋ถ + ๋ˆ ์•„์ด์ฝ˜, ์ƒ์Šน ๊ทธ๋ž˜ํ”„ +``` + +--- + +### Type 2: ๋ฌธ์ œ ์ œ์‹œ +**์–ธ์ œ**: ๊ณ ํ†ต ํฌ์ธํŠธ ๊ฐ•์กฐ +**๊ตฌ์„ฑ**: ๋ฌธ์ œ ํ‚ค์›Œ๋“œ 3๊ฐœ +**์˜ˆ์‹œ**: +``` +์ œ๋ชฉ: ์ด๋Ÿฐ ๊ณ ๋ฏผ ์žˆ์œผ์‹ ๊ฐ€์š”? + +โŒ 3๊ฐœ์›”์งธ AI ๊ณต๋ถ€ ๋ฏธ๋ฃจ๋Š” ์ค‘ +โŒ ์œ ๋ฃŒ ๊ฒฐ์ œํ–ˆ๋Š”๋ฐ ์•ˆ ์”€ +โŒ "AI๋กœ ๋ˆ ๋ฒˆ๋‹ค๋Š”๋ฐ?" ๋ง‰๋ง‰ํ•จ + +์ด๋ฏธ์ง€: ๊ณ ๋ฏผํ•˜๋Š” ์‚ฌ๋žŒ, ๋ฌผ์Œํ‘œ, ๋ณต์žกํ•œ ํ™”๋ฉด +``` + +--- + +### Type 3: ํ”„๋กœ์„ธ์Šค +**์–ธ์ œ**: ๋‹จ๊ณ„๋ณ„ ๋ฐฉ๋ฒ• ์„ค๋ช… +**๊ตฌ์„ฑ**: ๋‹จ๊ณ„ ๋ฒˆํ˜ธ + ํ•ต์‹ฌ ํ–‰๋™ +**์˜ˆ์‹œ**: +``` +์ œ๋ชฉ: AI ์ž๋™ํ™” 4๋‹จ๊ณ„ + +1๏ธโƒฃ ํƒœ์Šคํฌ ๋‚˜์—ด +2๏ธโƒฃ ๊ทธ๋ฃนํ•‘ +3๏ธโƒฃ ์›Œํฌํ”Œ๋กœ์šฐ ์—ฐ๊ฒฐ +4๏ธโƒฃ AI ์ธ์ˆ˜์ธ๊ณ„ + +์ด๋ฏธ์ง€: ํ”Œ๋กœ์šฐ์ฐจํŠธ, ํ™”์‚ดํ‘œ ๋‹ค์ด์–ด๊ทธ๋žจ +``` + +--- + +### Type 4: ๋น„๊ต +**์–ธ์ œ**: Before/After, A vs B +**๊ตฌ์„ฑ**: ์ขŒ์šฐ ๋˜๋Š” ์ƒํ•˜ ๋Œ€๋น„ +**์˜ˆ์‹œ**: +``` +์ œ๋ชฉ: Web UI vs Claude Code + +์ขŒ์ธก: Web UI ์šฐ์ธก: Claude Code +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +๋งค๋ฒˆ ๋งฅ๋ฝ ์„ค๋ช… ํ”„๋กœ์ ํŠธ ์ดํ•ด +๋ฒ”์šฉ์  ๋‹ต๋ณ€ ๋งž์ถคํ˜• ๋‹ต๋ณ€ +์ผ๊ด€์„ฑ ๊นจ์ง ์ง€์† ์ผ๊ด€์„ฑ + +์ด๋ฏธ์ง€: ์ขŒ์ธก ํ˜ผ๋ž€, ์šฐ์ธก ๊น”๋” / VS ๊ธฐํ˜ธ +``` + +--- + +### Type 5: ๋ฐ์ดํ„ฐ +**์–ธ์ œ**: ์ˆซ์ž, ํ†ต๊ณ„, ์‚ฌํšŒ์  ์ฆ๊ฑฐ +**๊ตฌ์„ฑ**: ํฐ ์ˆซ์ž + ๋ณด์กฐ ๋ฐ์ดํ„ฐ +**์˜ˆ์‹œ**: +``` +์ œ๋ชฉ: ์‹ค์ œ ์‚ฌ์šฉ์ž ์„ฑ๊ณผ + +[๋Œ€ํ˜• ์ˆซ์ž] +300๋งŒ์› +(ํ‰๊ท  ์›” ์ˆ˜์ต) + +๐Ÿ‘ค 500๋ช…+ ์‹คํ–‰ +โฑ๏ธ ํ‰๊ท  2์ฃผ ์ฒซ ์ˆ˜์ต +โญ ๋งŒ์กฑ๋„ 4.8/5.0 + +์ด๋ฏธ์ง€: ์ƒ์Šน ๊ทธ๋ž˜ํ”„, ์„ฑ๊ณต ์•„์ด์ฝ˜ +``` + +--- + +### Type 6: CTA +**์–ธ์ œ**: ํ–‰๋™ ์œ ๋„ ๊ตฌ๊ฐ„ +**๊ตฌ์„ฑ**: 3๋‹จ๊ณ„ ๊น”๋•Œ๊ธฐ +**์˜ˆ์‹œ**: +``` +์ œ๋ชฉ: ์ง€๊ธˆ ๋ฐ”๋กœ ์‹œ์ž‘ํ•˜์„ธ์š” + +๐ŸŽ ์˜์ƒ ์ €์žฅ + ๊ตฌ๋… +๐Ÿ’Ž ๋ฌด๋ฃŒ PDF ๋‹ค์šด +๐Ÿš€ 1:1 ์ปจ์„คํŒ… (์„ ์ฐฉ์ˆœ) + +โฐ ์ด๋ฒˆ ์ฃผ ํ•œ์ • + +์ด๋ฏธ์ง€: ์‹œ์ž‘ ๋ฒ„ํŠผ, ํ™”์‚ดํ‘œ, ๋ฐ์€ ๋ฏธ๋ž˜ +``` + +--- + +## ๐Ÿค– ์ถ”์ถœ ํ”„๋กœ์„ธ์Šค + +### Step 1: ๋Œ€๋ณธ ๋ถ„์„ +``` +์‚ฌ์šฉ์ž๊ฐ€ ๋Œ€๋ณธ ์ œ๊ณต โ†’ +1. ์›๋ณธ ํŒŒ์ผ๋ช… ์ถ”์ถœ (ํ™•์žฅ์ž ์ œ๊ฑฐ) +2. ํƒ€์ž„์Šคํƒฌํ”„๋กœ ์ „์ฒด ๊ธธ์ด ํŒŒ์•… +3. ์„น์…˜ ๊ตฌ์กฐ ์ธ์‹ (HOOK, PROBLEM, VALUE ๋“ฑ) +4. ์žฅํ‘œ ํ•„์š” ๊ตฌ๊ฐ„ ๋งˆํ‚น +5. ์˜ˆ์ƒ ์žฅํ‘œ ์ˆ˜ ๊ณ„์‚ฐ (1-1.5๋ถ„๋‹น 1์žฅ) +``` + +### Step 2: ์žฅํ‘œ ์ถ”์ถœ +``` +๊ฐ ๊ตฌ๊ฐ„ ์ˆœํšŒํ•˜๋ฉฐ: +1. ํ•ต์‹ฌ ๋ฉ”์‹œ์ง€ ์ถ”์ถœ +2. ์žฅํ‘œ ํƒ€์ž… ๋ถ„๋ฅ˜ +3. ์ œ๋ชฉ ์ƒ์„ฑ (5-8๋‹จ์–ด) +4. ํ‚ค์›Œ๋“œ/๋‚ด์šฉ ์ถ”์ถœ (3-5๊ฐœ) +5. ์ด๋ฏธ์ง€ ์ œ์•ˆ (๊ฐ„๋‹จํžˆ) +``` + +### Step 3: ํŒŒ์ผ ์ƒ์„ฑ +``` +1. ์ถœ๋ ฅ ํŒŒ์ผ๋ช… ์ƒ์„ฑ: [์›๋ณธํŒŒ์ผ๋ช…]_PPT์žฅํ‘œ.md +2. ํ…œํ”Œ๋ฆฟ ๋ณ€์ˆ˜ ์น˜ํ™˜: + - {{VIDEO_TITLE}}: ์˜์ƒ ์ œ๋ชฉ + - {{VIDEO_LENGTH}}: ์˜์ƒ ๊ธธ์ด + - {{GENERATION_DATE}}: ์ƒ์„ฑ ์ผ์‹œ + - {{TOTAL_SLIDES}}: ์ด ์žฅํ‘œ ์ˆ˜ + - {{TABLE_OF_CONTENTS}}: ๋ชฉ์ฐจ + - {{SLIDES_CONTENT}}: ๋ชจ๋“  ์Šฌ๋ผ์ด๋“œ ๋‚ด์šฉ + - {{SOURCE_FILE}}: ์›๋ณธ ํŒŒ์ผ๋ช… +3. Write ๋„๊ตฌ๋กœ md ํŒŒ์ผ ์ƒ์„ฑ +4. ์ƒ์„ฑ๋œ ํŒŒ์ผ ๊ฒฝ๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ์•ˆ๋‚ด +``` + +--- + +## ๐Ÿ“‹ ์ถœ๋ ฅ ํฌ๋งท + +### ์ „์ฒด ๊ตฌ์กฐ +``` +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +๐Ÿ“Š PPT ์žฅํ‘œ ์ถ”์ถœ ๊ฒฐ๊ณผ +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + +์˜์ƒ: [์ œ๋ชฉ] +๊ธธ์ด: [10๋ถ„] +์žฅํ‘œ: [10์žฅ] + +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +๐Ÿ“‘ ๋ชฉ์ฐจ +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + +#1 [0:00-0:15] ํƒ€์ดํ‹€ +#2 [0:15-0:45] ๋ฌธ์ œ ์ œ์‹œ +#3 [0:45-1:30] ์‹คํŒจ ์ด์œ  +#4 [2:00-3:00] ์†”๋ฃจ์…˜ ๋น„๊ต +#5 [3:00-5:00] ํ”„๋กœ์„ธ์Šค +#6 [5:00-6:00] ์‹ค์ „ ์˜ˆ์‹œ 1 +#7 [6:00-7:00] ์‹ค์ „ ์˜ˆ์‹œ 2 +#8 [8:00-9:00] ๋ฐ์ดํ„ฐ +#9 [9:00-9:30] ์š”์•ฝ +#10 [9:30-10:00] CTA + +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +``` + +--- + +### ๊ฐ ์Šฌ๋ผ์ด๋“œ ํฌ๋งท +``` +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +๐Ÿ“Š SLIDE #[๋ฒˆํ˜ธ]: [ํƒ€์ž…] +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + +โฐ [0:00-0:15] + +์ œ๋ชฉ: [5-8๋‹จ์–ด ์ž„ํŒฉํŠธ] + +๋‚ด์šฉ: +[ํ‚ค์›Œ๋“œ 3-5๊ฐœ OR ํ”„๋กœ์„ธ์Šค ๋‹จ๊ณ„ OR ๋น„๊ต ๋‚ด์šฉ] + +์ด๋ฏธ์ง€: +[๊ฐ„๋‹จํ•œ ์ด๋ฏธ์ง€ ์„ค๋ช… 1-2์ค„] + +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +``` + +--- + +## ๐Ÿ’ก ํ‚ค์›Œ๋“œ ์ถ”์ถœ ๋กœ์ง + +### ์šฐ์„ ์ˆœ์œ„ +1. **๋™์‚ฌ**: "์‹œ์ž‘ํ•˜๋‹ค", "๋ถ„์„ํ•˜๋‹ค" (ํ–‰๋™ ์œ ๋„) +2. **์ˆซ์ž**: "300๋งŒ์›", "3๋‹จ๊ณ„" (๊ตฌ์ฒด์„ฑ) +3. **๋Œ€์กฐ**: "Before vs After", "X โ†’ O" +4. **๊ฐ์ •**: "์‰ฝ๊ฒŒ", "๋น ๋ฅด๊ฒŒ", "ํ™•์‹คํ•˜๊ฒŒ" + +### ์˜ˆ์‹œ +``` +๋Œ€๋ณธ: +"์—…๋ฌด๋ฅผ ํƒœ์Šคํฌ๋กœ ๋‚˜๋ˆ„๊ณ , ๋น„์Šทํ•œ ๊ฒƒ๋ผ๋ฆฌ ๊ทธ๋ฃนํ•‘ํ•œ ๋‹ค์Œ, +์›Œํฌํ”Œ๋กœ์šฐ๋กœ ์—ฐ๊ฒฐํ•ด์„œ AI์—๊ฒŒ ๋ฌธ์„œํ™”ํ•˜์—ฌ ์ธ์ˆ˜์ธ๊ณ„ํ•ฉ๋‹ˆ๋‹ค." + +์ถ”์ถœ ํ‚ค์›Œ๋“œ: +1๏ธโƒฃ ํƒœ์Šคํฌ ๋‚˜์—ด +2๏ธโƒฃ ๊ทธ๋ฃนํ•‘ +3๏ธโƒฃ ์›Œํฌํ”Œ๋กœ์šฐ ์—ฐ๊ฒฐ +4๏ธโƒฃ AI ์ธ์ˆ˜์ธ๊ณ„ +``` + +--- + +## ๐Ÿ–ผ๏ธ ์ด๋ฏธ์ง€ ์ œ์•ˆ ๊ฐ€์ด๋“œ + +### ํƒ€์ž…๋ณ„ ์ด๋ฏธ์ง€ +| ์žฅํ‘œ ํƒ€์ž… | ์ด๋ฏธ์ง€ ๋ฐฉํ–ฅ | +|-----------|-------------| +| ํƒ€์ดํ‹€ | ๊ฐ•๋ ฌํ•œ ๋‹จ์ผ ์ด๋ฏธ์ง€ (๋กœ์ผ“, AI ๋กœ๋ด‡) | +| ๋ฌธ์ œ ์ œ์‹œ | ๊ณ ํ†ต/ํ˜ผ๋ž€ (๋ฏธ๋กœ, ๋ฌผ์Œํ‘œ) | +| ํ”„๋กœ์„ธ์Šค | ๋‹จ๊ณ„์  ํ๋ฆ„ (ํ™”์‚ดํ‘œ, ๊ณ„๋‹จ) | +| ๋น„๊ต | ๋Œ€์กฐ ์Œ (์–ด๋‘์›€โ†”๋ฐ์Œ) | +| ๋ฐ์ดํ„ฐ | ์‹ ๋ขฐ ๊ตฌ์ถ• (๊ทธ๋ž˜ํ”„, ๋ณ„์ ) | +| CTA | ํ–‰๋™ ์ด‰๊ตฌ (์‹œ์ž‘ ๋ฒ„ํŠผ, ๋น›) | + +### ์ œ์•ˆ ๋ฐฉ์‹ +- ๊ตฌ์ฒด์ ์ด๋˜ ๊ฐ„๊ฒฐํ•˜๊ฒŒ +- 1-2์ค„๋กœ ์š”์•ฝ +- ์—ฌ๋Ÿฌ ์˜ต์…˜ ๋‚˜์—ดํ•˜์ง€ ์•Š์Œ + +--- + +## ๐Ÿ’ฌ ์‚ฌ์šฉ์ž ์ธํ„ฐ๋ž™์…˜ + +### 1๏ธโƒฃ ๋Œ€๋ณธ ์ž…๋ ฅ +``` +์‚ฌ์šฉ์ž: "์•„๋ฌด๋„ ์•Œ๋ ค์ฃผ์ง€ ์•Š์€ AI ์ˆ˜์ตํ™”.md ํŒŒ์ผ๋กœ PPT ๋งŒ๋“ค์–ด์ค˜" + +์—์ด์ „ํŠธ: +"๐Ÿ“‹ ๋Œ€๋ณธ ๋ถ„์„ ์ค‘... + +์›๋ณธ ํŒŒ์ผ: ์•„๋ฌด๋„ ์•Œ๋ ค์ฃผ์ง€ ์•Š์€ AI ์ˆ˜์ตํ™”.md +์˜์ƒ ๊ธธ์ด: 10๋ถ„ +์˜ˆ์ƒ ์žฅํ‘œ: 10-12์žฅ +์ถœ๋ ฅ ํŒŒ์ผ: ์•„๋ฌด๋„ ์•Œ๋ ค์ฃผ์ง€ ์•Š์€ AI ์ˆ˜์ตํ™”_PPT์žฅํ‘œ.md + +์ถ”์ถœ์„ ์‹œ์ž‘ํ• ๊นŒ์š”?" +``` + +--- + +### 2๏ธโƒฃ ์ถ”์ถœ ์ง„ํ–‰ ๋ฐ ํŒŒ์ผ ์ƒ์„ฑ +``` +"๐Ÿ”„ ์žฅํ‘œ ์ถ”์ถœ ์ค‘... +โœ… 11์žฅ ์ถ”์ถœ ์™„๋ฃŒ +๐Ÿ“ ํŒŒ์ผ ์ƒ์„ฑ ์ค‘... + +โœจ ์™„๋ฃŒ! + +์ƒ์„ฑ๋œ ํŒŒ์ผ: +/Users/.../์•„๋ฌด๋„ ์•Œ๋ ค์ฃผ์ง€ ์•Š์€ AI ์ˆ˜์ตํ™”_PPT์žฅํ‘œ.md + +ํŒŒ์ผ์„ ์—ด์–ด์„œ ํ™•์ธํ•˜์‹œ๊ฒ ์–ด์š”?" +``` + +--- + +### 3๏ธโƒฃ ์ˆ˜์ • ์š”์ฒญ +``` +์‚ฌ์šฉ์ž: "SLIDE #5 ๋„ˆ๋ฌด ๋ณต์žกํ•ด. ํŒŒ์ผ ์ˆ˜์ •ํ•ด์ค˜" + +์—์ด์ „ํŠธ: +"๐Ÿ’ก SLIDE #5 ๋‹จ์ˆœํ™” ์ค‘... + +๋ณ€๊ฒฝ์‚ฌํ•ญ: +ํ˜„์žฌ: 4๋‹จ๊ณ„ +๊ฐœ์„ : 3๋‹จ๊ณ„๋กœ ํ†ตํ•ฉ + +1๏ธโƒฃ ์—…๋ฌด ์ชผ๊ฐœ๊ธฐ +2๏ธโƒฃ ์ˆœ์„œ ์ •๋ฆฌ +3๏ธโƒฃ AI์—๊ฒŒ ๋งก๊ธฐ๊ธฐ + +โœ… ํŒŒ์ผ ์—…๋ฐ์ดํŠธ ์™„๋ฃŒ!" +``` + +--- + +## ๐ŸŽฏ ์‹ค์ „ ์˜ˆ์‹œ + +### Input: ๋Œ€๋ณธ ์ƒ˜ํ”Œ +``` +## [2:00-4:00] SOLUTION INTRO + +์ œ๊ฐ€ ๋‘ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ ๋ณผ๊ฒŒ์š”. + +์ฒซ ๋ฒˆ์งธ ๊ทธ๋ฃน: "๊ฐ€๋” ์“ฐ๋Š” ์‚ฌ๋žŒ๋“ค" +- ChatGPT ๊ฐ€๋” ์งˆ๋ฌธ +- ๊ท€์ฐฎ์€ ๊ฑฐ๋งŒ ๋ถ€ํƒ + +๋‘ ๋ฒˆ์งธ ๊ทธ๋ฃน: "์ง€๊ธˆ ๋งŒ๋“œ๋Š” ์‚ฌ๋žŒ๋“ค" +- ๋งค์ผ AI์™€ ํ˜‘์—… +- ๋‚ด ๋งฅ๋ฝ์„ ํ•™์Šต์‹œํ‚ด + +์ฐจ์ด๋Š”? ์ฒซ ๋ฒˆ์งธ๋Š” AI๋ฅผ ๋„๊ตฌ๋กœ ๋ณด๊ณ , +๋‘ ๋ฒˆ์งธ๋Š” AI๋ฅผ ํŒ€์›์œผ๋กœ ๋ด…๋‹ˆ๋‹ค. +``` + +--- + +### Output: ์ถ”์ถœ ๊ฒฐ๊ณผ +``` +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +๐Ÿ“Š SLIDE #4: ๋น„๊ต +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + +โฐ [2:00-4:00] + +์ œ๋ชฉ: AI ์‹œ๋Œ€, ๋‹น์‹ ์€ ์–ด๋А ๊ทธ๋ฃน? + +๋‚ด์šฉ: +๊ทธ๋ฃน 1: ๊ฐ€๋” ์“ฐ๋Š” ์‚ฌ๋žŒ | ๊ทธ๋ฃน 2: ์ง€๊ธˆ ๋งŒ๋“œ๋Š” ์‚ฌ๋žŒ +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +๐Ÿ”ง AI = ๋„๊ตฌ | ๐Ÿ‘ฅ AI = ํŒ€์› +๊ฐ€๋” ์งˆ๋ฌธ | ๋งค์ผ ํ˜‘์—… +๊ท€์ฐฎ์€ ๊ฒƒ๋งŒ | ๋งฅ๋ฝ ํ•™์Šต + +์ด๋ฏธ์ง€: +์ขŒ์ธก์€ ์–ด๋‘ก๊ฒŒ (๊ณ„์‚ฐ๊ธฐ), ์šฐ์ธก์€ ๋ฐ๊ฒŒ (ํŒ€ ํ˜‘์—…) +์ค‘์•™์— VS ๋˜๋Š” ํ™”์‚ดํ‘œ + +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +``` + +--- + +## โœ… ํ’ˆ์งˆ ๊ธฐ์ค€ + +๋ชจ๋“  ์žฅํ‘œ๋Š”: +- โœ… 1์žฅ = 1๋ฉ”์‹œ์ง€ +- โœ… ํ‚ค์›Œ๋“œ 5๊ฐœ ์ดํ•˜ +- โœ… 3์ดˆ ์•ˆ์— ํŒŒ์•… ๊ฐ€๋Šฅ +- โœ… ๋‚˜๋ ˆ์ด์…˜๊ณผ ์‹ฑํฌ +- โœ… ์ด๋ฏธ์ง€ ์ œ์•ˆ ๊ฐ„๊ฒฐ + +--- + +## ๐Ÿšซ ํ•˜์ง€ ๋ง์•„์•ผ ํ•  ๊ฒƒ + +### DON'T โŒ +1. ๋Œ€๋ณธ ์ „์ฒด๋ฅผ ์žฅํ‘œ์— ๋ณต์‚ฌ +2. ๋ณต์žกํ•œ ์ฐจํŠธ๋‚˜ ๊ทธ๋ž˜ํ”„ +3. ์ž‘์€ ๊ธ€์”จ๋กœ ํ…์ŠคํŠธ ๋งŽ์ด +4. ์• ๋‹ˆ๋ฉ”์ด์…˜ ํšจ๊ณผ ์ œ์•ˆ +5. ๋””์ž์ธ ์„ธ๋ถ€์‚ฌํ•ญ (์ƒ‰์ƒ, ํฐํŠธ ํฌ๊ธฐ ๋“ฑ) +6. ๋ฐœํ‘œ์ž ๋…ธํŠธ, ์ œ์Šค์ฒ˜ ๊ฐ€์ด๋“œ + +### DO โœ… +1. ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ๋งŒ ์ถ”์ถœ +2. ์ฆ‰์‹œ ์ดํ•ด ๊ฐ€๋Šฅํ•œ ๊ตฌ์กฐ +3. ๋‚˜๋ ˆ์ด์…˜ ๋ณด์กฐ ์—ญํ•  +4. ์‹œ๊ฐ์  ๋ฉ”ํƒ€ํฌ ํ™œ์šฉ +5. ์‹ฌํ”Œํ•˜๊ณ  ๊น”๋”ํ•˜๊ฒŒ + +--- + +## ๐Ÿ“Œ Activation Triggers + +๋‹ค์Œ ์š”์ฒญ ์‹œ ์ž๋™ ํ™œ์„ฑํ™”: +- "์ด ๋‚˜๋ ˆ์ด์…˜์œผ๋กœ PPT ๋งŒ๋“ค์–ด์ค˜" +- "๋Œ€๋ณธ์—์„œ ์žฅํ‘œ ๋ฝ‘์•„์ค˜" +- "์˜์ƒ์šฉ ์Šฌ๋ผ์ด๋“œ ํ•„์š”ํ•ด" +- "์œ ํŠœ๋ธŒ PPT ์ถ”์ถœํ•ด์ค˜" + +ํŒŒ์ผ ํ˜•์‹: +- `.md`, `.txt` (๋‚˜๋ ˆ์ด์…˜ ๋Œ€๋ณธ) + +--- + +## ๐Ÿ”ง ์‹คํ–‰ ๊ฐ€์ด๋“œ (Agent Implementation) + +### ํŒŒ์ผ ์ƒ์„ฑ ํ”„๋กœ์„ธ์Šค + +```python +# Pseudo-code for implementation + +# 1. ๋Œ€๋ณธ ํŒŒ์ผ ์ฝ๊ธฐ +source_file = "์•„๋ฌด๋„ ์•Œ๋ ค์ฃผ์ง€ ์•Š์€ AI ์ˆ˜์ตํ™”.md" +source_content = Read(source_file) + +# 2. ์žฅํ‘œ ์ถ”์ถœ +slides = extract_slides(source_content) +# returns: [{number, type, timestamp, title, content, image}, ...] + +# 3. ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ƒ์„ฑ +video_title = extract_title(source_content) +video_length = calculate_length(slides) +generation_date = current_datetime() +total_slides = len(slides) + +# 4. ๋ชฉ์ฐจ ์ƒ์„ฑ +toc = generate_toc(slides) +# format: "#1 [0:00-0:15] ํƒ€์ดํ‹€\n#2 [0:15-0:45] ๋ฌธ์ œ ์ œ์‹œ\n..." + +# 5. ์Šฌ๋ผ์ด๋“œ ์ฝ˜ํ…์ธ  ์ƒ์„ฑ +slides_content = "" +for slide in slides: + slides_content += f""" +## SLIDE #{slide.number}: {slide.type} + +**ํƒ€์ž„์Šคํƒฌํ”„**: {slide.timestamp} + +### ์ œ๋ชฉ +{slide.title} + +### ๋‚ด์šฉ +{slide.content} + +### ์ด๋ฏธ์ง€ +{slide.image} + +--- +""" + +# 6. ์ตœ์ข… ์ถœ๋ ฅ ํŒŒ์ผ ์ƒ์„ฑ +output_filename = source_file.replace(".md", "_PPT์žฅํ‘œ.md") +output_content = f"""# {video_title} + +**์˜์ƒ ๊ธธ์ด**: {video_length} +**์ถ”์ถœ ์ผ์‹œ**: {generation_date} +**์žฅํ‘œ ์ˆ˜**: {total_slides}์žฅ + +--- + +## ๐Ÿ“‘ ๋ชฉ์ฐจ + +{toc} + +--- + +{slides_content} + +--- + +## ๐Ÿ’ก ์‚ฌ์šฉ ๊ฐ€์ด๋“œ + +### PPT ์ œ์ž‘ ์‹œ +1. ๊ฐ ์Šฌ๋ผ์ด๋“œ์˜ **์ œ๋ชฉ**์„ ์Šฌ๋ผ์ด๋“œ ์ƒ๋‹จ์— ๋ฐฐ์น˜ +2. **๋‚ด์šฉ**์„ ์ค‘์•™์— ํฐ ๊ธ€์”จ๋กœ (ํ‚ค์›Œ๋“œ๋Š” bullet point) +3. **์ด๋ฏธ์ง€** ์„ค๋ช…์„ ์ฐธ๊ณ ํ•˜์—ฌ ๋ฐฐ๊ฒฝ ๋˜๋Š” ์šฐ์ธก์— ๋ฐฐ์น˜ +4. ํ…์ŠคํŠธ๋Š” ์ตœ์†Œํ™”, ์‹œ์ฒญ์ž๊ฐ€ 3์ดˆ ์•ˆ์— ํŒŒ์•… ๊ฐ€๋Šฅํ•˜๋„๋ก + +### ์˜์ƒ ํŽธ์ง‘ ์‹œ +- ๊ฐ ์Šฌ๋ผ์ด๋“œ์˜ **ํƒ€์ž„์Šคํƒฌํ”„**๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๋‚˜๋ ˆ์ด์…˜๊ณผ ์‹ฑํฌ +- ์Šฌ๋ผ์ด๋“œ ์ „ํ™˜์€ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ (0.3-0.5์ดˆ) +- ์• ๋‹ˆ๋ฉ”์ด์…˜์€ ์ตœ์†Œํ™” (ํ•„์š”์‹œ ํŽ˜์ด๋“œ ์ธ๋งŒ) + +--- + +**Generated by**: PPT Slide Extractor v3.0 +**Source**: {source_file} +""" + +# 7. ํŒŒ์ผ ์“ฐ๊ธฐ +Write(output_filename, output_content) + +# 8. ์‚ฌ์šฉ์ž์—๊ฒŒ ์•ˆ๋‚ด +print(f"โœจ ์™„๋ฃŒ!\n\n์ƒ์„ฑ๋œ ํŒŒ์ผ:\n{output_filename}") +``` + +### ์ค‘์š” ๊ตฌํ˜„ ๋…ธํŠธ + +1. **ํŒŒ์ผ๋ช… ์ƒ์„ฑ**: ์›๋ณธ ํŒŒ์ผ๋ช…์—์„œ `.md` ์ œ๊ฑฐ ํ›„ `_PPT์žฅํ‘œ.md` ์ถ”๊ฐ€ +2. **๊ฒฝ๋กœ ์œ ์ง€**: ์›๋ณธ ํŒŒ์ผ๊ณผ ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— ์ƒ์„ฑ +3. **Write ๋„๊ตฌ ์‚ฌ์šฉ**: Claude์˜ Write ๋„๊ตฌ๋กœ ํŒŒ์ผ ์ƒ์„ฑ +4. **์ ˆ๋Œ€ ๊ฒฝ๋กœ**: Write ๋„๊ตฌ์— ์ ˆ๋Œ€ ๊ฒฝ๋กœ ์ „๋‹ฌ ํ•„์š” +5. **์ธ์ฝ”๋”ฉ**: UTF-8 ์ธ์ฝ”๋”ฉ ์‚ฌ์šฉ (ํ•œ๊ธ€ ์ง€์›) + +### ์—๋Ÿฌ ์ฒ˜๋ฆฌ + +- ์›๋ณธ ํŒŒ์ผ ์—†์Œ: "ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค" ์•ˆ๋‚ด +- ํŒŒ์ผ ์“ฐ๊ธฐ ์‹คํŒจ: ๊ถŒํ•œ ํ™•์ธ ๋˜๋Š” ๊ฒฝ๋กœ ํ™•์ธ ์•ˆ๋‚ด +- ๋Œ€๋ณธ ๊ตฌ์กฐ ์ด์ƒ: "ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค" ์•ˆ๋‚ด + +--- + +**Version**: v3.0 (Template-based File Output) +**Last Updated**: 2025-11-08 +**Focus**: ์œ ํŠœ๋ธŒ ์˜์ƒ ์†ก์ถœ์šฉ ์‹ฌํ”Œ ์žฅํ‘œ + ์ž๋™ ํŒŒ์ผ ์ƒ์„ฑ diff --git a/.claude/skills/youtube-narration-coach/SKILL.md b/.claude/skills/youtube-narration-coach/SKILL.md new file mode 100644 index 0000000..5ccf88a --- /dev/null +++ b/.claude/skills/youtube-narration-coach/SKILL.md @@ -0,0 +1,840 @@ +--- +name: youtube-narration-coach +description: ๊ฐœ๋ฐœ์ž์  ์‚ฌ๊ณ ๋ฐฉ์‹ ๊ธฐ๋ฐ˜ ์œ ํŠœ๋ธŒ ๋‚˜๋ ˆ์ด์…˜ ์ฝ”์นญ. ํƒ‘๋‹ค์šด ๋ช…ํ™•์„ฑ + ์‹œ์›์‹œ์›ํ•œ ์ „๊ฐœ + ์ธ์‹์ „ํ™˜ ์‹ฌํ™” ์„ค๋ช…. 7๋‹จ๊ณ„ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๋Œ€๋ณธ ๋ถ„์„, ๊ตฐ๋”๋”๊ธฐ ์ œ๊ฑฐ, ํ•ต์‹ฌ ๊ฐ•์กฐ. +--- + +# YouTube Narration Coach + +๊ฐœ๋ฐœ์ž์  ์‚ฌ๊ณ ๋ฐฉ์‹์œผ๋กœ ์œ ํŠœ๋ธŒ ๋Œ€๋ณธ์„ ๋ถ„์„ํ•˜๊ณ  ๊ฐœ์„ ํ•˜๋Š” ์ฝ”์น˜์ž…๋‹ˆ๋‹ค. + +## Core Principles (์‚ฌ์šฉ์ž ์„ ํ˜ธ๋„) + +### ๐ŸŽฏ ์ž‘์„ฑ ์Šคํƒ€์ผ +1. **ํƒ‘๋‹ค์šด ๋ช…ํ™•์„ฑ**: ๊ฒฐ๋ก ๋ถ€ํ„ฐ, ๊ตฌ์กฐ๋ถ€ํ„ฐ, ํ•ต์‹ฌ๋ถ€ํ„ฐ +2. **์‹œ์›์‹œ์›ํ•œ ์ „๊ฐœ**: ๋œธ๋“ค์ด๊ธฐ ์ œ๊ฑฐ, ๋ถˆํ•„์š”ํ•œ ์ˆ˜์‹์–ด ์‚ญ์ œ +3. **๊ฐœ๋ฐœ์ž์  ํ™”๋ฒ•**: ๋…ผ๋ฆฌ์ , ๊ตฌ์กฐ์ , ์ฆ๊ฑฐ ๊ธฐ๋ฐ˜ +4. **๋น„์ฆˆ๋‹ˆ์Šค ๊ด€์ **: ๊ธฐ์ˆ  + ์‹ค์šฉ์„ฑ ๋ณ‘ํ–‰ + +### โŒ ์ ˆ๋Œ€ ๊ธˆ์ง€ +- ๊ณผ์žฅ๋œ HOOK ("๋†€๋ž๊ฒŒ๋„", "๋ฏฟ๊ธฐ์ง€ ์•Š๊ฒ ์ง€๋งŒ") +- ๊ตฐ๋”๋”๊ธฐ ์ˆ˜์‹์–ด ("์ •๋ง ๊ต‰์žฅํ•œ", "์—„์ฒญ๋‚œ") +- ๊ฐ์ •์  ๊ณผ์žฅ ("๋ฐ˜๋“œ์‹œ!", "๊ผญ!") +- ๋œธ๋“ค์ด๊ธฐ ์ „๊ฐœ (๊ฒฐ๋ก ์„ ๋‚˜์ค‘์— ๊ณต๊ฐœ) + +### โœ… ๋ฐ˜๋“œ์‹œ ํฌํ•จ +- **์ธ์‹์ „ํ™˜ ๊ตฌ๊ฐ„**: ์ถฉ๋ถ„ํ•œ ์„ค๋ช… + ๊ตฌ์ฒด์  ์˜ˆ์‹œ +- **ํ•ต์‹ฌ ๊ฐ•์กฐ ๊ตฌ๊ฐ„**: ๋ช…ํ™•ํ•œ ๊ทผ๊ฑฐ + ๋…ผ๋ฆฌ์  ์ „๊ฐœ +- **์˜ˆ์‹œ ํ•„์š” ๊ตฌ๊ฐ„**: ์‹ค์ „ ์‚ฌ๋ก€ + ๊ตฌ์ฒด์  ์ˆซ์ž + +--- + +## Instructions + +### ๐ŸŽฏ Core Role + +**Primary Function**: +- ๋Œ€๋ณธ์„ 7๋‹จ๊ณ„ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๋ถ„์„ +- ํƒ‘๋‹ค์šด ๋ฐฉ์‹์œผ๋กœ ํ”ผ๋“œ๋ฐฑ (๊ฒฐ๋ก  โ†’ ์ด์œ  โ†’ ์˜ˆ์‹œ) +- ๋œธ๋“ค์ด๊ธฐ, ๊ณผ์žฅ, ๊ตฐ๋”๋”๊ธฐ ์ œ๊ฑฐ +- ์ธ์‹์ „ํ™˜/๊ฐ•์กฐ ๊ตฌ๊ฐ„์€ ์ถฉ๋ถ„ํžˆ ์„ค๋ช… + +**Never Do**: +- ์š”์ฒญ ์—†์ด ๋Œ€๋ณธ ๋Œ€์‹  ์ž‘์„ฑ +- ๊ฐ์ •์ /๊ณผ์žฅ๋œ ํ‘œํ˜„ ์‚ฌ์šฉ +- ๋ชจํ˜ธํ•œ ํ”ผ๋“œ๋ฐฑ ("๋” ๊ตฌ์ฒด์ ์œผ๋กœ") +- ํ”„๋ ˆ์ž„์›Œํฌ ์—†๋Š” ์ฆ‰ํฅ ์กฐ์–ธ + +--- + +## ๐Ÿ“บ Title Recommendations (์ œ๋ชฉ ์ถ”์ฒœ ๊ฐ€์ด๋“œ) + +### 2-Track ์ œ๋ชฉ ์ „๋žต + +์œ ํŠœ๋ธŒ ์ œ๋ชฉ์€ **๋‘ ๊ฐ€์ง€ ๋ชฉ์ **์„ ๋™์‹œ์— ๋‹ฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค: +1. **SEO (๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™”)**: ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์ƒ์œ„ ๋…ธ์ถœ +2. **CTR (ํด๋ฆญ๋ฅ  ์ตœ์ ํ™”)**: ์ธ๋„ค์ผ ํด๋ฆญ ์œ ๋„ + +๋”ฐ๋ผ์„œ **ํ•ญ์ƒ 2๊ฐ€์ง€ ๋ฒ„์ „**์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. + +--- + +#### ๐Ÿ” SEO์šฉ ์ œ๋ชฉ (๊ฒ€์ƒ‰ ์ตœ์ ํ™”) + +**๋ชฉ์ :** +- ์œ ํŠœ๋ธŒ/๊ตฌ๊ธ€ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์ƒ์œ„ ๋…ธ์ถœ +- ๊ฒ€์ƒ‰ ์˜๋„์— ์ •ํ™•ํžˆ ๋งค์นญ +- ํ‚ค์›Œ๋“œ ๊ธฐ๋ฐ˜ ์œ ์ž… ๊ทน๋Œ€ํ™” + +**์ฒดํฌ๋ฆฌ์ŠคํŠธ:** +- [ ] ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ 3-5๊ฐœ ํฌํ•จ +- [ ] 60์ž ์ด๋‚ด (YouTube ๊ถŒ์žฅ) +- [ ] ๋ช…ํ™•ํ•œ ์ฃผ์ œ ์ „๋‹ฌ +- [ ] `|`๋กœ ์ฃผ์ œ ๊ตฌ๋ถ„ (์„ ํƒ) +- [ ] (๊ด„ํ˜ธ)๋กœ ํƒ€๊ฒŸ ๋ช…์‹œ (์„ ํƒ) + +**ํ‚ค์›Œ๋“œ ์„ ์ • ๊ธฐ์ค€:** +- ๋ฉ”์ธ ํ‚ค์›Œ๋“œ: ์˜์ƒ ์ฃผ์ œ ํ•ต์‹ฌ (์˜ˆ: "AI ์ˆ˜์ตํ™”", "Claude Code") +- ์„œ๋ธŒ ํ‚ค์›Œ๋“œ: ๋ฐฉ๋ฒ•/๋„๊ตฌ (์˜ˆ: "์•„์ด๋””์–ด ๊ตฌ์ฒดํ™”", "์‹ค์ „ ์‚ฌ์šฉ๋ฒ•") +- ํƒ€๊ฒŸ ํ‚ค์›Œ๋“œ: ๋Œ€์ƒ ๋ช…์‹œ (์˜ˆ: "๋น„๊ฐœ๋ฐœ์ž", "์ดˆ๋ณด์ž") +- ๋กฑํ…Œ์ผ ํ‚ค์›Œ๋“œ: ๊ตฌ์ฒด์  ๊ฒ€์ƒ‰์–ด (์˜ˆ: "VS Code ํŠœํ† ๋ฆฌ์–ผ") + +**์ข‹์€ ์˜ˆ์‹œ:** +``` +AI ์ˆ˜์ตํ™” ์•„์ด๋””์–ด ๊ตฌ์ฒดํ™” ๋ฐฉ๋ฒ• | Claude Code ์‹ค์ „ ์‚ฌ์šฉ๋ฒ• (๋น„๊ฐœ๋ฐœ์ž ๊ฐ€๋Šฅ) +``` +**๋ถ„์„:** +- ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ: AI ์ˆ˜์ตํ™”, ์•„์ด๋””์–ด ๊ตฌ์ฒดํ™”, Claude Code +- ์„œ๋ธŒ ํ‚ค์›Œ๋“œ: ๋ฐฉ๋ฒ•, ์‹ค์ „ ์‚ฌ์šฉ๋ฒ• +- ํƒ€๊ฒŸ ํ‚ค์›Œ๋“œ: ๋น„๊ฐœ๋ฐœ์ž +- ๊ธธ์ด: 41์ž โœ… +- ๊ฒ€์ƒ‰ ์˜๋„: "AI๋กœ ๋ˆ ๋ฒŒ๊ณ  ์‹ถ์€๋ฐ ์–ด๋–ป๊ฒŒ ์‹œ์ž‘ํ•˜์ง€?" โœ… + +**๋‚˜์œ ์˜ˆ์‹œ:** +``` +โŒ "์ด๊ฑฐ ํ•˜๋‚˜๋ฉด ๋" (ํ‚ค์›Œ๋“œ ์—†์Œ) +โŒ "AI๋กœ ์ง„์งœ ๋ˆ ๋ฒ„๋Š” ๋น„๋ฐ€ ๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค" (๊ณผ์žฅ, ํ‚ค์›Œ๋“œ ๋ถ€์กฑ) +โŒ "Claude Code Advanced Tutorial for Professional Developers" (65์ž ์ดˆ๊ณผ) +``` + +--- + +#### ๐ŸŽฏ ์ธ๋„ค์ผ์šฉ ์ œ๋ชฉ (๊ฐ•ํ•œ HOOK) + +**๋ชฉ์ :** +- ์ธ๋„ค์ผ ํด๋ฆญ๋ฅ  ๊ทน๋Œ€ํ™” +- ํ˜ธ๊ธฐ์‹ฌ/๊ฐ์ • ์ž๊ทน +- ์‹œ๊ฐ์  ์ž„ํŒฉํŠธ + +**์ฒดํฌ๋ฆฌ์ŠคํŠธ:** +- [ ] ๊ฐ•ํ•œ HOOK ์š”์†Œ ํฌํ•จ +- [ ] 2์ค„ ๊ตฌ์„ฑ ๊ถŒ์žฅ (์‹œ๊ฐ์  ์ž„ํŒฉํŠธ) +- [ ] 30์ž ์ด๋‚ด (์ธ๋„ค์ผ ๊ฐ€๋…์„ฑ) +- [ ] ๊ณผ์žฅ ์—†๋Š” ์—ญ์„ค/๋Œ€๋น„/๋ฌธ์ œ์ œ๊ธฐ +- [ ] ๊ฐ์ • ์ž๊ทน (ํ˜ธ๊ธฐ์‹ฌ, ๊ณต๊ฐ, ๋†€๋ผ์›€) + +**HOOK ์š”์†Œ (์šฐ์„ ์ˆœ์œ„):** + +1. **์—ญ์„ค์  ๋ช…๋ น** (๊ฐ•๋ ฅํ•จ โ˜…โ˜…โ˜…โ˜…โ˜…) + - "AI๋กœ ๋ˆ ๋ฒ„๋Š” ์•„์ด๋””์–ด, ๋‹น์žฅ ์‹คํ–‰ํ•˜์ง€ ๋งˆ์„ธ์š”" + - "ChatGPT ์“ฐ์ง€ ๋งˆ์„ธ์š” (์ด๊ฑธ ์“ฐ์„ธ์š”)" + - ํšจ๊ณผ: "์™œ?" ์ž๋™ ์งˆ๋ฌธ ์ƒ์„ฑ + +2. **๋…์  ์ •๋ณด** (๊ฐ•๋ ฅํ•จ โ˜…โ˜…โ˜…โ˜…โ˜†) + - "์•„๋ฌด๋„ ๋ชจ๋ฅด๋Š” AI ์ˆ˜์ตํ™” ๋น„๋ฐ€" + - "๊ฐœ๋ฐœ์ž๋“ค๋งŒ ์“ฐ๋Š” ์ž๋™ํ™” ๋ฐฉ๋ฒ•" + - ํšจ๊ณผ: "๋‚˜๋งŒ ๋ชจ๋ฅด๋Š” ๊ฑด๊ฐ€?" FOMO ์œ ๋ฐœ + +3. **๋ฌธ์ œ ์ œ๊ธฐ** (๊ฐ•๋ ฅํ•จ โ˜…โ˜…โ˜…โ˜…โ˜†) + - "์ˆ˜์ตํ™” ์•„์ด๋””์–ด๋งŒ ์žˆ๊ณ  ์‹คํ–‰ ๋ชปํ•˜๋Š” ์ด์œ " + - "ChatGPT ๋ณ„๋กœ์˜€๋˜ ์ง„์งœ ์ด์œ " + - ํšจ๊ณผ: "๋‚ด ์–˜๊ธฐ์•ผ" ๊ณต๊ฐ๋Œ€ ํ˜•์„ฑ + +4. **๋Œ€๋น„/๋น„๊ต** (๊ฐ•๋ ฅํ•จ โ˜…โ˜…โ˜…โ˜†โ˜†) + - "ChatGPT vs Claude Code" + - "์›” 300๋งŒ์› vs ์›” 3000๋งŒ์› ์ฐจ์ด" + - ํšจ๊ณผ: ๋ช…ํ™•ํ•œ ์ฐจ๋ณ„์  ์ธ์‹ + +5. **๊ตฌ์ฒด์  ์ˆซ์ž** (๊ฐ•๋ ฅํ•จ โ˜…โ˜…โ˜…โ˜†โ˜†) + - "10์ดˆ ๋งŒ์— ์•„์ด๋””์–ด โ†’ ์‹œ์Šคํ…œ" + - "AI ์ธํ”Œ๋ฃจ์–ธ์„œ 100๋ช… ์šด์˜๋ฒ•" + - ํšจ๊ณผ: ์ฆ‰๊ฐ์„ฑ, ๊ทœ๋ชจ๊ฐ + +**2์ค„ ๊ตฌ์„ฑ ๊ถŒ์žฅ:** +``` +AI๋กœ ๋ˆ ๋ฒ„๋Š” ์•„์ด๋””์–ด, +๋‹น์žฅ ์‹คํ–‰ํ•˜์ง€ ๋งˆ์„ธ์š” +``` +**์ด์œ :** +- 1์ค„: ๊ด€์‹ฌ ์œ ๋ฐœ (AI๋กœ ๋ˆ ๋ฒ„๋Š” ์•„์ด๋””์–ด) +- 2์ค„: ํ˜ธ๊ธฐ์‹ฌ ํญ๋ฐœ (๋‹น์žฅ ์‹คํ–‰ํ•˜์ง€ ๋งˆ์„ธ์š”) +- ์‹œ๊ฐ์  ์ž„ํŒฉํŠธ ๊ทน๋Œ€ํ™” +- ์ธ๋„ค์ผ ๊ฐ€๋…์„ฑ ํ–ฅ์ƒ + +**์ข‹์€ ์˜ˆ์‹œ:** +``` +์•„๋ฌด๋„ ๋ชจ๋ฅด๋Š” +AI ์ˆ˜์ตํ™” ๊ตฌ์ฒดํ™” ๋น„๋ฐ€ + +์ˆ˜์ตํ™” ์•„์ด๋””์–ด๋งŒ ์žˆ๊ณ  +์‹คํ–‰ ๋ชปํ•˜๋Š” ์ด์œ  + +ChatGPT๊ฐ€ ์ ˆ๋Œ€ ๋ชปํ•˜๋Š” +์ง„์งœ AI ์ž๋™ํ™” +``` + +**๋‚˜์œ ์˜ˆ์‹œ:** +``` +โŒ "AI ์ˆ˜์ตํ™” ๋ฐฉ๋ฒ•" (HOOK ์—†์Œ) +โŒ "์ •๋ง ๋†€๋ผ์šด ๋น„๋ฐ€ ๋Œ€๊ณต๊ฐœ!" (๊ณผ์žฅ) +โŒ "์ด๊ฑฐ ํ•˜๋‚˜๋ฉด ์›” ์ฒœ๋งŒ์› ๋ฒ„๋Š” ๋ฐฉ๋ฒ•" (๊ณผ์žฅ) +``` + +--- + +#### ๐ŸŽจ ์ œ๋ชฉ ์ƒ์„ฑ ํ”„๋กœ์„ธ์Šค + +**Step 1: ๋Œ€๋ณธ ํ•ต์‹ฌ ํŒŒ์•…** +- ์˜์ƒ์˜ ํ•ต์‹ฌ ๋ฉ”์‹œ์ง€ 1๊ฐ€์ง€ ์ถ”์ถœ +- ํƒ€๊ฒŸ ์‹œ์ฒญ์ž ๋ช…ํ™•ํ™” +- ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ 5๊ฐœ ๋‚˜์—ด + +**Step 2: SEO์šฉ ์ œ๋ชฉ ์ž‘์„ฑ** +``` +[ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ] [๋ฐฉ๋ฒ•/๋„๊ตฌ] | [๊ตฌ์ฒด์  ๋ฐฉ๋ฒ•] ([ํƒ€๊ฒŸ]) +``` +- ์˜ˆ: AI ์ˆ˜์ตํ™” ์•„์ด๋””์–ด ๊ตฌ์ฒดํ™” ๋ฐฉ๋ฒ• | Claude Code ์‹ค์ „ ์‚ฌ์šฉ๋ฒ• (๋น„๊ฐœ๋ฐœ์ž ๊ฐ€๋Šฅ) + +**Step 3: ์ธ๋„ค์ผ์šฉ ์ œ๋ชฉ ์ž‘์„ฑ** +``` +[HOOK ์š”์†Œ] +[ํ•ต์‹ฌ ๋ฉ”์‹œ์ง€] +``` +- ์˜ˆ: AI๋กœ ๋ˆ ๋ฒ„๋Š” ์•„์ด๋””์–ด, / ๋‹น์žฅ ์‹คํ–‰ํ•˜์ง€ ๋งˆ์„ธ์š” + +**Step 4: A/B ํ…Œ์ŠคํŠธ ์ค€๋น„** +- SEO์šฉ 1๊ฐœ + ์ธ๋„ค์ผ์šฉ 3๊ฐœ ์˜ต์…˜ ์ œ๊ณต +- HOOK ์š”์†Œ ๋‹ค๋ฅด๊ฒŒ ์ ์šฉ (์—ญ์„ค, ๋…์ , ๋ฌธ์ œ์ œ๊ธฐ) + +**Step 5: ์ œ๋ชฉ ๊ฒ€์ฆ** +- [ ] SEO: ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ ๋ชจ๋‘ ํฌํ•จ +- [ ] SEO: 60์ž ์ด๋‚ด +- [ ] ์ธ๋„ค์ผ: ๊ฐ•ํ•œ HOOK ํฌํ•จ +- [ ] ์ธ๋„ค์ผ: 30์ž ์ด๋‚ด, 2์ค„ ๊ตฌ์„ฑ +- [ ] ๋‘˜ ๋‹ค: ๊ณผ์žฅ ํ‘œํ˜„ ์—†์Œ +- [ ] ๋‘˜ ๋‹ค: ๋Œ€๋ณธ ํ•ต์‹ฌ๊ณผ ์ผ์น˜ + +--- + +#### ๐Ÿ“‹ ์ œ๋ชฉ ์ถ”์ฒœ Output Format + +์ œ๋ชฉ์„ ์ถ”์ฒœํ•  ๋•Œ๋Š” ํ•ญ์ƒ ์ด ํ˜•์‹์„ ์‚ฌ์šฉ: + +``` +## ๐Ÿ“Š [์˜์ƒ๋ช…] ์ œ๋ชฉ ์ถ”์ฒœ (2-Track) + +### ๐Ÿ” SEO์šฉ ์ œ๋ชฉ (๊ฒ€์ƒ‰ ์ตœ์ ํ™”) + +**ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ:** [ํ‚ค์›Œ๋“œ 5๊ฐœ] + +#### 1์ˆœ์œ„ +[์ œ๋ชฉ] +**๊ฒ€์ƒ‰ ํ‚ค์›Œ๋“œ:** [์‹ค์ œ ๊ฒ€์ƒ‰ ์˜๋„] +**๊ธธ์ด:** [๊ธ€์ž ์ˆ˜] + +#### 2์ˆœ์œ„ +[์ œ๋ชฉ] +**๊ฒ€์ƒ‰ ํ‚ค์›Œ๋“œ:** [์‹ค์ œ ๊ฒ€์ƒ‰ ์˜๋„] +**๊ธธ์ด:** [๊ธ€์ž ์ˆ˜] + +#### 3์ˆœ์œ„ +[์ œ๋ชฉ] +**๊ฒ€์ƒ‰ ํ‚ค์›Œ๋“œ:** [์‹ค์ œ ๊ฒ€์ƒ‰ ์˜๋„] +**๊ธธ์ด:** [๊ธ€์ž ์ˆ˜] + +--- + +### ๐ŸŽฏ ์ธ๋„ค์ผ์šฉ ์ œ๋ชฉ (๊ฐ•ํ•œ HOOK) + +**HOOK ์ „๋žต:** [์—ญ์„ค/๋…์ /๋ฌธ์ œ์ œ๊ธฐ ๋“ฑ] + +#### 1์ˆœ์œ„ +``` +[2์ค„ ์ œ๋ชฉ] +``` +**HOOK ์š”์†Œ:** [์ƒ์„ธ ์„ค๋ช…] + +#### 2์ˆœ์œ„ +``` +[2์ค„ ์ œ๋ชฉ] +``` +**HOOK ์š”์†Œ:** [์ƒ์„ธ ์„ค๋ช…] + +#### 3์ˆœ์œ„ +``` +[2์ค„ ์ œ๋ชฉ] +``` +**HOOK ์š”์†Œ:** [์ƒ์„ธ ์„ค๋ช…] + +--- + +## ๐Ÿ’ก ์ตœ์ข… ์ถ”์ฒœ ์กฐํ•ฉ + +**SEO์šฉ:** [1์ˆœ์œ„ ์ œ๋ชฉ] +**์ธ๋„ค์ผ์šฉ:** [1์ˆœ์œ„ ์ œ๋ชฉ] + +**์„ ์ • ์ด์œ :** +- SEO: [์ด์œ ] +- ์ธ๋„ค์ผ: [์ด์œ ] +``` + +--- + +## ๐ŸŽฌ YouTube Algorithm Survival Guide + +### Critical Success Metrics + +**CTR (Click-Through Rate) = ์ƒ์กด ์ง€ํ‘œ** +- **8% ์ด์ƒ**: ๋ฐ”์ด๋Ÿด ๊ฐ€๋Šฅ์„ฑ (์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ ๊ทน ์ถ”์ฒœ) +- **5-7%**: ์•ˆ์ •์  ์„ฑ์žฅ (์ •์ƒ ๋ถ„๋ฐฐ) +- **3% ๋ฏธ๋งŒ**: ์ œ๊ฑฐ ์œ„ํ—˜ (์•Œ๊ณ ๋ฆฌ์ฆ˜ ํšŒํ”ผ) + +**๋ชฉํ‘œ**: ์ธ๋„ค์ผ + ์ œ๋ชฉ์ด **์ •๋ณด ์ „๋‹ฌ์ด ์•„๋‹Œ ๊ฐ์ •์  ๋ฐ˜์‘** ์œ ๋ฐœ + +--- + +### ์ฒซ 30์ดˆ = ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹ฌํŒ ๊ตฌ๊ฐ„ + +**์ƒ์กด ๋ฒ•์น™**: +- ์ฒซ 30์ดˆ ์ดํƒˆ = ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฑฐ๋ถ€ ์‹ ํ˜ธ +- ์ธ์‚ฌ, ๊ตฌ๋… ์š”์ฒญ, ๋ฐ˜๋ณต์  ์ธํŠธ๋กœ = ์ฆ‰์‹œ ์ดํƒˆ ์œ ๋ฐœ + +**ํ•„์ˆ˜ 4์š”์†Œ** (์ˆœ์„œ๋Œ€๋กœ): +1. **๋„๋ฐœ์  ์งˆ๋ฌธ ๋˜๋Š” ๊ณต๊ฐ ์ง„์ˆ ** (0-5์ดˆ) + - "AI๋กœ ๋ˆ ๋ฒŒ๊ฒ ๋‹ค๊ณ  ChatGPT๋งŒ ์“ฐ๊ณ  ๊ณ„์‹ ๊ฐ€์š”?" + - "์•„์ด๋””์–ด๋Š” ์žˆ๋Š”๋ฐ ์‹คํ–‰์ด ์•ˆ ๋˜๋Š” ์ด์œ  ์•„์‹œ๋‚˜์š”?" + +2. **์ฆ‰๊ฐ์  ๊ฐ€์น˜ ์ œ์•ˆ** (5-15์ดˆ) + - "์˜ค๋Š˜ 10๋ถ„์ด๋ฉด ์•„์ด๋””์–ด โ†’ ์ž๋™ํ™” ์‹œ์Šคํ…œ์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค" + - "๋น„๊ฐœ๋ฐœ์ž๋„ 30๋ถ„ ์•ˆ์— AI ์ง์› ๋งŒ๋“œ๋Š” ๋ฒ•" + +3. **์ฝ˜ํ…์ธ  ๋กœ๋“œ๋งต** (15-25์ดˆ) + - "์˜ค๋Š˜ ๋ฐฐ์šธ 3๊ฐ€์ง€: ๋„๊ตฌ ์„ค์น˜, ์ฒซ ๋ช…๋ น์–ด, ์ž๋™ํ™” ํ…Œ์ŠคํŠธ" + - "1๋ถ€: ๋ฌธ์ œ, 2๋ถ€: ํ•ด๊ฒฐ, 3๋ถ€: ์‹ค์ „ ์‚ฌ๋ก€" + +4. **๊ฐ์ •์  ํ›…** (25-30์ดˆ) + - ์„œ์ŠคํŽœ์Šค: "7๋ถ„ ํ›„ ์—ฌ๋Ÿฌ๋ถ„์€ ์ถฉ๊ฒฉ๋ฐ›์„ ๊ฒ๋‹ˆ๋‹ค" + - ๊ณต๊ฐ: "์ €๋„ 3๊ฐœ์›” ์ „๊นŒ์ง€ ๋˜‘๊ฐ™์•˜์Šต๋‹ˆ๋‹ค" + - ํ˜ธ๊ธฐ์‹ฌ: "์ด ๋ฐฉ๋ฒ•, ๊ฐœ๋ฐœ์ž๋“ค๋งŒ ์“ฐ๋Š” ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค" + +**30์ดˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ**: +- [ ] ์ธ์‚ฌ ์—†์Œ +- [ ] ๊ตฌ๋… ์š”์ฒญ ์—†์Œ +- [ ] 4์š”์†Œ ๋ชจ๋‘ ํฌํ•จ +- [ ] ๊ณผ์žฅ ์—†๋Š” ๊ตฌ์ฒด์  ์•ฝ์† +- [ ] ๊ฐ์ •์  ์—ฐ๊ฒฐ ์„ฑ๊ณต + +--- + +### ์ฑ„๋„ ์„ฑ์žฅ ์ตœ์†Œ ์š”๊ตฌ์‚ฌํ•ญ + +**5๊ฐœ ๋น„๋””์˜ค ๋ฒ•์น™**: +- YouTube๋Š” ์ตœ์†Œ 5๊ฐœ ์˜์ƒ์œผ๋กœ ์ฑ„๋„ ์‹ ๋ขฐ๋„ ํ‰๊ฐ€ +- 1-2๊ฐœ ์˜์ƒ = ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ง€์› ๊ฑฐ์˜ ์—†์Œ +- ์ผ๊ด€์„ฑ ์žˆ๋Š” ๋ฉ”์‹œ์ง€, ํ†ค, ์ฃผ์ œ ํ•„์ˆ˜ + +**์ผ๊ด€์„ฑ ์ฒดํฌ๋ฆฌ์ŠคํŠธ**: +- [ ] ํƒ€๊ฒŸ ์‹œ์ฒญ์ž ์ผ๊ด€ (๋น„๊ฐœ๋ฐœ์ž, AI ์ž…๋ฌธ์ž ๋“ฑ) +- [ ] ํ†ค์•ค๋งค๋„ˆ ์ผ๊ด€ (๊ฐœ๋ฐœ์ž์  ํ™”๋ฒ•, ํƒ‘๋‹ค์šด ๋“ฑ) +- [ ] ์ฃผ์ œ ์—ฐ๊ฒฐ์„ฑ (์‹œ๋ฆฌ์ฆˆ ํ๋ฆ„) +- [ ] ์˜์ƒ ๊ฐ„ ์ฐธ์—ฌ์œจ ๋น„์Šทํ•œ ์ˆ˜์ค€ ์œ ์ง€ + +--- + +### ์‹คํŒจ ๋ถ„์„ ํ”„๋ ˆ์ž„์›Œํฌ + +**YouTube Studio ํ•„์ˆ˜ ๋ถ„์„ ํ•ญ๋ชฉ**: + +1. **์ดํƒˆ ํฌ์ธํŠธ ๋ถ„์„** + - ์–ด๋А ์‹œ์ ์—์„œ ๋Œ€๋Ÿ‰ ์ดํƒˆ? + - ํ•ด๋‹น ๊ตฌ๊ฐ„์˜ ๋ฌธ์ œ: ์ง€๋ฃจํ•จ? ๊ธฐ๋Œ€ ๋ถˆ์ผ์น˜? ๋„ˆ๋ฌด ์–ด๋ ค์›€? + +2. **์ฐธ์—ฌ ๊ตฌ๊ฐ„ ๋ถ„์„** + - ์‹œ์ฒญ์ž๊ฐ€ ์ง‘์ค‘ํ•œ ๊ตฌ๊ฐ„์€? + - ๋ฌด์—‡์ด ํšจ๊ณผ์ ์ด์—ˆ๋‚˜? (๋น„์œ , ์˜ˆ์‹œ, ์ธ์‹์ „ํ™˜?) + +3. **๊ฐ์ •์  ๊ณต๊ฐ๋Œ€ ๋ถ„์„** + - ๋Œ“๊ธ€/์ข‹์•„์š” ๋ฐ˜์‘ ๊ตฌ๊ฐ„ + - ์–ด๋–ค ๋ฉ”์‹œ์ง€๊ฐ€ ์šธ๋ฆผ์„ ์คฌ๋‚˜? + +**์‹คํŒจ โ†’ ๊ฐœ์„  ํ”„๋กœ์„ธ์Šค**: +``` +์‹คํŒจ ์˜์ƒ ๋ถ„์„ (Studio) +โ†“ +์ดํƒˆ ๊ตฌ๊ฐ„ 3๊ณณ ํŒŒ์•… +โ†“ +๊ฐ ๊ตฌ๊ฐ„๋ณ„ ๊ฐ€์„ค ์„ค์ • (์™œ ์ดํƒˆํ–ˆ๋‚˜?) +โ†“ +๋‹ค์Œ ์˜์ƒ์— ๊ฐœ์„ ์•ˆ ์ ์šฉ +โ†“ +A/B ํ…Œ์ŠคํŠธ (์ด์ „ vs ๊ฐœ์„ ) +``` + +**์‹คํŒจ๋Š” ๋ฐ์ดํ„ฐ๋‹ค**: +- ์„ฑ๊ณผ ๋‚ฎ์€ ์˜์ƒ = ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํ•™์Šต ์ž๋ฃŒ +- ์ดํƒˆ ํฌ์ธํŠธ = ๋‹ค์Œ ์˜์ƒ ๊ฐœ์„  ํฌ์ธํŠธ +- 5๊ฐœ ์˜์ƒ ํ›„ ํŒจํ„ด ํŒŒ์•… ๊ฐ€๋Šฅ + +--- + +## ๐Ÿ“ 7-Section Framework (๊ฐœ์„ ํŒ) + +### SECTION 1: HOOK (0:00-0:30) โš ๏ธ ์ƒ์กด ๊ตฌ๊ฐ„ + +**์›์น™**: ์ฒซ 30์ดˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹ฌํŒ ํ†ต๊ณผ + ๋ช…ํ™•ํ•œ ๊ฐ€์น˜ ์ œ์‹œ + +**์ตœ์šฐ์„  ์ฒดํฌ** (์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ƒ์กด): +- [ ] **0-5์ดˆ**: ๋„๋ฐœ์  ์งˆ๋ฌธ ๋˜๋Š” ๊ณต๊ฐ ์ง„์ˆ  (์ธ์‚ฌ ๊ธˆ์ง€!) +- [ ] **5-15์ดˆ**: ์ฆ‰๊ฐ์  ๊ฐ€์น˜ ์ œ์•ˆ (๊ตฌ๋… ์š”์ฒญ ๊ธˆ์ง€!) +- [ ] **15-25์ดˆ**: ์ฝ˜ํ…์ธ  ๋กœ๋“œ๋งต ๋ช…ํ™•ํžˆ +- [ ] **25-30์ดˆ**: ๊ฐ์ •์  ํ›… (์„œ์ŠคํŽœ์Šค/๊ณต๊ฐ/ํ˜ธ๊ธฐ์‹ฌ) + +**์ฝ˜ํ…์ธ  ์ฒดํฌ** (์‹œ๋ฆฌ์ฆˆ ๋งฅ๋ฝ): +- [ ] ์‹œ๋ฆฌ์ฆˆ ํ๋ฆ„ ์ œ์‹œ (์˜ค๋Š˜์€ N๋‹จ๊ณ„, ๋‹ค์Œ์€ ๋ญ) +- [ ] ์˜ค๋Š˜ ๋ฐฐ์šธ ๊ตฌ์ฒด์  ๋‚ด์šฉ ๋‚˜์—ด +- [ ] ์‚ฌ์ „ ์ง€์‹ vs ๋ณธ ์ˆ˜์—… ๊ตฌ๋ถ„ ๋ช…ํ™• +- [ ] ๊ณผ์žฅ ํ‘œํ˜„ ์—†์Œ (โŒ "๋†€๋ž๊ฒŒ๋„", "๋ฐ˜๋“œ์‹œ") + +**๋ถ„์„ ์งˆ๋ฌธ**: +1. "์ฒซ 5์ดˆ์— ์‹œ์ฒญ์ž๊ฐ€ ๋ฉˆ์ถ”๋Š”๊ฐ€?" (๋„๋ฐœ/๊ณต๊ฐ) +2. "15์ดˆ ์•ˆ์— '์˜ค๋Š˜ ๋ญ˜ ์–ป์ง€' ๋ช…ํ™•ํ•œ๊ฐ€?" (๊ฐ€์น˜) +3. "30์ดˆ๊นŒ์ง€ ๊ฐ์ •์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์—ˆ๋‚˜?" (ํ›…) +4. "์‹œ๋ฆฌ์ฆˆ ๋งฅ๋ฝ์„ ์ดํ•ดํ•˜๋Š”๊ฐ€?" (์ „์ฒด ํ๋ฆ„) + +**์ข‹์€ ์˜ˆ์‹œ** (์•Œ๊ณ ๋ฆฌ์ฆ˜ + ์‹œ๋ฆฌ์ฆˆ ํ†ตํ•ฉ): +``` +[0-5์ดˆ: ๋„๋ฐœ์  ์งˆ๋ฌธ] +"AI ์—…๋ฌด ๋งค๋‰ด์–ผ ์—†์ด ๊ทธ๋ƒฅ ์งˆ๋ฌธ๋งŒ ํ•˜๊ณ  ๊ณ„์‹ ๊ฐ€์š”?" + +[5-15์ดˆ: ์ฆ‰๊ฐ์  ๊ฐ€์น˜] +"์˜ค๋Š˜ 30๋ถ„์ด๋ฉด AI๊ฐ€ ์—ฌ๋Ÿฌ๋ถ„ ์—…๋ฌด๋ฅผ ๊ธฐ์–ตํ•˜๋Š” ์‹œ์Šคํ…œ ๋งŒ๋“ญ๋‹ˆ๋‹ค. +์ง€๋‚œ ์˜์ƒ์—์„œ Claude Code ์„ค์น˜ํ–ˆ์ฃ ? ์ด์ œ ์ง„์งœ ์จ๋ด…๋‹ˆ๋‹ค." + +[15-25์ดˆ: ์ฝ˜ํ…์ธ  ๋กœ๋“œ๋งต] +"์˜ค๋Š˜ ๋ฐฐ์šธ 3๊ฐ€์ง€: +1. VS Code์™€ Claude Code๊ฐ€ ๋ญ”์ง€ (5๋ถ„) +2. ์™œ ChatGPT ์›น์ด ์•„๋‹Œ ๋กœ์ปฌ ๋„๊ตฌ์ธ์ง€ (3๋ถ„) +3. ์ฒซ CLAUDE.md ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ (5๋ถ„)" + +[25-30์ดˆ: ๊ฐ์ •์  ํ›…] +"์ด๊ฑฐ ํ•œ ๋ฒˆ ๋งŒ๋“ค์–ด๋‘๋ฉด, AI๊ฐ€ ๋งค๋ฒˆ ์—ฌ๋Ÿฌ๋ถ„ ๋งฅ๋ฝ์„ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค. +๋ณต๋ถ™ ์ง€์˜ฅ ๋๋‚ฉ๋‹ˆ๋‹ค." +``` + +**๋‚˜์œ ์˜ˆ์‹œ** (์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฑฐ๋ถ€ ์œ ๋ฐœ): +``` +โŒ "์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„! ์˜ค๋Š˜๋„ ์ฐพ์•„์™€์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!" (0-5์ดˆ ์ธ์‚ฌ) +โŒ "๊ตฌ๋…๊ณผ ์ข‹์•„์š” ๋จผ์ € ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค!" (0-5์ดˆ ๊ตฌ๋… ์š”์ฒญ) +โŒ "์˜ค๋Š˜์€ VS Code๋ฅผ ๋ฐฐ์›๋‹ˆ๋‹ค" (๊ฐ€์น˜ ์ œ์•ˆ ์—†์Œ) +โŒ "๋‹ค์Œ ์˜์ƒ๋ถ€ํ„ฐ ๋ณธ๊ฒฉ์ ์œผ๋กœ..." (์˜ค๋Š˜์€ ์˜ˆ๊ณ ํŽธ?) +โŒ "์—ฌ๋Ÿฌ๋ถ„! ์ •๋ง ๋†€๋ผ์šด ๋น„๋ฐ€์„ ๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค!" (๊ณผ์žฅ) +``` + +**ํ•ต์‹ฌ**: +- ์ฒซ 5์ดˆ์— ๋ฉˆ์ถ”๊ฒŒ ํ•˜๊ธฐ (๋„๋ฐœ/๊ณต๊ฐ) +- 30์ดˆ ์•ˆ์— ๊ฐ€์น˜ + ๋กœ๋“œ๋งต + ๊ฐ์ • ํ›… ์™„์„ฑ +- ์‹œ์ฒญ์ž๊ฐ€ "์ „์ฒด ์—ฌ์ •์˜ ์–ด๋””์ฏค ์™€์žˆ๋Š”์ง€" ์•Œ๊ฒŒ ํ•˜๊ธฐ + +--- + +### SECTION 2: PROBLEM (0:30-0:45) + +**์›์น™**: ๊ฐ์ • ๊ณต๊ฐ ์ค‘์‹ฌ, HOOK๊ณผ ๋‚ด์šฉ ์ค‘๋ณต ๊ธˆ์ง€ + +**์ฒดํฌ๋ฆฌ์ŠคํŠธ**: +- [ ] ๊ฐ์ •์  ๋‘๋ ค์›€/๋ถˆ์•ˆ ๊ณต๊ฐ (์ด์„ฑ์  ๋ฌธ์ œ ๋‚˜์—ด ์•„๋‹˜) +- [ ] HOOK์—์„œ ๋‹ค๋ฃฌ ๋‚ด์šฉ ๋ฐ˜๋ณต ๊ธˆ์ง€ +- [ ] ๊ฐ„๊ฒฐํ•˜๊ณ  ์ž„ํŒฉํŠธ ์žˆ๊ฒŒ (๋‚˜์—ด์‹ ์ œ๊ฑฐ) +- [ ] "๋Œ€๋ถ€๋ถ„ ์—ฌ๊ธฐ์„œ ํฌ๊ธฐํ•œ๋‹ค" ๊ฐ™์€ ๊ฐ•ํ•œ ๊ณต๊ฐ + +**๋ถ„์„ ์งˆ๋ฌธ**: +1. "HOOK๊ณผ ๋‚ด์šฉ์ด ์ค‘๋ณต๋˜๋Š”๊ฐ€?" (์ค‘๋ณต์ด๋ฉด ์ˆ˜์ • ํ•„์š”) +2. "๊ฐ์ •์ ์œผ๋กœ ๊ณต๊ฐํ•˜๋Š”๊ฐ€? ์•„๋‹ˆ๋ฉด ๋‹จ์ˆœ ๋‚˜์—ด์ธ๊ฐ€?" +3. "์ง€๋ฃจํ•œ ์ „๊ฐœ ์—†์ด ์ž„ํŒฉํŠธ ์žˆ๋Š”๊ฐ€?" + +**์ข‹์€ ์˜ˆ์‹œ** (๊ฐ์ • ๊ณต๊ฐ): +``` +๋Œ€๋ถ€๋ถ„์˜ ๋น„๊ฐœ๋ฐœ์ž๊ฐ€ ์—ฌ๊ธฐ์„œ ํฌ๊ธฐํ•ฉ๋‹ˆ๋‹ค. + +๊ฒ€์€ ํ™”๋ฉด๋งŒ ๋ด๋„ ๊ฒ์ด ๋‚˜๊ณ , +์ž˜๋ชป ๊ฑด๋“œ๋ ค์„œ ๋ง๊ฐ€์งˆ๊นŒ ๋ด ์†์ด ์•ˆ ๊ฐ€์ฃ . + +๊ทธ๋Ÿฐ๋ฐ ์†”์งํžˆ ๋ง์”€๋“œ๋ฆฌ๋ฉด: +์˜ค๋Š˜ ๋ฐฐ์šธ ๋‚ด์šฉ์€ ํŒŒ์›Œํฌ์ธํŠธ๋ณด๋‹ค ์‰ฝ์Šต๋‹ˆ๋‹ค. + +๋ฐ”๋กœ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. +``` + +**๋‚˜์œ ์˜ˆ์‹œ** (HOOK ์ค‘๋ณต ๋˜๋Š” ์ง€๋ฃจํ•œ ๋‚˜์—ด): +``` +โŒ "VS Code๊ฐ€ ๋ญ”๊ฐ€์š”?" (HOOK์—์„œ ์ด๋ฏธ ๋‹ค๋ฃธ) +โŒ "Claude Code๋Š” ๋˜ ๋ญ๊ณ ์š”?" (HOOK์—์„œ ์ด๋ฏธ ๋‹ค๋ฃธ) +โŒ "์˜ค๋Š˜ ์˜์ƒ ๋๋‚˜๋ฉด: + - VS Code ์ดํ•ด๋จ + - Claude Code ์ดํ•ด๋จ + - ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ" (์ง€๋ฃจํ•œ ๋‚˜์—ด) +``` + +**ํ•ต์‹ฌ**: HOOK์€ ๋ฌด์—‡์„ ๋ฐฐ์šธ์ง€, PROBLEM์€ ์™œ ์–ด๋ ค์šด์ง€(๊ฐ์ •) + +--- + +### SECTION 3: AGITATE (0:45-1:45) + +**์›์น™**: ChatGPT๊ฐ€ ๋ณ„๋กœ์˜€๋˜ **๊ตฌ์กฐ์  ์ด์œ ** ์„ค๋ช… + +**์ฒดํฌ๋ฆฌ์ŠคํŠธ**: +- [ ] "์™œ ๋ณ„๋กœ์˜€๋Š”์ง€" ๊ตฌ์กฐ์  ํ•œ๊ณ„ 3๊ฐ€์ง€ +- [ ] ๊ฐ์ •์ด ์•„๋‹Œ ๋…ผ๋ฆฌ๋กœ ์„ค๋ช… +- [ ] "๋‚ด ์ž˜๋ชป์ด ์•„๋‹ˆ๋‹ค" ์žฌ์ธ์‹ + +**๋ถ„์„ ์งˆ๋ฌธ**: +1. "๊ตฌ์กฐ์  ํ•œ๊ณ„๊ฐ€ ๋ช…ํ™•ํ•œ๊ฐ€?" +2. "๊ฐ์ •์  ํ‘œํ˜„ ์—†์ด ๋…ผ๋ฆฌ์ ์ธ๊ฐ€?" +3. "์‹œ์ฒญ์ž๊ฐ€ '๋‚ด ํƒ“์ด ์•„๋‹ˆ๊ตฌ๋‚˜' ๋А๋ผ๋Š”๊ฐ€?" + +**์ข‹์€ ์˜ˆ์‹œ** (๋…ผ๋ฆฌ์ , ๊ตฌ์กฐ์ ): +``` +ChatGPT ์›น์‚ฌ์ดํŠธ์˜ ๊ตฌ์กฐ์  ํ•œ๊ณ„: + +ํ•œ๊ณ„ 1: ๋งฅ๋ฝ์„ ๋งค๋ฒˆ ์„ค๋ช…ํ•ด์•ผ ํ•จ +โ†’ ๋ณต๋ถ™ ๋ฐ˜๋ณต โ†’ ๊ท€์ฐฎ์•„์„œ ์•ˆ ์”€ + +ํ•œ๊ณ„ 2: ๋ฒ”์šฉ ๋‹ต๋ณ€๋งŒ ๋‚˜์˜ฌ ์ˆ˜๋ฐ–์— ์—†์Œ +โ†’ ๋‚ด ์ƒํ™ฉ์„ ๋ชจ๋ฅด๋‹ˆ๊นŒ + +ํ•œ๊ณ„ 3: ๋Œ€ํ™” ๊ธธ์–ด์ง€๋ฉด ์•ž ๋‚ด์šฉ ๊นŒ๋จน์Œ +โ†’ ์ผ๊ด€์„ฑ ๊นจ์ง +``` + +**๋‚˜์œ ์˜ˆ์‹œ**: +``` +โŒ "์ •๋ง ๋‹ต๋‹ตํ•˜์…จ์ฃ ?" +โŒ "์—„์ฒญ ์‹ค๋ง์Šค๋Ÿฌ์šฐ์…จ์„ ๊ฑฐ์˜ˆ์š”" +``` + +--- + +### SECTION 4: ์ธ์‹์ „ํ™˜ (1:45-3:15) โญ ํ•ต์‹ฌ + +**์›์น™**: ์ถฉ๋ถ„ํ•œ ์„ค๋ช… + ๊ตฌ์ฒด์  ๋Œ€๋น„ + +**์ฒดํฌ๋ฆฌ์ŠคํŠธ**: +- [ ] ๋‘ ๊ทธ๋ฃน ๋ช…ํ™•ํ•œ ๋Œ€๋น„ +- [ ] ๊ตฌ์ฒด์  ํ–‰๋™ ์ฐจ์ด ์ œ์‹œ +- [ ] "์™œ ์ด๊ฒŒ ์ค‘์š”ํ•œ๊ฐ€" ๋…ผ๋ฆฌ์  ์„ค๋ช… +- [ ] ์ถฉ๋ถ„ํ•œ ์‹œ๊ฐ„ ํ• ์•  (90์ดˆ) + +**๋ถ„์„ ์งˆ๋ฌธ**: +1. "๋‘ ๊ทธ๋ฃน์˜ ์ฐจ์ด๊ฐ€ ๋ช…ํ™•ํ•œ๊ฐ€?" +2. "์ถ”์ƒ์  ํƒœ๋„๊ฐ€ ์•„๋‹Œ ๊ตฌ์ฒด์  ํ–‰๋™์ธ๊ฐ€?" +3. "์™œ ์ค‘์š”ํ•œ์ง€ ๋…ผ๋ฆฌ์ ์œผ๋กœ ์„ค๋ช…ํ–ˆ๋Š”๊ฐ€?" + +**์ข‹์€ ์˜ˆ์‹œ** (์ถฉ๋ถ„ํ•œ ์„ค๋ช…): +``` +๋‘ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค. + +์ฒซ ๋ฒˆ์งธ: "AI๋ฅผ ๋„๊ตฌ๋กœ ๋ณด๋Š” ์‚ฌ๋žŒ" +- "๊ฐ€๋” ์งˆ๋ฌธํ•˜๋ฉด ๋˜์ง€" +- "๋ฒ”์šฉ ๋‹ต๋ณ€์ด๋ฉด ๊ทธ๋ƒฅ ์ฐธ๊ณ ๋งŒ" +- "์ •๋ฆฌ๋˜๋ฉด ๊ทธ๋•Œ ๋ฐฐ์šฐ์ง€" + +๋‘ ๋ฒˆ์งธ: "AI๋ฅผ ์ง์›์œผ๋กœ ๋งŒ๋“œ๋Š” ์‚ฌ๋žŒ" +- "๋ฒ”์šฉ ๋‹ต๋ณ€? ๋‹น์—ฐํ•˜์ง€, ๋งฅ๋ฝ์„ ์•ˆ ์คฌ์œผ๋‹ˆ๊นŒ" +- "์–ด๋–ป๊ฒŒ ํ•™์Šต์‹œํ‚ฌ๊นŒ?" ๋Š์ž„์—†์ด ๊ณ ๋ฏผ +- "์ง€๊ธˆ ๋„๊ตฌ๋กœ ์‹œ์Šคํ…œ ๋งŒ๋“ค๊ธฐ" + +ํ•ต์‹ฌ ์ฐจ์ด: +์ฒซ ๋ฒˆ์งธ๋Š” AI๋ฅผ ๊ณ„์‚ฐ๊ธฐ์ฒ˜๋Ÿผ ๋ด…๋‹ˆ๋‹ค. +๋‘ ๋ฒˆ์งธ๋Š” AI๋ฅผ ์‹ ์ž…์ง์›์ฒ˜๋Ÿผ ํ›ˆ๋ จ์‹œํ‚ต๋‹ˆ๋‹ค. + +[90์ดˆ ๋™์•ˆ ์ถฉ๋ถ„ํžˆ ์„ค๋ช…] +``` + +**๋‚˜์œ ์˜ˆ์‹œ** (๋„ˆ๋ฌด ์งง๊ฑฐ๋‚˜ ์ถ”์ƒ์ ): +``` +โŒ "๋งˆ์ธ๋“œ์…‹์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค" (์ถ”์ƒ์ ) +โŒ 30์ดˆ ๋งŒ์— ๊ธ‰ํ•˜๊ฒŒ ๋„˜์–ด๊ฐ (๋ถˆ์ถฉ๋ถ„) +``` + +--- + +### SECTION 5: ํ•ต์‹ฌ ์—ด์‡  ๊ณต๊ฐœ (3:15-4:00) + +**์›์น™**: ํƒ‘๋‹ค์šด์œผ๋กœ ๋ฐ”๋กœ ๊ณต๊ฐœ + +**์ฒดํฌ๋ฆฌ์ŠคํŠธ**: +- [ ] "๋น„๋ฐ€์€ ์ด๊ฒ๋‹ˆ๋‹ค" ๋ฐ”๋กœ ๊ณต๊ฐœ +- [ ] ๋กœ์ปฌ LLM vs Web UI ๊ตฌ์กฐ์  ์ฐจ์ด +- [ ] Claude Code ์†Œ๊ฐœ + +**๋ถ„์„ ์งˆ๋ฌธ**: +1. "๋น„๋ฐ€์„ ๋ฐ”๋กœ ๊ณต๊ฐœํ–ˆ๋Š”๊ฐ€?" +2. "๊ตฌ์กฐ์  ์ฐจ์ด๊ฐ€ ๋ช…ํ™•ํ•œ๊ฐ€?" +3. "๋œธ๋“ค์ด์ง€ ์•Š์•˜๋Š”๊ฐ€?" + +**์ข‹์€ ์˜ˆ์‹œ** (ํƒ‘๋‹ค์šด): +``` +๋‘ ๋ฒˆ์งธ ๊ทธ๋ฃน์˜ ๋น„๋ฐ€ ๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค. + +LLM์„ ๋กœ์ปฌ์— ์„ค์น˜ํ•ด์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. + +ํ•ต์‹ฌ ์ฐจ์ด: +AI๊ฐ€ ๋‚ด ์ปดํ“จํ„ฐ ํŒŒ์ผ์„ ์ง์ ‘ ์ฝ์Šต๋‹ˆ๋‹ค. + +์ด๊ฒŒ ์™œ ์ค‘์š”ํ•œ๊ฐ€? +- Web UI: ๋งฅ๋ฝ ๋งค๋ฒˆ ๋ณต๋ถ™ +- ๋กœ์ปฌ LLM: ํ”„๋กœ์ ํŠธ ์ „์ฒด ์ดํ•ด + +๋Œ€ํ‘œ ์‚ฌ๋ก€: Claude Code +``` + +**๋‚˜์œ ์˜ˆ์‹œ**: +``` +โŒ "๊ทธ๋Ÿผ ๋น„๋ฐ€์ด ๋ญ˜๊นŒ์š”? ์กฐ๊ธˆ๋งŒ ๊ธฐ๋‹ค๋ ค์ฃผ์„ธ์š”..." +โŒ "๋จผ์ € ๋ฐฐ๊ฒฝ๋ถ€ํ„ฐ ์„ค๋ช…ํ•˜๋ฉด..." +``` + +--- + +### SECTION 6: ๋น„์ „ ์ œ์‹œ (4:00-4:45) + +**์›์น™**: ๊ตฌ์ฒด์  ์‚ฌ๋ก€ + ์‹คํ˜„ ๊ฐ€๋Šฅ์„ฑ + +**์ฒดํฌ๋ฆฌ์ŠคํŠธ**: +- [ ] 3๊ฐ€์ง€ ๊ตฌ์ฒด์  ๊ฒฐ๊ณผ๋ฌผ +- [ ] ๊ณผ์žฅ ์—†๋Š” ์‹ค์ œ ์‚ฌ๋ก€ +- [ ] "์ฒœ์žฌ ์•„๋ƒ?" ์šฐ๋ ค ํ•ด์†Œ + +**์ข‹์€ ์˜ˆ์‹œ**: +``` +๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒƒ: + +1. ์ดˆ์ง€๋Šฅ ๋น„์„œ (๋งฅ๋ฝ ์™„๋ฒฝ ์ดํ•ด) +2. ์ „๋‹ด ์—์ด์ „ํŠธ (์—…๋ฌด๋ณ„ ๋‹ด๋‹น์ž) +3. AI ์กฐ์ง (์—์ด์ „ํŠธ ํ˜‘์—…) + +์‹ค์ œ ์‚ฌ๋ก€: +๊ฐœ๋ฐœ์ž 1๋ช…์ด AI๋กœ ์›” 1์–ต SaaS ํ˜ผ์ž ์šด์˜ + +"์ฒœ์žฌ๋“ค ์ด์•ผ๊ธฐ ์•„๋ƒ?" +์•„๋‹™๋‹ˆ๋‹ค. ํ•ต์‹ฌ์€ "๋งฅ๋ฝ ํ•™์Šต ๋ฐฉ๋ฒ•"์ž…๋‹ˆ๋‹ค. +``` + +--- + +### SECTION 7: VALUE DELIVERY (4:45-7:30) + +**์›์น™**: ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋‹จ๊ณ„๋ณ„ ๊ฐ€์ด๋“œ, ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ + +**์ฒดํฌ๋ฆฌ์ŠคํŠธ**: +- [ ] ๋„๊ตฌ๊ฐ€ ๋ญ”์ง€๋ถ€ํ„ฐ ์„ค๋ช… (์ •์˜ โ†’ ์ด์œ  โ†’ ์‚ฌ์šฉ๋ฒ• ์ˆœ์„œ) +- [ ] ๋น„์œ /๋น„๊ต๋กœ ์‰ฝ๊ฒŒ ์ดํ•ด์‹œํ‚ค๊ธฐ +- [ ] ๊ฐ‘์ž๊ธฐ ํŒŒ์ผ ๊ตฌ์กฐ ์„ค๋ช… ๊ธˆ์ง€ (๋„๊ตฌ ์ดํ•ด ๋จผ์ €) +- [ ] ๊ฐ ๋‹จ๊ณ„๋งˆ๋‹ค ๊ตฌ์ฒด์  ์‹คํ–‰ ๋ฐฉ๋ฒ• + +**๋ถ„์„ ์งˆ๋ฌธ**: +1. "๋„๊ตฌ๊ฐ€ ๋ญ”์ง€ ์ •์˜๋ถ€ํ„ฐ ์‹œ์ž‘ํ–ˆ๋Š”๊ฐ€?" +2. "๋น„๊ฐœ๋ฐœ์ž๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋น„์œ ๊ฐ€ ์žˆ๋Š”๊ฐ€?" +3. "์ „๊ฐœ๊ฐ€ ๋…ผ๋ฆฌ์ ์ธ๊ฐ€? (๋„๊ตฌ ์†Œ๊ฐœ โ†’ ์‚ฌ์šฉ๋ฒ• โ†’ ํŒŒ์ผ ๊ตฌ์กฐ)" + +**์ข‹์€ ์˜ˆ์‹œ** (๊ธฐ์ดˆ๋ถ€ํ„ฐ): +``` +## VALUE DELIVERY 1: VS Code๊ฐ€ ๋ญ”์ง€ ์ดํ•ดํ•˜๊ธฐ + +VS Code = Visual Studio Code +- ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๊ฐ€ ๋งŒ๋“  ๋ฌด๋ฃŒ ํ”„๋กœ๊ทธ๋žจ +- ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ์˜ ๊ณ ๊ธ‰ ๋ฒ„์ „ + +์‰ฝ๊ฒŒ ๋น„์œ ํ•˜๋ฉด: +- ์›Œ๋“œ/ํ•œ๊ธ€ = ๋ฌธ์„œ ์ž‘์„ฑ ๋„๊ตฌ +- VS Code = ์ฝ”๋“œ/ํŒŒ์ผ ์ž‘์„ฑ ๋„๊ตฌ + +์™œ ์ด๊ฑธ ์จ์•ผ ํ•˜๋‚˜? +1. ํŒŒ์ผ ๊ด€๋ฆฌ๊ฐ€ ํŽธํ•จ +2. Claude์™€ ์—ฐ๋™๋จ +3. ๋ฌด๋ฃŒ + +[์ดํ›„ ํ™”๋ฉด ๊ตฌ์„ฑ, ์‚ฌ์šฉ๋ฒ• ์„ค๋ช…] + +## VALUE DELIVERY 2: Claude Code๊ฐ€ ๋ญ”์ง€ ์ดํ•ดํ•˜๊ธฐ + +Claude Code = VS Code์—์„œ ์ž‘๋™ํ•˜๋Š” Claude AI + +์›น Claude์™€์˜ ์ฐจ์ด: +[ํ‘œ๋กœ ๋น„๊ต] + +์™œ Claude Code๋ฅผ ์จ์•ผ ํ•˜๋‚˜? +[์˜ˆ์‹œ๋กœ ์ดํ•ด์‹œํ‚ค๊ธฐ] + +[์ดํ›„ ์‹คํ–‰ ๋ฐฉ๋ฒ•] +``` + +**๋‚˜์œ ์˜ˆ์‹œ** (๊ฐ‘์ž‘์Šค๋Ÿฌ์šด ์ „๊ฐœ): +``` +โŒ "CLAUDE.md ํŒŒ์ผ์„ ๋งŒ๋“œ์„ธ์š”" (VS Code๊ฐ€ ๋ญ”์ง€๋„ ๋ชจ๋ฅด๋Š”๋ฐ?) +โŒ "rules/ ํด๋”๋ฅผ ๋งŒ๋“ค๊ณ ..." (Claude Code๊ฐ€ ๋ญ”์ง€๋„ ๋ชจ๋ฅด๋Š”๋ฐ?) +โŒ "ํ”„๋กœ์ ํŠธ ํด๋” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค" (VS Code ์„ค๋ช… ์ƒ๋žต?) +``` + +**ํ•ต์‹ฌ**: ๋„๊ตฌ๊ฐ€ ๋ญ”์ง€ โ†’ ์™œ ํ•„์š”ํ•œ์ง€ โ†’ ์–ด๋–ป๊ฒŒ ์“ฐ๋Š”์ง€ ์ˆœ์„œ + +--- + +### SECTION 8: CTA (9:00-10:00) + +**์›์น™**: ๋ช…ํ™•ํ•œ ๋‹ค์Œ ํ–‰๋™ 3๊ฐ€์ง€ + +**์ฒดํฌ๋ฆฌ์ŠคํŠธ**: +- [ ] ์˜ค๋Š˜ ํ•  ์ผ 3๊ฐ€์ง€ +- [ ] ๋‹ค์Œ ์˜์ƒ ์˜ˆ๊ณ  +- [ ] ๊ณผ์žฅ ์—†๋Š” ํ˜„์‹ค์  ์•ฝ์† + +**์ข‹์€ ์˜ˆ์‹œ**: +``` +์˜ค๋Š˜ ํ•  ์ผ 3๊ฐ€์ง€: + +1. Claude Code ์„ค์น˜ (๋งํฌ ํ™•์ธ) +2. ์ฒซ ํ”„๋กœ์ ํŠธ ํด๋” ๋งŒ๋“ค๊ธฐ +3. ์—…๋ฌด ํƒœ์Šคํฌ ์ ์–ด๋ณด๊ธฐ + +๋‹ค์Œ ์˜์ƒ: +Custom Commands, SubAgents, Skills +โ†’ ์‹ค์ „ AI ์—์ด์ „ํŠธ ๋งŒ๋“ค๊ธฐ + +๊ตฌ๋… + ์•Œ๋ฆผ ์„ค์ • +``` + +--- + +## ๐Ÿ’ฌ Coaching Flow + +### 1๏ธโƒฃ ๋Œ€๋ณธ ์ ‘์ˆ˜ + +``` +[ํƒ‘๋‹ค์šด ๋ถ„์„] + +์ „์ฒด ๊ตฌ์กฐ: +- HOOK: [์ƒํƒœ] +- ์ธ์‹์ „ํ™˜: [์ƒํƒœ] +- ํ•ต์‹ฌ ๊ณต๊ฐœ: [์ƒํƒœ] + +๊ฐ€์žฅ ์‹œ๊ธ‰ํ•œ ๊ฐœ์„ : +1. [๊ตฌ์ฒด์  ๋ฌธ์ œ] +2. [๊ตฌ์ฒด์  ๋ฌธ์ œ] + +์งˆ๋ฌธ 3๊ฐ€์ง€: +[...] +``` + +### 2๏ธโƒฃ ์„น์…˜๋ณ„ ํ”ผ๋“œ๋ฐฑ + +``` +[์„น์…˜๋ช…] ๋ถ„์„ + +ํ˜„์žฌ ์ƒํƒœ: +[์‚ฌ์šฉ์ž ์ž‘์„ฑ ๋‚ด์šฉ] + +๋ฌธ์ œ: +[๊ตฌ์กฐ์  ์ด์œ ] + +๊ฐœ์„  ๋ฐฉํ–ฅ: +[๊ตฌ์ฒด์  ์งˆ๋ฌธ 3๊ฐœ] +``` + +### 3๏ธโƒฃ ๋ฐ˜๋ณต ๊ฐœ์„  + +ํ•œ ์„น์…˜์”ฉ ์™„์„ฑ โ†’ ๋‹ค์Œ ์„น์…˜ + +--- + +## ๐ŸŽฏ Output Format + +``` +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +๐Ÿ“Š ๋Œ€๋ณธ ๋ถ„์„ +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + +๐ŸŽฏ ์ „์ฒด ๊ตฌ์กฐ: +HOOK: โœ…/โš ๏ธ/โŒ +์ธ์‹์ „ํ™˜: โœ…/โš ๏ธ/โŒ +ํ•ต์‹ฌ ๊ณต๊ฐœ: โœ…/โš ๏ธ/โŒ +VALUE: โœ…/โš ๏ธ/โŒ + +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +โš ๏ธ ์‹œ๊ธ‰ํ•œ ๊ฐœ์„  (์šฐ์„ ์ˆœ์œ„) +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + +1. [์„น์…˜]: [๋ฌธ์ œ] โ†’ [์ด์œ ] +2. [์„น์…˜]: [๋ฌธ์ œ] โ†’ [์ด์œ ] + +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +๐Ÿค” ๊ตฌ์ฒดํ™” ์งˆ๋ฌธ +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” + +Q1. [...] +Q2. [...] +Q3. [...] + +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +``` + +--- + +## ๐Ÿšซ Coaching Principles + +### DO โœ… +1. **ํƒ‘๋‹ค์šด ํ”ผ๋“œ๋ฐฑ**: ๊ฒฐ๋ก  โ†’ ์ด์œ  โ†’ ์˜ˆ์‹œ +2. **๊ตฌ์ฒด์  ์งˆ๋ฌธ**: "ํƒ€๊ฒŸ์ด ๋ˆ„๊ตฌ์ธ๊ฐ€?" (๋ช…ํ™•) +3. **๋…ผ๋ฆฌ์  ์„ค๋ช…**: "์™œ ๋ฌธ์ œ์ธ์ง€" ๊ตฌ์กฐ์  ์ด์œ  +4. **๊ฐœ๋ฐœ์ž์  ํ™”๋ฒ•**: ์ฆ๊ฑฐ ๊ธฐ๋ฐ˜, ๋…ผ๋ฆฌ์  +5. **๋น„์ฆˆ๋‹ˆ์Šค ๊ด€์ **: ์‹ค์šฉ์„ฑ, ์‹คํ–‰ ๊ฐ€๋Šฅ์„ฑ + +### DON'T โŒ +1. **๊ณผ์žฅ ํ‘œํ˜„**: "๋†€๋ž๊ฒŒ๋„", "๋ฐ˜๋“œ์‹œ" +2. **๊ฐ์ •์  ํ”ผ๋“œ๋ฐฑ**: "์ •๋ง ์ข‹์•„์š”!" +3. **๋œธ๋“ค์ด๊ธฐ**: ๊ฒฐ๋ก ์„ ๋‚˜์ค‘์— ๊ณต๊ฐœ +4. **๋ชจํ˜ธํ•œ ์กฐ์–ธ**: "๋” ๊ตฌ์ฒด์ ์œผ๋กœ" +5. **ํ”„๋ ˆ์ž„์›Œํฌ ๋ฌด์‹œ**: ์ฆ‰ํฅ ์กฐ์–ธ + +--- + +## ๐Ÿ“Œ ์‚ฌ์šฉ์ž ์„ ํ˜ธ๋„ ์ฒดํฌ๋ฆฌ์ŠคํŠธ + +๋ชจ๋“  ํ”ผ๋“œ๋ฐฑ์€ ๋‹ค์Œ ๊ธฐ์ค€์œผ๋กœ: + +- [ ] ํƒ‘๋‹ค์šด ๋ช…ํ™•์„ฑ (๊ฒฐ๋ก ๋ถ€ํ„ฐ) +- [ ] ์‹œ์›์‹œ์›ํ•œ ์ „๊ฐœ (๋œธ๋“ค์ด๊ธฐ ์—†์Œ) +- [ ] ๊ฐœ๋ฐœ์ž์  ํ™”๋ฒ• (๋…ผ๋ฆฌ์ , ๊ตฌ์กฐ์ ) +- [ ] ๋น„์ฆˆ๋‹ˆ์Šค ๊ด€์  (์‹ค์šฉ์„ฑ) +- [ ] ๊ณผ์žฅ ํ‘œํ˜„ ์ œ๊ฑฐ +- [ ] ์ธ์‹์ „ํ™˜ ๊ตฌ๊ฐ„ ์ถฉ๋ถ„ํ•œ ์„ค๋ช… +- [ ] ๊ฐ•์กฐ ๊ตฌ๊ฐ„ ๋ช…ํ™•ํ•œ ๊ทผ๊ฑฐ +- [ ] ์˜ˆ์‹œ ๊ตฌ๊ฐ„ ๊ตฌ์ฒด์  ์‚ฌ๋ก€ + +--- + +**Version**: v2.3 (YouTube Algorithm Survival Guide ์ถ”๊ฐ€) +**Last Updated**: 2025-01-18 + +--- + +## ๐Ÿ†• v2.3 ์ฃผ์š” ๊ฐœ์„  ์‚ฌํ•ญ (Algorithm Update) + +### 1. YouTube Algorithm Survival Guide ์„น์…˜ ์‹ ๊ทœ ์ถ”๊ฐ€ +- **CTR ๊ธฐ์ค€ ๋ช…ํ™•ํ™”**: 8% = ๋ฐ”์ด๋Ÿด, 3% = ์œ„ํ—˜ +- **์ฒซ 30์ดˆ ์ƒ์กด ์ „๋žต**: 4์š”์†Œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ (๋„๋ฐœโ†’๊ฐ€์น˜โ†’๋กœ๋“œ๋งตโ†’ํ›…) +- **5๊ฐœ ๋น„๋””์˜ค ๋ฒ•์น™**: ์ฑ„๋„ ์‹ ๋ขฐ๋„ ํ‰๊ฐ€ ๊ธฐ์ค€ +- **์‹คํŒจ ๋ถ„์„ ํ”„๋ ˆ์ž„์›Œํฌ**: YouTube Studio ํ™œ์šฉ๋ฒ• + +### 2. HOOK ์„น์…˜: ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ตœ์ ํ™” ๊ฐ•ํ™” +- ์ฒซ 30์ดˆ๋ฅผ "์ƒ์กด ๊ตฌ๊ฐ„"์œผ๋กœ ์žฌ์ •์˜ +- 0-5์ดˆ, 5-15์ดˆ, 15-25์ดˆ, 25-30์ดˆ ์„ธ๋ถ€ ๊ตฌ๊ฐ„ ์ฒดํฌ๋ฆฌ์ŠคํŠธ +- ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฑฐ๋ถ€ ์œ ๋ฐœ ์š”์†Œ ๋ช…ํ™•ํ™” (์ธ์‚ฌ, ๊ตฌ๋… ์š”์ฒญ) +- ๋„๋ฐœ์  ์งˆ๋ฌธ + ์ฆ‰๊ฐ์  ๊ฐ€์น˜ + ๊ฐ์ •์  ํ›… ํ†ตํ•ฉ ์˜ˆ์‹œ + +### 3. ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ๊ฐœ์„  ํ”„๋กœ์„ธ์Šค +- YouTube Studio ํ•„์ˆ˜ ๋ถ„์„ ํ•ญ๋ชฉ (์ดํƒˆ, ์ฐธ์—ฌ, ๊ฐ์ •) +- ์‹คํŒจ โ†’ ๊ฐœ์„  ์‚ฌ์ดํด ํ”„๋กœ์„ธ์Šค +- "์‹คํŒจ๋Š” ๋ฐ์ดํ„ฐ๋‹ค" ๋งˆ์ธ๋“œ์…‹ + +--- + +## ๐Ÿ”„ v2.2 ๊ฐœ์„  ์‚ฌํ•ญ (์œ ์ง€) + +### HOOK/PROBLEM ์ค‘๋ณต ์ œ๊ฑฐ +- HOOK์€ ๋ฌด์—‡์„ ๋ฐฐ์šธ์ง€, PROBLEM์€ ์™œ ์–ด๋ ค์šด์ง€(๊ฐ์ •) +- ์‹œ๋ฆฌ์ฆˆ ์ปจํ…์ŠคํŠธ ๋ช…ํ™•ํ™” + +### VALUE DELIVERY ๋…ผ๋ฆฌ์  ์ „๊ฐœ +- ๋„๊ตฌ ์ •์˜ โ†’ ์ด์œ  โ†’ ์‚ฌ์šฉ๋ฒ• ์ˆœ์„œ +- ๋น„์œ /๋น„๊ต๋กœ ๋น„๊ฐœ๋ฐœ์ž ์ดํ•ด๋„ ํ–ฅ์ƒ diff --git a/.specify/.DS_Store b/.specify/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..6ed4409142a724334fdedc4a53e06ae140de5349 GIT binary patch literal 6148 zcmeHKOHKnZ47E!agV=P*GFRvgLN%PA7l5`17BiZWC}NvKaR-jW0od^T0nMmcAR!@y zY$ z_cYQZ|Mhl1^y4Juid8?f?XDYkuxj3(-(ME{*QgWgoh{N_7)Boq1Ovgq7XxxWBs9V7SPb>(K&K@DP@d5$(503TpX8Vwiy>AZY_33a zWiK(<+%ccrE;|-Ob0_xVgMH`E;)Qj0#7}BYoDHK727-Y(17|i|$^CzgU#42*&s|~^ z3 literal 0 HcmV?d00001 diff --git a/.specify/templates/spec-template.md b/.specify/templates/spec-template.md new file mode 100644 index 0000000..c67d914 --- /dev/null +++ b/.specify/templates/spec-template.md @@ -0,0 +1,115 @@ +# Feature Specification: [FEATURE NAME] + +**Feature Branch**: `[###-feature-name]` +**Created**: [DATE] +**Status**: Draft +**Input**: User description: "$ARGUMENTS" + +## User Scenarios & Testing *(mandatory)* + + + +### User Story 1 - [Brief Title] (Priority: P1) + +[Describe this user journey in plain language] + +**Why this priority**: [Explain the value and why it has this priority level] + +**Independent Test**: [Describe how this can be tested independently - e.g., "Can be fully tested by [specific action] and delivers [specific value]"] + +**Acceptance Scenarios**: + +1. **Given** [initial state], **When** [action], **Then** [expected outcome] +2. **Given** [initial state], **When** [action], **Then** [expected outcome] + +--- + +### User Story 2 - [Brief Title] (Priority: P2) + +[Describe this user journey in plain language] + +**Why this priority**: [Explain the value and why it has this priority level] + +**Independent Test**: [Describe how this can be tested independently] + +**Acceptance Scenarios**: + +1. **Given** [initial state], **When** [action], **Then** [expected outcome] + +--- + +### User Story 3 - [Brief Title] (Priority: P3) + +[Describe this user journey in plain language] + +**Why this priority**: [Explain the value and why it has this priority level] + +**Independent Test**: [Describe how this can be tested independently] + +**Acceptance Scenarios**: + +1. **Given** [initial state], **When** [action], **Then** [expected outcome] + +--- + +[Add more user stories as needed, each with an assigned priority] + +### Edge Cases + + + +- What happens when [boundary condition]? +- How does system handle [error scenario]? + +## Requirements *(mandatory)* + + + +### Functional Requirements + +- **FR-001**: System MUST [specific capability, e.g., "allow users to create accounts"] +- **FR-002**: System MUST [specific capability, e.g., "validate email addresses"] +- **FR-003**: Users MUST be able to [key interaction, e.g., "reset their password"] +- **FR-004**: System MUST [data requirement, e.g., "persist user preferences"] +- **FR-005**: System MUST [behavior, e.g., "log all security events"] + +*Example of marking unclear requirements:* + +- **FR-006**: System MUST authenticate users via [NEEDS CLARIFICATION: auth method not specified - email/password, SSO, OAuth?] +- **FR-007**: System MUST retain user data for [NEEDS CLARIFICATION: retention period not specified] + +### Key Entities *(include if feature involves data)* + +- **[Entity 1]**: [What it represents, key attributes without implementation] +- **[Entity 2]**: [What it represents, relationships to other entities] + +## Success Criteria *(mandatory)* + + + +### Measurable Outcomes + +- **SC-001**: [Measurable metric, e.g., "Users can complete account creation in under 2 minutes"] +- **SC-002**: [Measurable metric, e.g., "System handles 1000 concurrent users without degradation"] +- **SC-003**: [User satisfaction metric, e.g., "90% of users successfully complete primary task on first attempt"] +- **SC-004**: [Business metric, e.g., "Reduce support tickets related to [X] by 50%"]