Skip to main content
Glama
PROMPTING-GUIDE.ko.mdโ€ข21.7 kB
# ํ”„๋กฌํ”„ํŒ… ๊ฐ€์ด๋“œ AI ์–ด์‹œ์Šคํ„ดํŠธ๋ฅผ ํ†ตํ•ด Spec Workflow MCP์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ธฐ ์œ„ํ•œ ์˜ˆ์ œ์™€ ๋ชจ๋ฒ” ์‚ฌ๋ก€๊ฐ€ ํฌํ•จ๋œ ์ข…ํ•ฉ ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค. ## ๋น ๋ฅธ ์ฐธ์กฐ ### ํ•„์ˆ˜ ๋ช…๋ น์–ด ``` "[๊ธฐ๋Šฅ]์— ๋Œ€ํ•œ spec ๋งŒ๋“ค์–ด์ค˜" "๋‚ด ๋ชจ๋“  spec ๋ชฉ๋ก ๋ณด์—ฌ์ค˜" "[spec-name]์˜ ์ƒํƒœ ๋ณด์—ฌ์ค˜" "[spec]์˜ ์ž‘์—… [๋ฒˆํ˜ธ] ๊ตฌํ˜„ํ•ด์ค˜" "steering ๋ฌธ์„œ ๋งŒ๋“ค์–ด์ค˜" ``` ## ์‚ฌ์–‘ ์ž‘์„ฑํ•˜๊ธฐ ### ๊ธฐ๋ณธ Spec ์ž‘์„ฑ #### ๊ฐ„๋‹จํ•œ ์š”์ฒญ ``` "์‚ฌ์šฉ์ž ์ธ์ฆ์— ๋Œ€ํ•œ spec ๋งŒ๋“ค์–ด์ค˜" ``` AI๊ฐ€ ๋‹ค์Œ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค: - ์š”๊ตฌ์‚ฌํ•ญ ๋ฌธ์„œ - ์„ค๊ณ„ ๋ฌธ์„œ (์Šน์ธ ํ›„) - ์ž‘์—… ๋ถ„ํ•ด (์„ค๊ณ„ ์Šน์ธ ํ›„) #### ์ƒ์„ธํ•œ ์š”์ฒญ ``` "payment-processing์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ spec ๋งŒ๋“ค์–ด์ค˜: - Stripe๋ฅผ ํ†ตํ•œ ์‹ ์šฉ์นด๋“œ ๊ฒฐ์ œ - PayPal ํ†ตํ•ฉ - ํ™˜๋ถˆ ์ฒ˜๋ฆฌ - ๊ฒฐ์ œ ์ด๋ฒคํŠธ๋ฅผ ์œ„ํ•œ Webhook ์ฒ˜๋ฆฌ - PCI ๊ทœ์ • ์ค€์ˆ˜ ๊ณ ๋ ค์‚ฌํ•ญ" ``` #### ๊ธฐ์กด ๋ฌธ์„œ๋กœ๋ถ€ํ„ฐ ``` "@product-requirements.md์˜ PRD๋กœ๋ถ€ํ„ฐ spec ๋งŒ๋“ค์–ด์ค˜" ``` ``` "@figma-export.md์˜ ์„ค๊ณ„ ๋ฌธ์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ spec ๋งŒ๋“ค์–ด์ค˜" ``` ### ๊ณ ๊ธ‰ Spec ์ž‘์„ฑ #### ๊ธฐ์ˆ ์  ์ œ์•ฝ์‚ฌํ•ญ ํฌํ•จ ``` "๋‹ค์Œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ spec ๋งŒ๋“ค์–ด์ค˜: - ์‹ค์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•ด WebSocket ์‚ฌ์šฉ - ๊ตฌํ˜• ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์œ„ํ•œ ํด๋ง ๋Œ€์ฒด ๋ฐฉ์•ˆ - ์ตœ๋Œ€ 10,000๊ฐœ์˜ ๋™์‹œ ์—ฐ๊ฒฐ ์ฒ˜๋ฆฌ - ๋ฉ”์‹œ์ง€ ์ˆœ์„œ ์œ ์ง€ - ์˜คํ”„๋ผ์ธ ํ ์ง€์› ํฌํ•จ" ``` #### ์ˆ˜๋ฝ ๊ธฐ์ค€ ํฌํ•จ ``` "๋‹ค์Œ ์ˆ˜๋ฝ ๊ธฐ์ค€์„ ๊ฐ€์ง„ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ spec ๋งŒ๋“ค์–ด์ค˜: - 200ms ์ด๋‚ด ๊ฒฐ๊ณผ ํ‘œ์‹œ - ํผ์ง€ ๋งค์นญ ์ง€์› - ๋‚ ์งœ, ์นดํ…Œ๊ณ ๋ฆฌ, ์ž‘์„ฑ์ž ํ•„ํ„ฐ ํฌํ•จ - ๊ด€๋ จ์„ฑ ์ ์ˆ˜ ํ‘œ์‹œ - ์˜คํƒ€ ๋ฐ ๋™์˜์–ด ์ฒ˜๋ฆฌ" ``` #### ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์‚ฌ์–‘ ``` "๋‹ค์Œ ์กฐ๊ฑด์˜ ์žฌ๊ณ  ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค spec ๋งŒ๋“ค์–ด์ค˜: - REST API ๋…ธ์ถœ - ์Šคํ† ๋ฆฌ์ง€๋กœ PostgreSQL ์‚ฌ์šฉ - Kafka๋กœ ์ด๋ฒคํŠธ ๋ฐœํ–‰ - CQRS ํŒจํ„ด ๊ตฌํ˜„ - ํ—ฌ์Šค ์ฒดํฌ ์—”๋“œํฌ์ธํŠธ ํฌํ•จ" ``` ## ์‚ฌ์–‘ ๊ด€๋ฆฌํ•˜๊ธฐ ### ๋ชฉ๋ก ๋ฐ ์ƒํƒœ #### ๊ฐœ์š” ๋ณด๊ธฐ ``` "๋‚ด ๋ชจ๋“  spec ๋ชฉ๋ก ๋ณด์—ฌ์ค˜" "๋ชจ๋“  spec๊ณผ ์ง„ํ–‰ ์ƒํ™ฉ ๋ณด์—ฌ์ค˜" "์–ด๋–ค spec์ด ์Šน์ธ ๋Œ€๊ธฐ ์ค‘์ด์•ผ?" "ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ spec์€ ๋ญ์•ผ?" ``` #### ํŠน์ • ์ƒํƒœ ``` "user-auth spec์˜ ์ƒํƒœ ๋ณด์—ฌ์ค˜" "payment-processing์˜ ์ง„ํ–‰ ์ƒํ™ฉ์€?" "notification spec์—์„œ ๋‚จ์€ ์ž‘์—… ๋ณด์—ฌ์ค˜" "user-profile์—์„œ ์™„๋ฃŒ๋œ ์ž‘์—…์€ ๋ญ์•ผ?" ``` #### ํ•„ํ„ฐ๋ง ``` "50% ์ด์ƒ ์™„๋ฃŒ๋œ spec ๋ณด์—ฌ์ค˜" "๋‚ด ์Šน์ธ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” spec ๋ชฉ๋ก ๋ณด์—ฌ์ค˜" "์•„์ง ์ž‘์—…์ด ์™„๋ฃŒ๋˜์ง€ ์•Š์€ spec์€?" "์ฐจ๋‹จ๋˜๊ฑฐ๋‚˜ ์ค‘๋‹จ๋œ spec ๋ณด์—ฌ์ค˜" ``` ### ๋ฌธ์„œ ๊ด€๋ฆฌ #### ๋ฌธ์„œ ๋ณด๊ธฐ ``` "user-auth์˜ ์š”๊ตฌ์‚ฌํ•ญ ๋ณด์—ฌ์ค˜" "payments์˜ ์„ค๊ณ„ ๋ฌธ์„œ ํ‘œ์‹œํ•ด์ค˜" "์•Œ๋ฆผ ์‹œ์Šคํ…œ์˜ ์ž‘์—…์€ ๋ญ์•ผ?" "search spec์˜ ๋ชจ๋“  ๋ฌธ์„œ ๋ณด์—ฌ์ค˜" ``` #### ๋ฌธ์„œ ์—…๋ฐ์ดํŠธ ``` "user-auth ์š”๊ตฌ์‚ฌํ•ญ์„ 2FA ํฌํ•จํ•˜๋„๋ก ์—…๋ฐ์ดํŠธํ•ด์ค˜" "payment ์„ค๊ณ„๋ฅผ Stripe Connect ์‚ฌ์šฉํ•˜๋„๋ก ์ˆ˜์ •ํ•ด์ค˜" "user-profile์— ๋ณด์•ˆ ํ…Œ์ŠคํŠธ ์ž‘์—… ์ถ”๊ฐ€ํ•ด์ค˜" "ํ”ผ๋“œ๋ฐฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์š”๊ตฌ์‚ฌํ•ญ ์—…๋ฐ์ดํŠธ: [ํ”ผ๋“œ๋ฐฑ]" ``` ## ๊ตฌํ˜„ ํ”„๋กฌํ”„ํŠธ ### ๊ฐœ๋ณ„ ์ž‘์—… #### ๊ธฐ๋ณธ ๊ตฌํ˜„ ``` "user-auth์˜ ์ž‘์—… 1.2 ๊ตฌํ˜„ํ•ด์ค˜" "payment spec์˜ ์ž‘์—… 2.1.3 ์™„๋ฃŒํ•ด์ค˜" "notifications์˜ ๋‹ค์Œ ๋Œ€๊ธฐ ์ค‘์ธ ์ž‘์—… ์ฒ˜๋ฆฌํ•ด์ค˜" ``` #### ์ปจํ…์ŠคํŠธ ํฌํ•จ ``` "TypeScript์™€ Express๋ฅผ ์‚ฌ์šฉํ•ด์„œ user-auth์˜ ์ž‘์—… 1.2 ๊ตฌํ˜„ํ•ด์ค˜" "Prisma๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ž‘์—… ์™„๋ฃŒํ•ด์ค˜" "REST ๊ทœ์น™์— ๋”ฐ๋ผ API ์—”๋“œํฌ์ธํŠธ ์ž‘์—… ๊ตฌํ˜„ํ•ด์ค˜" ``` ### ๋ฐฐ์น˜ ๊ตฌํ˜„ #### ์„น์…˜๋ณ„ ``` "user-auth์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—… ๊ตฌํ˜„ํ•ด์ค˜" "dashboard spec์˜ ๋ชจ๋“  ํ”„๋ก ํŠธ์—”๋“œ ์ž‘์—… ์™„๋ฃŒํ•ด์ค˜" "payments์˜ ๋ชจ๋“  API ์ž‘์—… ์ฒ˜๋ฆฌํ•ด์ค˜" ``` #### ์šฐ์„ ์ˆœ์œ„๋ณ„ ``` "๋ชจ๋“  ์ค‘์š” ์ž‘์—…์„ ๋จผ์ € ๊ตฌํ˜„ํ•ด์ค˜" "user-profile์˜ MVP ์ž‘์—… ์™„๋ฃŒํ•ด์ค˜" "๋ฐ๋ชจ์— ํ•„์š”ํ•œ ์ž‘์—…์— ์ง‘์ค‘ํ•ด์ค˜" ``` #### ์ˆœ์ฐจ์  ``` "user-auth์˜ ์ž‘์—… 1.1๋ถ€ํ„ฐ 1.5๊นŒ์ง€ ๊ตฌํ˜„ํ•ด์ค˜" "์„น์…˜ 2์˜ ๋ชจ๋“  ํ•˜์œ„ ์ž‘์—… ์™„๋ฃŒํ•ด์ค˜" "์„ค์ • ์ž‘์—…์„ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•ด์ค˜" ``` ### ๊ตฌํ˜„ ์ „๋žต #### ํ…Œ์ŠคํŠธ ์ฃผ๋„ ``` "์ž‘์—… 1.2๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ๋จผ์ € ์ž‘์„ฑํ•œ ํ›„ ๊ตฌํ˜„ํ•ด์ค˜" "์ž‘์—… 2.1์„ ์ „์ฒด ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€์™€ ํ•จ๊ป˜ ๊ตฌํ˜„ํ•ด์ค˜" "์„œ๋น„์Šค ์ž‘์—…์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ์œ ๋‹› ํ…Œ์ŠคํŠธ ์ž‘์„ฑํ•ด์ค˜" ``` #### ๋ฌธ์„œํ™” ํฌํ•จ ``` "์ž‘์—… 1.3์„ ๊ตฌํ˜„ํ•˜๊ณ  API ๋ฌธ์„œํ™”ํ•ด์ค˜" "์ธ๋ผ์ธ ์ฃผ์„๊ณผ ํ•จ๊ป˜ ์ธ์ฆ ์ž‘์—… ์™„๋ฃŒํ•ด์ค˜" "์ž‘์—… 2.2๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์‚ฌ์šฉ ์˜ˆ์ œ ๋งŒ๋“ค์–ด์ค˜" ``` ## Steering ๋ฌธ์„œ ### Steering ์ƒ์„ฑ #### ์ „์ฒด ์„ธํŠธ ``` "๋‚ด ์ „์ž์ƒ๊ฑฐ๋ž˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•œ steering ๋ฌธ์„œ ๋งŒ๋“ค์–ด์ค˜" "SaaS ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ steering ์„ค์ •ํ•ด์ค˜" "๋ชจ๋ฐ”์ผ ์•ฑ์„ ์œ„ํ•œ ํ”„๋กœ์ ํŠธ ๊ฐ€์ด๋“œ ๋งŒ๋“ค์–ด์ค˜" ``` #### ๊ฐœ๋ณ„ ๋ฌธ์„œ ``` "์‚ฌ์šฉ์ž ๊ฒฝํ—˜์— ์ง‘์ค‘ํ•˜๋Š” product steering ๋ฌธ์„œ ๋งŒ๋“ค์–ด์ค˜" "๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ์œ„ํ•œ technical steering ๋งŒ๋“ค์–ด์ค˜" "๋ชจ๋…ธ๋ ˆํฌ ์„ค์ •์„ ์œ„ํ•œ structure steering ๋งŒ๋“ค์–ด์ค˜" ``` #### ์ปจํ…์ŠคํŠธ๋กœ๋ถ€ํ„ฐ ``` "@project-brief.md๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ steering ๋ฌธ์„œ ๋งŒ๋“ค์–ด์ค˜" "@architecture.md์˜ ๊ธฐ์ˆ ์  ๊ฒฐ์ •์‚ฌํ•ญ์œผ๋กœ steering ์ƒ์„ฑํ•ด์ค˜" ``` ### Steering ์—…๋ฐ์ดํŠธ ``` "product steering์„ B2B ๊ธฐ๋Šฅ ํฌํ•จํ•˜๋„๋ก ์—…๋ฐ์ดํŠธํ•ด์ค˜" "technical steering์„ REST ๋Œ€์‹  GraphQL ์‚ฌ์šฉํ•˜๋„๋ก ์ˆ˜์ •ํ•ด์ค˜" "์ƒˆ๋กœ์šด ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์„ ์œ„ํ•œ structure steering ์—…๋ฐ์ดํŠธํ•ด์ค˜" ``` ## ์Šน์ธ ์›Œํฌํ”Œ๋กœ์šฐ ### ํ”ผ๋“œ๋ฐฑ ์š”์ฒญ #### ํŠน์ • ์šฐ๋ ค์‚ฌํ•ญ ํฌํ•จ ``` "user-auth ์š”๊ตฌ์‚ฌํ•ญ ์Šน์ธ ์š”์ฒญ - ํŠนํžˆ ๋ณด์•ˆ ์„น์…˜ ํ™•์ธํ•ด์ค˜" "payment ์„ค๊ณ„ ๊ฒ€ํ†  ์š”์ฒญ - ์—๋Ÿฌ ์ฒ˜๋ฆฌ์— ์ง‘์ค‘ํ•ด์ค˜" "์ž‘์—… ๋ถ„ํ•ด ํ”ผ๋“œ๋ฐฑ ์š”์ฒญ - ๋„ˆ๋ฌด ์„ธ๋ถ„ํ™”๋œ ๊ฑฐ ์•„๋‹ˆ์•ผ?" ``` #### ์ˆ˜์ • ์š”์ฒญ ``` "์š”๊ตฌ์‚ฌํ•ญ์— ๋” ์ž์„ธํ•œ ๋‚ด์šฉ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค: - ์—๋Ÿฌ ์ฒ˜๋ฆฌ ์‹œ๋‚˜๋ฆฌ์˜ค - ์„ฑ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ - ๋ณด์•ˆ ๊ณ ๋ ค์‚ฌํ•ญ ์ˆ˜์ • ํ›„ ๋‹ค์‹œ ์ œ์ถœํ•ด์ฃผ์„ธ์š”" ``` ### ์Šน์ธ ๊ฒฐ์ • #### ์Šน์ธํ•˜๊ธฐ ``` "user-auth ์š”๊ตฌ์‚ฌํ•ญ ์Šน์ธํ•ด์ค˜" "์„ค๊ณ„๊ฐ€ ๊ดœ์ฐฎ์•„ ๋ณด์—ฌ, ์Šน์ธํ•ด์ค˜" "์ž‘์—… ๋ถ„ํ•ด๋ฅผ ๊ทธ๋Œ€๋กœ ์ˆ˜๋ฝํ•ด์ค˜" ``` #### ๋ณ€๊ฒฝ ์š”์ฒญ ``` "์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ ์š”์ฒญ: - ๋ฉ€ํ‹ฐ ํ…Œ๋„ŒํŠธ ์ง€์› ์ถ”๊ฐ€ - ์†๋„ ์ œํ•œ ํฌํ•จ - ๋ฐ์ดํ„ฐ ๋ณด๊ด€ ์ •์ฑ… ๋ช…์‹œ" ``` #### ๊ฑฐ๋ถ€ํ•˜๊ธฐ ``` "ํ˜„์žฌ ์„ค๊ณ„ ๊ฑฐ๋ถ€ - ๋Œ€์‹  ์ด๋ฒคํŠธ ์ฃผ๋„ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ด" "์š”๊ตฌ์‚ฌํ•ญ ๋‹ค์‹œ ์‹œ์ž‘ - ๋ฒ”์œ„๊ฐ€ ๋„ˆ๋ฌด ๋„“์–ด" ``` ## ๋ฒ„๊ทธ ์›Œํฌํ”Œ๋กœ์šฐ ### ๋ฒ„๊ทธ ๋ณด๊ณ  #### ์ƒ์„ธ ๋ณด๊ณ ์„œ ``` "๋ฒ„๊ทธ ๋ณด๊ณ ์„œ ๋งŒ๋“ค์–ด์ค˜: ์ œ๋ชฉ: ํŠน์ˆ˜ ๋ฌธ์ž ์‚ฌ์šฉ ์‹œ ๋กœ๊ทธ์ธ ์‹คํŒจ ๋‹จ๊ณ„: 1) '+' ํฌํ•จ๋œ ์ด๋ฉ”์ผ ์ž…๋ ฅ 2) ํผ ์ œ์ถœ 3) ์—๋Ÿฌ ๋ฐœ์ƒ ์˜ˆ์ƒ: ๋กœ๊ทธ์ธ ์„ฑ๊ณต ์‹ค์ œ: 500 ์—๋Ÿฌ ์šฐ์„ ์ˆœ์œ„: ๋†’์Œ ํ™˜๊ฒฝ: ํ”„๋กœ๋•์…˜" ``` #### ์—๋Ÿฌ ๋กœ๊ทธ๋กœ๋ถ€ํ„ฐ ``` "์ด ์—๋Ÿฌ๋กœ ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ ๋งŒ๋“ค์–ด์ค˜: [์Šคํƒ ํŠธ๋ ˆ์ด์Šค ๋ถ™์—ฌ๋„ฃ๊ธฐ]" "Sentry ์•Œ๋ฆผ์—์„œ ์ด ๋ฒ„๊ทธ ๋ฌธ์„œํ™”ํ•ด์ค˜: [๋งํฌ]" ``` ### ๋ฒ„๊ทธ ํ•ด๊ฒฐ #### ์กฐ์‚ฌ ``` "๋ฒ„๊ทธ #45์˜ ๊ทผ๋ณธ ์›์ธ ์กฐ์‚ฌํ•ด์ค˜" "payment webhook์ด ์‹คํŒจํ•˜๋Š” ์ด์œ  ๋ถ„์„ํ•ด์ค˜" "search ์—”๋“œํฌ์ธํŠธ์˜ ์„ฑ๋Šฅ ๋ฌธ์ œ ๋””๋ฒ„๊ทธํ•ด์ค˜" ``` #### ์ˆ˜์ • ๊ตฌํ˜„ ``` "์‚ฌ์šฉ์ž ์ธ์ฆ์˜ ๋ฒ„๊ทธ #45 ์ˆ˜์ • ๋งŒ๋“ค์–ด์ค˜" "๊ฒฐ์ œ ํƒ€์ž„์•„์›ƒ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ๊ตฌํ˜„ํ•ด์ค˜" "์•Œ๋ฆผ ์„œ๋น„์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ์ˆ˜์ •ํ•ด์ค˜" ``` ## ๊ตฌํ˜„ ์ค‘ ๋ณ€๊ฒฝ์‚ฌํ•ญ ### ๊ฐœ๋ฐœ ์ค‘ Spec ๋ณ€๊ฒฝ ์‹œ ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ์„ค๊ณ„๋Š” ๊ตฌํ˜„ ์ค‘์— ์ž์ฃผ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ ์™„๋ฃŒ๋œ ์ž‘์—…์„ ๋ณด์กดํ•˜๋ฉด์„œ tasks.md๋ฅผ ํ˜„์žฌ spec์— ๋งž๊ฒŒ ์œ ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ### ์ž‘์—… ์ƒˆ๋กœ๊ณ ์นจ ๊ธฐ๋Šฅ ์‚ฌ์šฉ AI๋Š” refresh-tasks ํ”„๋กฌํ”„ํŠธ๋ฅผ ํ†ตํ•ด ํฌ๊ด„์ ์ธ ์ž‘์—… ์ƒˆ๋กœ๊ณ ์นจ ์ง€์นจ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. AI์—๊ฒŒ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๊ฐ„๋‹จํžˆ ์•Œ๋ ค์ฃผ์„ธ์š”: #### ๊ธฐ๋ณธ ์ž‘์—… ์ƒˆ๋กœ๊ณ ์นจ ``` "์š”๊ตฌ์‚ฌํ•ญ์ด ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ requirements.md์™€ design.md์— ๋งž๊ฒŒ tasks.md๋ฅผ ์ƒˆ๋กœ๊ณ ์นจํ•ด์ฃผ์„ธ์š”." ``` #### ์ปจํ…์ŠคํŠธ๋ฅผ ํฌํ•จํ•œ ์ƒ์„ธ ์ž‘์—… ์ƒˆ๋กœ๊ณ ์นจ ``` "๋‹ค์Œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์œผ๋กœ spec์„ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค: - ๋ณด๊ณ  ๋ชจ๋“ˆ ์ œ๊ฑฐ - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ MongoDB์—์„œ PostgreSQL๋กœ ๋ณ€๊ฒฝ - ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ๋‹ค์Œ ์ž‘์—… ์ƒˆ๋กœ๊ณ ์นจ ํ”„๋กœ์„ธ์Šค์— ๋”ฐ๋ผ tasks.md๋ฅผ ์ƒˆ๋กœ๊ณ ์นจํ•ด์ฃผ์„ธ์š”: 1. ๋ชจ๋“  ์™„๋ฃŒ ๋ฐ ์ง„ํ–‰ ์ค‘์ธ ์ž‘์—… ๋ณด์กด 2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณ€๊ฒฝ์„ ์œ„ํ•œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ž‘์—… ์ถ”๊ฐ€ 3. ๋ณด๊ณ  ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ๋Œ€๊ธฐ ์ค‘์ธ ์ž‘์—… ์ œ๊ฑฐ 4. ์†Œ์…œ ๋กœ๊ทธ์ธ์„ ์œ„ํ•œ ์ƒˆ ์ž‘์—… ์ถ”๊ฐ€" ``` #### ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ํ•„์š”ํ•œ ์•„ํ‚คํ…์ฒ˜ ๋ณ€๊ฒฝ ``` "REST API์—์„œ GraphQL๋กœ ์ „ํ™˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ REST ์—”๋“œํฌ์ธํŠธ๊ฐ€ ์ด๋ฏธ ๊ตฌํ˜„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด tasks.md๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์ฃผ์„ธ์š”: 1. ์™„๋ฃŒ๋œ ๋ชจ๋“  REST ์ž‘์—… ๋ณด์กด 2. REST ๋กœ์ง์„ GraphQL ๋ฆฌ์กธ๋ฒ„๋กœ ๋ž˜ํ•‘ํ•˜๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ž‘์—… 3. ์ƒˆ๋กœ์šด GraphQL ๊ตฌํ˜„ ์ž‘์—… 4. GraphQL ๊ฒ€์ฆ ํ›„ REST ์ œ๊ฑฐ๋ฅผ ์œ„ํ•œ ์ •๋ฆฌ ์ž‘์—…" ``` ### ์˜ˆ์ƒ AI ๋™์ž‘ ์ž‘์—… ์ƒˆ๋กœ๊ณ ์นจ์„ ์š”์ฒญํ•˜๋ฉด AI๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค: 1. **ํ˜„์žฌ ์ƒํƒœ ๋ถ„์„** - ํ˜„์žฌ spec์„ ์œ„ํ•ด requirements.md์™€ design.md ์ฝ๊ธฐ - ์™„๋ฃŒ, ์ง„ํ–‰ ์ค‘, ๋Œ€๊ธฐ ์ค‘์ธ ์ž‘์—… ์‹๋ณ„ - ์ถ”๊ฐ€, ์ œ๊ฑฐ ๋˜๋Š” ๋ณ€๊ฒฝ๋œ ๊ธฐ๋Šฅ ๊ฒฐ์ • 2. **์™„๋ฃŒ๋œ ์ž‘์—… ๋ณด์กด** - ๋ชจ๋“  [x] ์™„๋ฃŒ๋œ ์ž‘์—…์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์œ ์ง€ - ๋ชจ๋“  [-] ์ง„ํ–‰ ์ค‘์ธ ์ž‘์—…์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์œ ์ง€ - ์ œ๊ฑฐ๋œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์™„๋ฃŒ๋œ ์ž‘์—…์— ๋ฉ”๋ชจ ์ถ”๊ฐ€ 3. **์•„ํ‚คํ…์ฒ˜ ๋ณ€๊ฒฝ ์ฒ˜๋ฆฌ** - ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•„์š”ํ•œ ์™„๋ฃŒ๋œ ์ž‘์—… ๋’ค์— ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ž‘์—… ์ถ”๊ฐ€ - ์ ์ง„์  ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์œ„ํ•œ ์ „ํ™˜ ์ž‘์—… ์ƒ์„ฑ - ์ด์ „ ๊ตฌํ˜„ ์ œ๊ฑฐ ์ „ ๊ฒ€์ฆ ์ž‘์—… ํฌํ•จ 4. **๋Œ€๊ธฐ ์ค‘์ธ ์ž‘์—… ์—…๋ฐ์ดํŠธ** - ์‚ญ์ œ๋œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋Œ€๊ธฐ ์ค‘์ธ ์ž‘์—… ์ œ๊ฑฐ - ๋ณ€๊ฒฝ๋œ ์š”๊ตฌ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋Œ€๊ธฐ ์ค‘์ธ ์ž‘์—… ์—…๋ฐ์ดํŠธ - ์ƒˆ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ƒˆ ์ž‘์—… ์ถ”๊ฐ€ 5. **์ž‘์—… ๊ตฌ์กฐ ์œ ์ง€** - ์ˆœ์ฐจ์  ๋ฒˆํ˜ธ ๋งค๊ธฐ๊ธฐ ์œ ์ง€ - ์ž‘์—… ํ˜•์‹ ๋ณด์กด - ์š”๊ตฌ์‚ฌํ•ญ ์ฐธ์กฐ ํฌํ•จ - ์ข…์†์„ฑ ์ˆœ์„œ ์œ ์ง€ ### ์˜ˆ์ œ ์‹œ๋‚˜๋ฆฌ์˜ค #### ๊ธฐ๋Šฅ ์ œ๊ฑฐ ``` "spec์—์„œ ๋ณด๊ณ  ๋ชจ๋“ˆ์„ ์ œ๊ฑฐํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ์— ๋”ฐ๋ผ tasks.md๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์ฃผ์„ธ์š”." ``` ์˜ˆ์ƒ AI ๋™์ž‘: - ๋ชจ๋“  ์™„๋ฃŒ๋œ ๋ณด๊ณ  ์ž‘์—…์„ [x] ์ƒํƒœ์™€ ํ•จ๊ป˜ ์œ ์ง€ - ๋ชจ๋“  ์ง„ํ–‰ ์ค‘์ธ ๋ณด๊ณ  ์ž‘์—…์„ [-] ์ƒํƒœ์™€ ํ•จ๊ป˜ ์œ ์ง€ - ๋Œ€๊ธฐ ์ค‘์ธ [ ] ๋ณด๊ณ  ์ž‘์—…๋งŒ ์ œ๊ฑฐ - ๋ฉ”๋ชจ ์ถ”๊ฐ€: "_์ฐธ๊ณ : ๋ณด๊ณ  ๊ธฐ๋Šฅ์ด spec์—์„œ ์ œ๊ฑฐ๋˜์—ˆ์ง€๋งŒ ์™„๋ฃŒ๋œ ์ž‘์—…์€ ๋ณด์กด๋จ_" #### ์™„๋ฃŒ๋œ ์ž‘์—…์ด ์žˆ๋Š” ์•„ํ‚คํ…์ฒ˜ ๋ณ€๊ฒฝ ``` "MongoDB์—์„œ PostgreSQL๋กœ ์ „ํ™˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๊ธฐ ์ค‘์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์„ ์—…๋ฐ์ดํŠธํ•ด์ฃผ์„ธ์š”. ์ด๋ฏธ MongoDB ์Šคํ‚ค๋งˆ์™€ ์—ฐ๊ฒฐ ๋กœ์ง์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค." ``` ์˜ˆ์ƒ AI ๋™์ž‘: - ์™„๋ฃŒ๋œ ๋ชจ๋“  MongoDB ์ž‘์—…์„ ๊ทธ๋Œ€๋กœ ๋ณด์กด - ์ง„ํ–‰ ์ค‘์ธ ๋ชจ๋“  MongoDB ์ž‘์—…์„ ๊ทธ๋Œ€๋กœ ๋ณด์กด - ์™„๋ฃŒ๋œ MongoDB ์ž‘์—… ๋ฐ”๋กœ ๋’ค์— ์ƒˆ๋กœ์šด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ž‘์—… ์ถ”๊ฐ€: - MongoDB ์Šคํ‚ค๋งˆ๋ฅผ PostgreSQL ํ…Œ์ด๋ธ”๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ - MongoDB ์—ฐ๊ฒฐ ๋กœ์ง์„ PostgreSQL ํด๋ผ์ด์–ธํŠธ๋กœ ๊ต์ฒด - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ๋ฅผ MongoDB์—์„œ PostgreSQL ๊ตฌ๋ฌธ์œผ๋กœ ์—…๋ฐ์ดํŠธ - ๊ธฐ์กด MongoDB ๋ฐ์ดํ„ฐ๋ฅผ PostgreSQL๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ - PostgreSQL์„ ์œ„ํ•œ ํ™˜๊ฒฝ ๊ตฌ์„ฑ ์—…๋ฐ์ดํŠธ - ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ฒ€์ฆ ํ›„ MongoDB ์ข…์†์„ฑ ์ œ๊ฑฐ - ๋‚˜๋จธ์ง€ ๋Œ€๊ธฐ ์ค‘์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์„ PostgreSQL ์‚ฌ์šฉํ•˜๋„๋ก ์—…๋ฐ์ดํŠธ - ์ž‘์—… ๋ฒˆํ˜ธ ๋งค๊ธฐ๊ธฐ ์ˆœ์„œ ์œ ์ง€ #### ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ``` "์ธ์ฆ spec์— ์†Œ์…œ ๋กœ๊ทธ์ธ ์ถ”๊ฐ€ํ•ด์ค˜. ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ์„ค๊ณ„๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค." ``` ์˜ˆ์ƒ AI ๋™์ž‘: - ๋…ผ๋ฆฌ์  ์‚ฝ์ž… ์ง€์ ์„ ์œ„ํ•œ ํ˜„์žฌ ์ž‘์—… ๊ตฌ์กฐ ๋ถ„์„ - ์ ์ ˆํ•œ ๋ฒˆํ˜ธ๋กœ ์ƒˆ๋กœ์šด ์†Œ์…œ ๋กœ๊ทธ์ธ ์ž‘์—… ์ถ”๊ฐ€ - ์†Œ์…œ ๋กœ๊ทธ์ธ์— ๋Œ€ํ•œ ํŠน์ • ์š”๊ตฌ์‚ฌํ•ญ ์ฐธ์กฐ - ์ƒˆ ์ž‘์—…์ด ์ข…์†์„ฑ ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•˜๋„๋ก ๋ณด์žฅ - ๊ธฐ๋ณธ ์ธ์ฆ์ด ์ด๋ฏธ ๊ตฌํ˜„๋œ ๊ฒฝ์šฐ ํ†ตํ•ฉ ์ž‘์—… ์ถ”๊ฐ€ ### ์•„ํ‚คํ…์ฒ˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ฒ˜๋ฆฌ ์ด๋ฏธ ๊ตฌํ˜„๋œ ์ฝ”๋“œ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์•„ํ‚คํ…์ฒ˜ ๋ณ€๊ฒฝ ์‹œ: #### REST์—์„œ GraphQL ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ``` "REST์—์„œ GraphQL๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ REST ์—”๋“œํฌ์ธํŠธ๊ฐ€ ์ด๋ฏธ ๊ตฌํ˜„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค." ``` ์˜ˆ์ƒ ์ž‘์—… ์ถ”๊ฐ€: - ์™„๋ฃŒ๋œ REST ์—”๋“œํฌ์ธํŠธ ์ž‘์—… ๋ณด์กด - GraphQL ์Šคํ‚ค๋งˆ ์ •์˜ ์ž‘์—… ์ถ”๊ฐ€ - ๋ฆฌ์กธ๋ฒ„ ๊ตฌํ˜„ ์ž‘์—… ์ถ”๊ฐ€ - ๊ธฐ์กด REST ๋กœ์ง์„ GraphQL ๋ฆฌ์กธ๋ฒ„๋กœ ๋ž˜ํ•‘ํ•˜๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ž‘์—… ์ถ”๊ฐ€ - ํด๋ผ์ด์–ธํŠธ ์ฝ”๋“œ๋ฅผ GraphQL ์‚ฌ์šฉํ•˜๋„๋ก ์—…๋ฐ์ดํŠธํ•˜๋Š” ์ž‘์—… ์ถ”๊ฐ€ - GraphQL ๊ฒ€์ฆ ํ›„ REST ์—”๋“œํฌ์ธํŠธ ์ œ๊ฑฐ๋ฅผ ์œ„ํ•œ ์ •๋ฆฌ ์ž‘์—… ์ถ”๊ฐ€ #### ๋ชจ๋†€๋ฆฌ์Šค์—์„œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋กœ ๋ถ„ํ•  ``` "๋ชจ๋†€๋ฆฌ์‹ ์‚ฌ์šฉ์ž ์„œ๋น„์Šค๋ฅผ ๋ณ„๋„์˜ ์ธ์ฆ ๋ฐ ํ”„๋กœํ•„ ์„œ๋น„์Šค๋กœ ๋ถ„ํ• ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค." ``` ์˜ˆ์ƒ ์ž‘์—… ์ถ”๊ฐ€: - ์™„๋ฃŒ๋œ ๋ชจ๋†€๋ฆฌ์‹ ์„œ๋น„์Šค ์ž‘์—… ๋ณด์กด - ์„œ๋น„์Šค ๋ถ„๋ฆฌ ์ž‘์—… ์ถ”๊ฐ€ - ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹  ์ž‘์—… ์ถ”๊ฐ€ - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋ถ„ํ• ๋˜๋Š” ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ž‘์—… ์ถ”๊ฐ€ - ์ƒˆ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๋ฐฐํฌ ๊ตฌ์„ฑ ์ž‘์—… ์ถ”๊ฐ€ - ์„œ๋น„์Šค ๊ฒ€์ฆ ํ›„ ๋ชจ๋†€๋ฆฌ์‹ ์ฝ”๋“œ ์ œ๊ฑฐ๋ฅผ ์œ„ํ•œ ์ •๋ฆฌ ์ž‘์—… ์ถ”๊ฐ€ ### ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์œ„ํ•œ ์ž‘์—… ํ˜•์‹ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ž‘์—…์€ ๋ชฉ์ ์„ ๋ช…ํ™•ํžˆ ํ‘œ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค: ``` "์ž‘์—…์„ ์ƒˆ๋กœ๊ณ ์นจํ•œ ํ›„ ๋‹ค์Œ์ด ์ถ”๊ฐ€๋œ ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค: - [ ] 2.4 MongoDB ์Šคํ‚ค๋งˆ๋ฅผ PostgreSQL ํ…Œ์ด๋ธ”๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ - ํŒŒ์ผ: src/database/migrations/mongo-to-postgres.ts - ๋ฌธ์„œ ์Šคํ‚ค๋งˆ๋ฅผ ๊ด€๊ณ„ํ˜• ํ…Œ์ด๋ธ”๋กœ ๋ณ€ํ™˜ - ์ž„๋ฒ ๋””๋“œ ๋ฌธ์„œ๋ฅผ ์™ธ๋ž˜ ํ‚ค ๊ด€๊ณ„๋กœ ๋งคํ•‘ - ๋ชจ๋“  ๊ธฐ์กด ๋ฐ์ดํ„ฐ ๊ด€๊ณ„ ๋ณด์กด - ๋ชฉ์ : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ ˆ์ด์–ด๋ฅผ ์ƒˆ ์•„ํ‚คํ…์ฒ˜๋กœ ์ „ํ™˜ - _ํ™œ์šฉ: ์ž‘์—… 2.1-2.3์—์„œ ์™„๋ฃŒ๋œ MongoDB ์Šคํ‚ค๋งˆ_ - _์š”๊ตฌ์‚ฌํ•ญ: ์„ค๊ณ„ ์„น์…˜ 3.2_" ``` ### AI์—๊ฒŒ ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ „๋‹ฌ spec ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ AI์—๊ฒŒ ์•Œ๋ฆด ๋•Œ: #### ๋ณ€๊ฒฝ์‚ฌํ•ญ๊ณผ ์˜ํ–ฅ์— ๋Œ€ํ•ด ๊ตฌ์ฒด์ ์œผ๋กœ ์„ค๋ช… ``` "๊ฒฐ์ œ ์ฒ˜๋ฆฌ ์š”๊ตฌ์‚ฌํ•ญ์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. PayPal ๋Œ€์‹  Stripe๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ PayPal webhook ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ž‘์—…์„ ํฌํ•จํ•˜์—ฌ ์ด ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•˜๋„๋ก tasks.md๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์ฃผ์„ธ์š”." ``` #### ๋ณด์กด ๋ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์œ„ํ•œ ์ปจํ…์ŠคํŠธ ์ œ๊ณต ``` "MongoDB์—์„œ PostgreSQL๋กœ ์ด๋™ํ•˜๋”๋ผ๋„ ์ด๋ฏธ ์™„๋ฃŒ๋œ ์ž‘์—…์ด๋ฏ€๋กœ ์™„๋ฃŒ๋œ ๋ชจ๋“  MongoDB ์ž‘์—…์„ ์œ ์ง€ํ•ด์ฃผ์„ธ์š”. ๊ตฌํ˜„๋œ MongoDB ์ฝ”๋“œ๋ฅผ PostgreSQL๋กœ ์ „ํ™˜ํ•˜๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ž‘์—…์„ ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”." ``` #### ๊ฒ€์ฆ ์š”์ฒญ ``` "tasks.md ์—…๋ฐ์ดํŠธ ํ›„ requirements.md์˜ ๋ชจ๋“  ์š”๊ตฌ์‚ฌํ•ญ์— ํ•ด๋‹น ์ž‘์—…์ด ์žˆ๋Š”์ง€, ์•„ํ‚คํ…์ฒ˜ ๋ณ€๊ฒฝ์„ ์œ„ํ•œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ฒฝ๋กœ๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€, ์ œ๊ฑฐ๋œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋Œ€๊ธฐ ์ค‘์ธ ์ž‘์—…์ด ์—†๋Š”์ง€ ํ™•์ธํ•ด์ฃผ์„ธ์š”." ``` ### ์ ์ง„์  ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ „๋žต ์ฃผ์š” ์•„ํ‚คํ…์ฒ˜ ๋ณ€๊ฒฝ์˜ ๊ฒฝ์šฐ AI๋Š” ์ ์ง„์  ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ง€์›ํ•˜๋Š” ์ž‘์—…์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค: 1. ๊ธฐ์กด ๊ฒƒ๊ณผ ํ•จ๊ป˜ ์ƒˆ ์•„ํ‚คํ…์ฒ˜ ๊ตฌํ˜„ 2. ํ˜ธํ™˜์„ฑ ๋ ˆ์ด์–ด ์ž‘์—… ์ถ”๊ฐ€ 3. ๊ธฐ๋Šฅ์„ ์ ์ง„์ ์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ 4. ๊ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋‹จ๊ณ„ ๊ฒ€์ฆ 5. ์ „์ฒด ๊ฒ€์ฆ ํ›„์—๋งŒ ์ด์ „ ๊ตฌํ˜„ ์ œ๊ฑฐ ์ด๋ฅผ ํ†ตํ•ด ์ „ํ™˜ ๊ธฐ๊ฐ„ ๋™์•ˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ณ„์† ์ž‘๋™ํ•˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ### Refresh Tasks ํ”„๋กฌํ”„ํŠธ ์‚ฌ์šฉ refresh tasks ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ํ˜ธ์ถœํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค: ``` "user-auth spec์— ๋Œ€ํ•ด refresh-tasks ํ”„๋กฌํ”„ํŠธ๋ฅผ ์‚ฌ์šฉํ•ด์ค˜. ๋ณ€๊ฒฝ์‚ฌํ•ญ์€: ์ธ์ฆ์„ JWT์—์„œ OAuth2๋กœ ์ „ํ™˜." ``` ๊ทธ๋Ÿฌ๋ฉด AI๋Š” ํฌ๊ด„์ ์ธ ์ƒˆ๋กœ๊ณ ์นจ ์ง€์นจ์— ๋”ฐ๋ผ ์™„๋ฃŒ๋œ ๋ชจ๋“  ์ž‘์—…์„ ๋ณด์กดํ•˜๋ฉด์„œ ์ž‘์—…์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ## ๊ณ ๊ธ‰ ํŒจํ„ด ### ๋ฉ€ํ‹ฐ Spec ์›Œํฌํ”Œ๋กœ์šฐ #### ๊ด€๋ จ Spec ``` "๋‹ค์Œ๊ณผ ํ†ตํ•ฉ๋˜๋Š” admin-dashboard spec ๋งŒ๋“ค์–ด์ค˜: - user-management spec - analytics spec - reporting spec" ``` #### Spec ์ข…์†์„ฑ ``` "๋‹ค์Œ์— ์˜์กดํ•˜๋Š” notifications spec ๋งŒ๋“ค์–ด์ค˜: - user-auth ์™„๋ฃŒ - message-queue ๊ตฌํ˜„ - email-service ์‚ฌ์šฉ ๊ฐ€๋Šฅ" ``` ### ์ ์ง„์  ๊ฐœ๋ฐœ #### MVP ์šฐ์„  ``` "๋‹ค์Œ๋งŒ ํฌํ•จํ•˜๋Š” user-profiles MVP spec ๋งŒ๋“ค์–ด์ค˜: - ๊ธฐ๋ณธ ํ”„๋กœํ•„ ์ƒ์„ฑ - ํ‘œ์‹œ ์ด๋ฆ„๊ณผ ์•„๋ฐ”ํƒ€ - ๊ณต๊ฐœ ํ”„๋กœํ•„ ๋ณด๊ธฐ (์†Œ์…œ ๊ธฐ๋Šฅ์€ ๋‚˜์ค‘์— ์ถ”๊ฐ€ํ• ๊ฒŒ์š”)" ``` #### ๊ฐœ์„  Spec ``` "๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜๋Š” user-auth ๊ฐœ์„  spec ๋งŒ๋“ค์–ด์ค˜: - ์†Œ์…œ ๋กœ๊ทธ์ธ (Google, GitHub) - ์ƒ์ฒด ์ธ์ฆ - ํ–ฅ์ƒ๋œ ์„ธ์…˜ ๊ด€๋ฆฌ - ๊ณ„์ • ์—ฐ๊ฒฐ" ``` ### ๋ณต์žกํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค #### ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ Spec ``` "MongoDB์—์„œ PostgreSQL๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” spec ๋งŒ๋“ค์–ด์ค˜: - ํ˜„์žฌ ์Šคํ‚ค๋งˆ ๋ฌธ์„œํ™” - ์ƒˆ ๊ด€๊ณ„ํ˜• ๊ตฌ์กฐ ์„ค๊ณ„ - ๋ฌด์ค‘๋‹จ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ณ„ํš - ๋กค๋ฐฑ ์ ˆ์ฐจ ํฌํ•จ" ``` #### ๋ฆฌํŒฉํ† ๋ง Spec ``` "๋‹ค์Œ์„ ์œ„ํ•œ ๋ฆฌํŒฉํ† ๋ง spec ๋งŒ๋“ค์–ด์ค˜: - ๋ชจ๋†€๋ฆฌ์Šค๋ฅผ ์„œ๋น„์Šค๋กœ ๋ถ„ํ•  - ๊ณต์œ  ์ปดํฌ๋„ŒํŠธ ์ถ”์ถœ - ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ 80%๋กœ ๊ฐœ์„  - ํ•˜์œ„ ํ˜ธํ™˜์„ฑ ์œ ์ง€" ``` #### ์„ฑ๋Šฅ Spec ``` "์„ฑ๋Šฅ ์ตœ์ ํ™” spec ๋งŒ๋“ค์–ด์ค˜: - ํ˜„์žฌ ๋ณ‘๋ชฉ ์ง€์  ํ”„๋กœํŒŒ์ผ๋ง - ์บ์‹ฑ ์ „๋žต ์„ค๊ณ„ - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ๋ฑ์‹ฑ ๊ณ„ํš - ๋ชจ๋‹ˆํ„ฐ๋ง ๊ตฌํ˜„" ``` ## ์›Œํฌํ”Œ๋กœ์šฐ ์กฐํ•ฉ ### ์™„์ „ํ•œ ๊ธฐ๋Šฅ ํ๋ฆ„ ``` 1. "ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•œ steering ๋ฌธ์„œ ๋งŒ๋“ค์–ด์ค˜" 2. "์‚ฌ์šฉ์ž ์ธ์ฆ์„ ์œ„ํ•œ spec ๋งŒ๋“ค์–ด์ค˜" 3. "์š”๊ตฌ์‚ฌํ•ญ ๊ฒ€ํ†  ๋ฐ ์Šน์ธ" 4. "์„ค๊ณ„ ๊ฒ€ํ†  ๋ฐ ์Šน์ธ" 5. "์ž‘์—… 1.1 ๊ตฌํ˜„ - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ" 6. "์ž‘์—… 1.2 ๊ตฌํ˜„ - ์ธ์ฆ ์„œ๋น„์Šค" 7. "์ธ์ฆ ํ๋ฆ„์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ๋งŒ๋“ค์–ด์ค˜" 8. "๋ชจ๋“  ์ž‘์—…์„ ์™„๋ฃŒ๋กœ ํ‘œ์‹œ" ``` ### ๋ณ‘๋ ฌ ๊ฐœ๋ฐœ ``` "๋‚ด๊ฐ€ ์š”๊ตฌ์‚ฌํ•ญ์„ ๊ฒ€ํ† ํ•˜๋Š” ๋™์•ˆ API ์„ค๊ณ„ ์ดˆ์•ˆ์„ ์‹œ์ž‘ํ•ด์ค˜" "ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ spec์„ ๋ณ‘๋ ฌ๋กœ ๋งŒ๋“ค์–ด์ค˜" "๋ฐฑ์—”๋“œ ํŒ€์ด API ์ž‘์—…์„ ํ•˜๋Š” ๋™์•ˆ UI ์ž‘์—… ์ฒ˜๋ฆฌํ•ด์ค˜" ``` ### ๋ฐ˜๋ณต์  ๊ฐœ์„  ``` 1. "๊ฒ€์ƒ‰์„ ์œ„ํ•œ ์ดˆ๊ธฐ spec ๋งŒ๋“ค์–ด์ค˜" 2. "๊ธฐ๋ณธ ๊ฒ€์ƒ‰ ๊ตฌํ˜„ (์ž‘์—… 1-3)" 3. "๊ณ ๊ธ‰ ๊ฒ€์ƒ‰์„ ์œ„ํ•œ ๊ฐœ์„  spec ๋งŒ๋“ค์–ด์ค˜" 4. "ํ•„ํ„ฐ๋ง ๋ฐ ์ •๋ ฌ ๊ธฐ๋Šฅ ์ถ”๊ฐ€" 5. "๊ฒ€์ƒ‰ ์„ฑ๋Šฅ์„ ์œ„ํ•œ ์ตœ์ ํ™” spec ๋งŒ๋“ค์–ด์ค˜" ``` ## ์ปจํ…์ŠคํŠธ ์ธ์‹ ํ”„๋กฌํ”„ํŠธ ### ํ”„๋กœ์ ํŠธ ์ปจํ…์ŠคํŠธ ์‚ฌ์šฉ ``` "์šฐ๋ฆฌ์˜ ๊ธฐ์กด ํŒจํ„ด์„ ๋”ฐ๋ฅด๋Š” spec ๋งŒ๋“ค์–ด์ค˜" "์šฐ๋ฆฌ ์ฝ”๋“œ๋ฒ ์ด์Šค์™€ ์ผ๊ด€๋˜๊ฒŒ ์ด ์ž‘์—… ๊ตฌํ˜„ํ•ด์ค˜" "์šฐ๋ฆฌ์˜ ํ˜„์žฌ ์•„ํ‚คํ…์ฒ˜์™€ ํ†ตํ•ฉ๋˜๋„๋ก ์ด ๊ธฐ๋Šฅ ์„ค๊ณ„ํ•ด์ค˜" ``` ### ๋‹ค๋ฅธ Spec ์ฐธ์กฐ ``` "user-auth์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ ๊ด€๋ฆฌ์ž ์ธ์ฆ์„ ์œ„ํ•œ spec ๋งŒ๋“ค์–ด์ค˜" "payment spec๊ณผ ๋™์ผํ•œ ์„ค๊ณ„ ํŒจํ„ด ์‚ฌ์šฉํ•ด์ค˜" "์šฐ๋ฆฌ notification spec์˜ ์ž‘์—… ๊ตฌ์กฐ๋ฅผ ๋”ฐ๋ผ์ค˜" ``` ### ์ด์ „ ์ž‘์—…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ• ``` "user-auth spec์„ ํŒ€ ๊ด€๋ฆฌ ํฌํ•จํ•˜๋„๋ก ํ™•์žฅํ•ด์ค˜" "๊ธฐ์กด REST API spec์— GraphQL ์ง€์› ์ถ”๊ฐ€ํ•ด์ค˜" "search spec์„ ๋จธ์‹ ๋Ÿฌ๋‹ ๊ธฐ๋Šฅ์œผ๋กœ ๊ฐœ์„ ํ•ด์ค˜" ``` ## ํšจ๊ณผ์ ์ธ ํ”„๋กฌํ”„ํŒ…์„ ์œ„ํ•œ ํŒ ### ๊ตฌ์ฒด์ ์œผ๋กœ โŒ **๋ชจํ˜ธํ•จ**: "๋กœ๊ทธ์ธ spec ๋งŒ๋“ค์–ด์ค˜" โœ… **๊ตฌ์ฒด์ **: "2FA, ์ž๋™ ๋กœ๊ทธ์ธ ์œ ์ง€, ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์„ค์ •์ด ํฌํ•จ๋œ ์ด๋ฉ”์ผ/๋น„๋ฐ€๋ฒˆํ˜ธ ๋กœ๊ทธ์ธ spec ๋งŒ๋“ค์–ด์ค˜" ### ์ปจํ…์ŠคํŠธ ์ œ๊ณต โŒ **์ปจํ…์ŠคํŠธ ์—†์Œ**: "์ž‘์—… ๊ตฌํ˜„ํ•ด์ค˜" โœ… **์ปจํ…์ŠคํŠธ ํฌํ•จ**: "์šฐ๋ฆฌ์˜ ๊ธฐ์กด Express ๋ฏธ๋“ค์›จ์–ด์™€ PostgreSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ž‘์—… 1.2 ๊ตฌํ˜„ํ•ด์ค˜" ### ๋ช…ํ™•ํ•œ ๊ธฐ๋Œ€์น˜ ์„ค์ • โŒ **๋ถˆ๋ช…ํ™•**: "๋” ์ข‹๊ฒŒ ๋งŒ๋“ค์–ด์ค˜" โœ… **๋ช…ํ™•**: "200ms ๋ฏธ๋งŒ์˜ ์‘๋‹ต ์‹œ๊ฐ„์œผ๋กœ ํ˜„์žฌ ํŠธ๋ž˜ํ”ฝ์˜ 10๋ฐฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์„ค๊ณ„๋ฅผ ๊ฐœ์„ ํ•ด์ค˜" ### ์ ์ง„์  ์š”์ฒญ ์‚ฌ์šฉ โŒ **๋„ˆ๋ฌด ๋งŽ์Œ**: "5๊ฐœ์˜ spec ๋งŒ๋“ค๊ณ  ๋ชจ๋“  ๊ฒƒ ๊ตฌํ˜„ํ•ด์ค˜" โœ… **์ ์ง„์ **: "๋จผ์ € user-auth spec์„ ๋งŒ๋“ค๊ณ  ๋‹ค์Œ์œผ๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ์ „์— ๊ฒ€ํ† ํ• ๊ฒŒ์š”" ### ๊ธฐ์กด ์ž‘์—… ์ฐธ์กฐ โŒ **์ƒˆ๋กœ ์‹œ์ž‘**: "์ƒˆ ๊ฒฐ์ œ ์‹œ์Šคํ…œ ๋งŒ๋“ค์–ด์ค˜" โœ… **๊ธฐ๋ฐ˜ ๊ตฌ์ถ•**: "์šฐ๋ฆฌ์˜ payment spec์„ ๊ตฌ๋… ์ฒญ๊ตฌ ์ถ”๊ฐ€ํ•˜๋„๋ก ๊ฐœ์„ ํ•ด์ค˜" ## ์ผ๋ฐ˜ ํŒจํ„ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ### CRUD ์ž‘์—… ``` "๋‹ค์Œ์„ ํฌํ•จํ•˜๋Š” ์ œํ’ˆ์— ๋Œ€ํ•œ CRUD ์ž‘์—… spec ๋งŒ๋“ค์–ด์ค˜: - ๊ฒ€์ฆ๊ณผ ํ•จ๊ป˜ ์ƒ์„ฑ - ํŽ˜์ด์ง€๋„ค์ด์…˜ ๋ฐ ํ•„ํ„ฐ๋ง๊ณผ ํ•จ๊ป˜ ์ฝ๊ธฐ - ๋‚™๊ด€์  ์ž ๊ธˆ๊ณผ ํ•จ๊ป˜ ์—…๋ฐ์ดํŠธ - ๋ณต๊ตฌ ์˜ต์…˜์ด ์žˆ๋Š” ์†Œํ”„ํŠธ ์‚ญ์ œ" ``` ### ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ ``` "๋‹ค์Œ์„ ํฌํ•จํ•˜๋Š” ์ธ์ฆ spec ๋งŒ๋“ค์–ด์ค˜: - JWT ๊ธฐ๋ฐ˜ ์ธ์ฆ - ์—ญํ•  ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ์ œ์–ด - API ํ‚ค ๊ด€๋ฆฌ - ์„ธ์…˜ ์ฒ˜๋ฆฌ - ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ ๋กœํ…Œ์ด์…˜" ``` ### ์‹ค์‹œ๊ฐ„ ๊ธฐ๋Šฅ ``` "๋‹ค์Œ์„ ํฌํ•จํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… spec ๋งŒ๋“ค์–ด์ค˜: - WebSocket ์—ฐ๊ฒฐ - ๋ฉ”์‹œ์ง€ ์ง€์†์„ฑ - ํƒ€์ดํ•‘ ํ‘œ์‹œ๊ธฐ - ์ฝ์Œ ํ™•์ธ - ์˜คํ”„๋ผ์ธ ๋ฉ”์‹œ์ง€ ํ" ``` ### ํŒŒ์ผ ๊ด€๋ฆฌ ``` "๋‹ค์Œ์„ ํฌํ•จํ•˜๋Š” ํŒŒ์ผ ์—…๋กœ๋“œ spec ๋งŒ๋“ค์–ด์ค˜: - ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์„ ์œ„ํ•œ ์ฒญํฌ ์—…๋กœ๋“œ - ์ง„ํ–‰ ์ƒํ™ฉ ์ถ”์  - ์žฌ๊ฐœ ๊ธฐ๋Šฅ - ๋ฐ”์ด๋Ÿฌ์Šค ์Šค์บ” - CDN ํ†ตํ•ฉ" ``` ### ๋ถ„์„ ๋ฐ ๋ณด๊ณ  ``` "๋‹ค์Œ์„ ํฌํ•จํ•˜๋Š” ๋ถ„์„ spec ๋งŒ๋“ค์–ด์ค˜: - ์ด๋ฒคํŠธ ์ถ”์  - ์‚ฌ์šฉ์ž ์ •์˜ ์ฐจ์› - ์‹ค์‹œ๊ฐ„ ๋Œ€์‹œ๋ณด๋“œ - ์˜ˆ์•ฝ๋œ ๋ณด๊ณ ์„œ - ๋ฐ์ดํ„ฐ ๋‚ด๋ณด๋‚ด๊ธฐ ์˜ต์…˜" ``` ## ๋ฌธ์ œ ํ•ด๊ฒฐ ํ”„๋กฌํ”„ํŠธ ### ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ ``` "์ด spec์ด ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ์ด์œ ๋Š”?" "์ž‘์—…์ด ์™„๋ฃŒ๋˜์ง€ ์•Š๋Š” ์ด์œ  ๋””๋ฒ„๊ทธํ•ด์ค˜" "์Šน์ธ์„ ๋ง‰๊ณ  ์žˆ๋Š” ๊ฒƒ์€ ๋ญ์•ผ?" "์ด ์—๋Ÿฌ๋ฅผ ์ดํ•ดํ•˜๋„๋ก ๋„์™€์ค˜" ``` ### ๋ง‰ํž˜ ํ•ด์†Œ ``` "๋‹ค์Œ์— ๋ญ˜ ํ•ด์•ผ ํ•ด?" "์ง„ํ–‰์„ ๋ง‰๊ณ  ์žˆ๋Š” ๊ฒƒ ๋ณด์—ฌ์ค˜" "๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์€ ๋ญ์•ผ?" "์ด ์ข…์†์„ฑ์„ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•ด?" ``` ## ๊ด€๋ จ ๋ฌธ์„œ - [์‚ฌ์šฉ์ž ๊ฐ€์ด๋“œ](USER-GUIDE.md) - ์ผ๋ฐ˜ ์‚ฌ์šฉ ์ง€์นจ - [์›Œํฌํ”Œ๋กœ์šฐ ํ”„๋กœ์„ธ์Šค](WORKFLOW.md) - ์›Œํฌํ”Œ๋กœ์šฐ ์ดํ•ด - [๋„๊ตฌ ์ฐธ์กฐ](TOOLS-REFERENCE.md) - ์™„์ „ํ•œ ๋„๊ตฌ ๋ฌธ์„œ - [๋ฌธ์ œ ํ•ด๊ฒฐ](TROUBLESHOOTING.md) - ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ ํ•ด๊ฒฐ

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Pimzino/spec-workflow-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server