Skip to content

Latest commit

ย 

History

History
123 lines (94 loc) ยท 5.26 KB

File metadata and controls

123 lines (94 loc) ยท 5.26 KB

Agent ๊ฐœ๋ฐœ Workflow ๊ฐ€์ด๋“œ

Claude Code(Agent)์™€ ํ•จ๊ป˜ ๊ฐœ๋ฐœํ•˜๋Š” ๋‚˜๋งŒ์˜ ํ๋ฆ„์„ ์ฒด๊ณ„ํ™”ํ•œ ๋ฌธ์„œ. 3์ฃผ์ฐจ ์ดํ›„์—๋„ ์ง€์† ๊ฐ€๋Šฅํ•˜๋„๋ก ์ž‘์—… ๋‹จ์œ„ยทํ”„๋กฌํ”„ํŠธยท๊ฒ€์ฆ ๊ธฐ์ค€์„ ๋ช…๋ฌธํ™”ํ•œ๋‹ค. ํฐ ์ฒ ํ•™๊ณผ ์„ธ์…˜ ํŒจํ„ด์€ AI-WORKFLOW.md, ์‹คํ–‰ ๋„๊ตฌ๋Š” .claude/ ์ฐธ๊ณ .


1. ์ž‘์—… ๋‹จ์œ„ ์ชผ๊ฐœ๊ธฐ ๊ธฐ์ค€

1.1 ๊ธฐ๋Šฅ ๋‹จ์œ„ (Feature) โ€” "์‚ฌ์šฉ์ž๊ฐ€ ์ธ์ง€ํ•˜๋Š” ๊ฐ€์น˜"

ํ•˜๋‚˜์˜ ์‚ฌ์šฉ์ž ๊ฐ€์น˜๋ฅผ ๋๊นŒ์ง€ ๋™์ž‘์‹œํ‚ค๋Š” ์ˆ˜์ง ์Šฌ๋ผ์ด์Šค. GitHub Issue 1๊ฐœ = ๊ธฐ๋Šฅ ๋‹จ์œ„ 1๊ฐœ๊ฐ€ ๊ธฐ๋ณธ.

  • ์˜ˆ: "ํ…Œ๋งˆ ์ž…๋ ฅ โ†’ ๊ธฐ์—… ํ›„๋ณด 5~8๊ฐœ ๋ฐ˜ํ™˜"
  • ํฌํ•จ ๋ฒ”์œ„: ํƒ€์ž… โ†’ ๋ฐ์ดํ„ฐ ์–ด๋Œ‘ํ„ฐ โ†’ AI ๋กœ์ง โ†’ API route โ†’ ์ตœ์†Œ UI
  • ์™„๋ฃŒ ์ •์˜(DoD): mock data๋กœ end-to-end ๋™์ž‘ + ์ฒดํฌํฌ์ธํŠธ ํ†ต๊ณผ

1.2 ์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„ (Component) โ€” "๋…๋ฆฝ์ ์œผ๋กœ ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅํ•œ ์กฐ๊ฐ"

๊ธฐ๋Šฅ ๋‹จ์œ„ ์•ˆ์—์„œ ๋‹ค์‹œ ์ชผ๊ฐœ๋Š” ๊ธฐ์ค€. ํ•œ PR = ํ•œ ์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„๊ฐ€ ๊ธฐ๋ณธ.

  • ์˜ˆ: ScoreCard UI / us-stock ์–ด๋Œ‘ํ„ฐ / theme-search ํ”„๋กฌํ”„ํŠธ
  • ํฌํ•จ ๋ฒ”์œ„: ๋‹จ์ผ ์ฑ…์ž„, ๋…๋ฆฝ์ ์œผ๋กœ importยท๋ Œ๋”ยทํ˜ธ์ถœ ๊ฐ€๋Šฅ

1.3 ์ชผ๊ฐœ๊ธฐ ํŒ๋‹จ ํ”Œ๋กœ์šฐ

์ด ์ž‘์—…์ด ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์ด๋Š” ๊ฐ€์น˜ ํ•œ ๋ฉ์–ด๋ฆฌ์ธ๊ฐ€?
  โ”œโ”€ ์˜ˆ โ†’ ๊ธฐ๋Šฅ ๋‹จ์œ„ = Issue ๋กœ ๋“ฑ๋ก
  โ””โ”€ ๋„ˆ๋ฌด ํผ โ†’ ์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„๋กœ ๋ถ„ํ•ด = Issue ์•ˆ์˜ ์ฒดํฌ๋ฐ•์Šค / ๊ฐœ๋ณ„ PR

ํ•œ PR์ด 300์ค„์„ ๋„˜๊ฑฐ๋‚˜ ๋ฆฌ๋ทฐ ๊ด€์ ์ด 2๊ฐœ ์ด์ƒ ์„ž์ด๋ฉด โ†’ ๋” ์ชผ๊ฐ ๋‹ค.
ํƒ€์ž…/๊ณ„์•ฝ์€ ํ•ญ์ƒ ์ฒซ ๋ฒˆ์งธ ์กฐ๊ฐ์œผ๋กœ ๋ถ„๋ฆฌํ•œ๋‹ค (๋‹ค๋ฅธ ์กฐ๊ฐ์ด ์˜์กดํ•˜๋ฏ€๋กœ).

1.4 Agent์—๊ฒŒ ๋งก๊ธฐ๋Š” ๋‹จ์œ„

  • ํ•œ ์„ธ์…˜ = ํ•œ ๊ธฐ๋Šฅ ๋‹จ์œ„ ์ •๋„๊ฐ€ ์ปจํ…์ŠคํŠธ ๊ด€๋ฆฌ์— ์ ๋‹น
  • ์„œ๋กœ ์˜์กด ์—†๋Š” ์ปดํฌ๋„ŒํŠธ(์˜ˆ: us-adapter / kr-adapter / ๊ณตํ†ต ํƒ€์ž…)๋Š” ๋ณ‘๋ ฌ(sub-agent) ์š”์ฒญ
  • ์˜์กด์ด ์žˆ์œผ๋ฉด ์ˆœ์ฐจ๋กœ, ์•ž ๋‹จ๊ณ„ ์‚ฐ์ถœ๋ฌผ์„ ๋‹ค์Œ ํ”„๋กฌํ”„ํŠธ ๋งฅ๋ฝ์— ํฌํ•จ

2. AI ์š”์ฒญ ํ”„๋กฌํ”„ํŠธ ํŒจํ„ด

2.1 ๊ธฐ๋ณธ 4์š”์†Œ

๋ชจ๋“  ์š”์ฒญ์€ [๋งฅ๋ฝ] + [๋ชฉํ‘œ] + [์ œ์•ฝ] + [์ถœ๋ ฅ ํ˜•ํƒœ] ๋ฅผ ์ฑ„์šด๋‹ค.

์š”์†Œ ๋ฌด์—‡์„ ์˜ˆ์‹œ
๋งฅ๋ฝ ๊ด€๋ จ ํŒŒ์ผ/ํ˜„์žฌ ์ƒํƒœ/Issue "CLAUDE.md ์ฝ๊ณ , lib/types/stock.ts ๊ธฐ์ค€์œผ๋กœ"
๋ชฉํ‘œ ์ด ์„ธ์…˜์˜ ๊ฒฐ๊ณผ๋ฌผ "FMP ์–ด๋Œ‘ํ„ฐ + ์บ์‹ฑ๊นŒ์ง€"
์ œ์•ฝ ์ง€์ผœ์•ผ ํ•  ๊ทœ์น™/๋น„์šฉ "mock ์šฐ์„ , ์—๋Ÿฌ graceful, 250req/day ๊ณ ๋ ค"
์ถœ๋ ฅ ํ˜•ํƒœ ์ฝ”๋“œ/์ง„๋‹จ/์ œ์•ˆ ๋“ฑ "ํƒ€์ž…๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ, ์™„๋ฃŒ ์‹œ ๋ฆฌํฌํŠธ"

2.2 ์ƒํ™ฉ๋ณ„ ํ…œํ”Œ๋ฆฟ

๊ธฐ๋Šฅ ํ‚ฅ์˜คํ”„

CLAUDE.md ์ฝ๊ณ  ํ˜„์žฌ ์ƒํƒœ ํŒŒ์•…ํ•ด์ค˜.
์˜ค๋Š˜ ๋ชฉํ‘œ: [๊ธฐ๋Šฅ]. ์ œ์•ฝ: mock ์šฐ์„  / ์—๋Ÿฌ graceful.
ํƒ€์ž… ์ •์˜๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ๊ฐ€์ž. ๊ฐ ๋‹จ๊ณ„ ๋๋‚˜๋ฉด ์•Œ๋ ค์ค˜.

๋ณ‘๋ ฌ ์ž‘์—…

์„œ๋กœ ์˜์กด ์—†์œผ๋‹ˆ ๋ณ‘๋ ฌ๋กœ ์ง„ํ–‰ํ•ด์ค˜:
1) [์ปดํฌ๋„ŒํŠธ A]  2) [์ปดํฌ๋„ŒํŠธ B]  3) [๊ณตํ†ต ํƒ€์ž…]
๊ฐ๊ฐ ์™„๋ฃŒ๋˜๋ฉด ๋ฆฌํฌํŠธํ•ด์ค˜.

ํ”„๋กฌํ”„ํŠธ ๊ฐœ์„  (/prompt-iteration)

[๊ธฐ๋Šฅ] ๊ฒฐ๊ณผ๊ฐ€ ๋„ˆ๋ฌด genericํ•ด. ์‹ค์ œ ์ถœ๋ ฅ ๋ถ™์—ฌ์ค„๊ฒŒ: [์ถœ๋ ฅ]
๋ญ๊ฐ€ ๋ฌธ์ œ์ธ์ง€ ์ง„๋‹จํ•˜๊ณ  v_next ๋งŒ๋“ค์–ด์„œ docs/prompts.md์— ๊ธฐ๋กํ•ด์ค˜.

๋ฆฌํŒฉํ† ๋ง

[ํŒŒ์ผ] ์ฝ์–ด๋ด. [์ฆ์ƒ]์ธ ๊ฒƒ ๊ฐ™์•„.
์–ด๋–ป๊ฒŒ ๋ถ„๋ฆฌํ•˜๋ฉด ์ข‹์„์ง€ ๋จผ์ € ์ œ์•ˆ๋งŒ ํ•ด์ค˜. ์„ฑ๋Šฅ ์˜ํ–ฅ ์—†์–ด์•ผ ํ•ด.

์„ธ์…˜ ๋งˆ๋ฌด๋ฆฌ

1) ๋ณ€๊ฒฝ๋ถ„ Conventional Commits๋กœ ์ปค๋ฐ‹  2) CLAUDE.md ์ง„ํ–‰ ์ƒํ™ฉ ์—…๋ฐ์ดํŠธ
3) ๋‹ค์Œ ์„ธ์…˜ ์ด์–ด์„œ ํ•  ๊ฒƒ ๊ธฐ๋ก

2.3 ํ”„๋กฌํ”„ํŠธ ์›์น™

  • "์ด ํ•จ์ˆ˜ ๋งŒ๋“ค์–ด์ค˜"(์ €๋งฅ๋ฝ) ๋Œ€์‹  ํŒ๋‹จ์„ ์š”์ฒญํ•œ๋‹ค โ€” Agent๋ฅผ ํŽ˜์–ดํ”„๋กœ๊ทธ๋ž˜๋จธ๋กœ ์“ด๋‹ค
  • ํฐ ๊ฒฐ์ •(์•„ํ‚คํ…์ฒ˜/์Šคํ‚ค๋งˆ)์€ ๊ตฌํ˜„ ์ „์— ์ œ์•ˆโ†’๊ฒ€ํ† โ†’์Šน์ธ ๋‹จ๊ณ„๋ฅผ ๋‘”๋‹ค
  • ๊ฒฐ๊ณผ๊ฐ€ ์• ๋งคํ•˜๋ฉด ๋‹ค์‹œ ์‹œํ‚ค๊ธฐ ์ „์— ๋ฌด์—‡์ด ์™œ ๋ณ„๋กœ์ธ์ง€ ๊ตฌ์ฒด์ ์œผ๋กœ ํ”ผ๋“œ๋ฐฑํ•œ๋‹ค

3. ๋‚ด๊ฐ€ ์ง์ ‘ ๊ฒ€์ฆ/ํŒ๋‹จํ•ด์•ผ ํ•  ์ฒดํฌํฌ์ธํŠธ

Agent๊ฐ€ "์™„๋ฃŒ"๋ผ๊ณ  ํ•ด๋„, ์•„๋ž˜๋Š” ์‚ฌ๋žŒ์ด ์ง์ ‘ ํ™•์ธํ•œ๋‹ค. ํ†ต๊ณผ ์ „์—” ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ์•ˆ ๋„˜์–ด๊ฐ„๋‹ค.

3.1 ๋ชจ๋“  ์ž‘์—… ๊ณตํ†ต

  • ๋ณ€๊ฒฝ ๋ฒ”์œ„๊ฐ€ Issue/๋ชฉํ‘œ์™€ ์ผ์น˜ํ•˜๋Š”๊ฐ€ (scope creep ์—†๋Š”๊ฐ€)
  • ํƒ€์ž…/๊ณ„์•ฝ์ด ๋จผ์ € ์ •์˜๋˜๊ณ  ๋‚˜๋จธ์ง€๊ฐ€ ๊ทธ๊ฑธ ๋”ฐ๋ฅด๋Š”๊ฐ€
  • ์ปค๋ฐ‹์ด ์ž‘์—… ๋‹จ์œ„๋กœ ์ชผ๊ฐœ์กŒ๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ Conventional Commits์ธ๊ฐ€
  • mock์œผ๋กœ ๋™์ž‘ ํ™•์ธํ–ˆ๋Š”๊ฐ€ (๋ถˆํ•„์š”ํ•œ ์‹ค API ํ˜ธ์ถœ ์—†๋Š”๊ฐ€)

3.2 ์™ธ๋ถ€ API (FMP)

  • ์‘๋‹ต ์Šคํ‚ค๋งˆ๊ฐ€ ์‹ค์ œ์™€ ์ผ์น˜ํ•˜๋Š”๊ฐ€ (Agent ์ถ”์ •์ด ์•„๋‹ˆ๋ผ ์‹ค๋ฐ์ดํ„ฐ๋กœ ํ™•์ธ)
  • ์บ์‹ฑ TTL์ด ์ •์ฑ…(docs/data-sources.md)๊ณผ ๋งž๋Š”๊ฐ€
  • ์ฟผํ„ฐ/๋น„์šฉ ์˜ํ–ฅ (FMP 250 req/day) ๊ณ ๋ ค๋๋Š”๊ฐ€
  • ์—๋Ÿฌ/๋นˆ์‘๋‹ต์ด gracefulํ•˜๊ฒŒ ์ฒ˜๋ฆฌ๋˜๋Š”๊ฐ€

3.3 AI ๋ถ„์„ ๋กœ์ง (Score / Bull-Bear)

  • ์ ์ˆ˜ ๊ฐ€์ค‘์น˜๊ฐ€ PRD์™€ ์ผ์น˜ (TAM 25 / ํ•ด์ž 20 / ๊ฒฝ์˜์ง„ 15 / ์žฌ๋ฌด 25 / ๋‚ด๋Ÿฌํ‹ฐ๋ธŒ 15)
  • ์ถœ๋ ฅ์ด genericํ•˜์ง€ ์•Š๊ณ  ์ˆ˜์น˜ ๊ทผ๊ฑฐ๊ฐ€ ์žˆ๋Š”๊ฐ€
  • ํ”„๋กฌํ”„ํŠธ ๋ณ€๊ฒฝ์ด docs/prompts.md์— ๋ฒ„์ „ ๊ธฐ๋ก๋๋Š”๊ฐ€
  • ๋™์ผ ์ž…๋ ฅ ์žฌํ˜„์„ฑ / ๋น„์šฉ(์บ์‹ฑ 6h) ํ™•์ธ

3.4 ํˆฌ์ž ๋„๋ฉ”์ธ ๋ฆฌ์Šคํฌ (ํ•„์ˆ˜)

  • ๋ฉด์ฑ… ์กฐํ•ญ์ด ๋…ธ์ถœ๋˜๋Š”๊ฐ€ ("์ฐธ๊ณ ์šฉ, ํˆฌ์ž ๊ถŒ์œ  ์•„๋‹˜")
  • ๋‹จ์ •์  ๋งค์ˆ˜/๋งค๋„ ํ‘œํ˜„์ด ์•„๋‹ˆ๋ผ Risk/Reward ํŒ๋‹จ์œผ๋กœ ์ œ์‹œ๋˜๋Š”๊ฐ€

3.5 ๋จธ์ง€ ์ „

  • feature/* โ†’ dev PR๋กœ ์˜ฌ๋ ธ๋Š”๊ฐ€ (์ง์ ‘ main push ์•„๋‹˜)
  • CLAUDE.md ์ง„ํ–‰ ์ƒํ™ฉ์ด ๊ฐฑ์‹ ๋๋Š”๊ฐ€
  • ๊ด€๋ จ Issue๊ฐ€ PR์— ์—ฐ๊ฒฐ๋๋Š”๊ฐ€