Skip to content

04 Agent Workflow

μ΄ν˜„λ―Ό edited this page Jun 15, 2026 · 5 revisions

04 · Agent 개발 workflow

이 λ¬Έμ„œλŠ” λ‚΄κ°€ Agent와 ν•¨κ»˜ ν•œ featureλ₯Ό 끝낼 λ•Œ λ”°λ₯΄λŠ” μ ˆμ°¨λ‹€. Week 3 κΈ°μ€€ μ΅œμ’…λ³Έμ΄λ©°, μžμ„Έν•œ νšŒκ³ ν˜• λ¦¬ν¬νŠΈλŠ” 08-Agent-Workflow-Report에 λ‘”λ‹€.

0. μ „μ œ

  • μ½”λ”© μ—μ΄μ „νŠΈλŠ” 둜컬 GJC (Gajae Code) + 보쑰둜 ChatGPT/Claude μ›Ή.
  • "Agent skill" = λ°˜λ³΅λ˜λŠ” μž‘μ—… 절차λ₯Ό MD둜 μ •λ¦¬ν•œ 것. β†’ repo의 .gjc/skills/murun-feature/SKILL.md μ°Έκ³ .
  • WikiλŠ” μ‚¬λžŒμ„ μœ„ν•œ μ§„μ‹€μ˜ μ›μ²œ, .gjc/λŠ” Agentμ—κ²Œ μ£ΌλŠ” μ»¨ν…μŠ€νŠΈ.

1. μž‘μ—… λ‹¨μœ„ μͺΌκ°œκΈ° κΈ°μ€€

1.1 1μˆœμœ„: Vertical slice (κΈ°λŠ₯ λ‹¨μœ„)

ν•œ PR = ν•œ μ‚¬μš©μž μŠ€ν† λ¦¬λ₯Ό λκΉŒμ§€.

"μš΄μ˜μ§„μ΄ μ„Έμ…˜μ„ 등둝할 수 μžˆλ‹€" = Prisma schema λ³€κ²½ + Server Action + 폼 νŽ˜μ΄μ§€ + 성곡 ν›„ λ¦¬λ‹€μ΄λ ‰νŠΈ + 1개 슀λͺ¨ν¬ ν…ŒμŠ€νŠΈ

이유:

  • 항상 κΈ°μ€€ λΈŒλžœμΉ˜κ°€ λ™μž‘ν•˜λŠ” μƒνƒœλ‘œ μœ μ§€λœλ‹€ β†’ PR λ‹¨μœ„λ‘œ CI와 배포 smokeλ₯Ό ν™•μΈν•œλ‹€.
  • 회고/리뷰가 "이 κΈ°λŠ₯ 켜고 끄기" λ‹¨μœ„λ‘œ λ–¨μ–΄μ§„λ‹€.

1.2 2μˆœμœ„: κ·Έ μ•ˆμ—μ„œ μ»΄ν¬λ„ŒνŠΈ λ‹¨μœ„λ‘œ μͺΌκ°¬ (선택적)

Vertical sliceκ°€ 2μ‹œκ°„μ„ λ„˜κΈ°λ©΄ μ•ˆμ—μ„œ λ‹€μŒ μˆœμ„œλ‘œ sub-taskλ₯Ό λ§Œλ“ λ‹€.

1. schema (Prisma)
2. server (Server Action / loader)
3. ui   (page + components)
4. test (슀λͺ¨ν¬ 1개)

각 sub-taskλŠ” 별도 PR이 μ•„λ‹ˆλΌ 같은 PR μ•ˆμ˜ μ»€λ°‹μœΌλ‘œ λ‘”λ‹€. PR 1개 = feature 1개.

1.3 μ ˆλŒ€ μ•ˆ ν•˜λŠ” μͺΌκ°œκΈ°

  • "UI만 λ¨Όμ €, λ°μ΄ν„°λŠ” λ‹€μŒ μ£Ό" β†’ dev에 죽은 화면이 μŒ“μΈλ‹€.
  • "μ—¬λŸ¬ featureλ₯Ό ν•œ PR에" β†’ 리뷰 λΉ„μš© 폭발.

2. Feature 1개λ₯Ό λλ‚΄λŠ” 7단계 흐름

각 λ‹¨κ³„λ§ˆλ‹€ λˆ„κ°€ ν•˜λŠ”μ§€(πŸ‘€=λ‚˜, πŸ€–=Agent)λ₯Ό ν‘œμ‹œν•œλ‹€.

0. issue μž‘μ„±             πŸ‘€    "μ™œΒ·λ¬΄μ—‡Β·μˆ˜μš© κΈ°μ€€"을 issue에 λ¨Όμ € μ“΄λ‹€
1. spec/acceptance 확인   πŸ‘€+πŸ€– 이번 PRμ—μ„œ ν•  일과 μ•ˆ ν•  일을 κ³ μ •
2. plan                   πŸ€–    spec β†’ 파일 λ³€κ²½ κ³„νš. πŸ‘€κ°€ κ²€ν† /μˆ˜μ •
3. branch + scaffold      πŸ€–    feature/<n>-<slug> λ˜λŠ” fix/<n>-<slug>
4. implement              πŸ€–    domain β†’ server β†’ ui β†’ test μˆœμ„œ
5. self-verify            πŸ‘€    체크포인트 06 + ν…ŒμŠ€νŠΈ λͺ…λ Ή 직접 확인
6. PR open                πŸ€–    issue μ—°κ²°, 검증 κ²°κ³Ό, fidelity checklist 포함
7. squash merge           πŸ‘€    main merge μ‹œ N100 prod μžλ™ 배포 확인

단계별 상세

1. spec MD μž‘μ„± β€” .gjc/specs/<feature>.md

λ‚΄κ°€ 5μ€„μ§œλ¦¬ μ΄ˆμ•ˆμ„ μ“°κ³  Agentμ—κ²Œ "수용 κΈ°μ€€"Β·"μ—£μ§€ μΌ€μ΄μŠ€"Β·"μ΄λ²ˆμ— μ•ˆ ν•˜λŠ” 것"을 μ±„μš°λΌκ³  μ‹œν‚¨λ‹€. λ‚΄κ°€ λ§ˆμ§€λ§‰μ— κ²€ν† .

ν…œν”Œλ¦Ώ:

# <feature>

## Story
μš΄μ˜μ§„μœΌλ‘œμ„œ ... ν•˜κΈ° μœ„ν•΄ ... ν•˜κ³  μ‹Άλ‹€.

## Acceptance
- [ ] ...
- [ ] ...

## Out of scope
- ...

## Touched files (μ˜ˆμƒ)
- prisma/schema.prisma
- app/(app)/sessions/new/page.tsx
- lib/...

## Open questions
- ...

2. plan

Agentμ—κ²Œ:

"이 spec을 보고, λ³€κ²½ν•  파일 λͺ©λ‘κ³Ό 각 파일 λ³€κ²½ μš”μ§€λ₯Ό ν‘œλ‘œ λ§Œλ“€μ–΄. μƒˆ 파일/μˆ˜μ • νŒŒμΌμ„ κ΅¬λΆ„ν•˜κ³ , schema 변경이 μžˆλ‹€λ©΄ migration λͺ…령도 같이 적어."

πŸ‘€ κ²€ν†  포인트:

  • schema 변경이 μžˆλŠ”λ° specμ—” μ—†μ—ˆλ‚˜? β†’ spec λ¨Όμ € μˆ˜μ •.
  • κΈ°μ‘΄ νŒ¨ν„΄ λ¬΄μ‹œν•˜κ³  μƒˆ 좔상화λ₯Ό λ§Œλ“€μ—ˆλ‚˜? β†’ "κΈ°μ‘΄ X νŒ¨ν„΄μ„ λ”°λ₯΄λΌ"κ³  λ‹€μ‹œ μ§€μ‹œ.

3. branch + scaffold

git switch main && git pull
git switch -c feature/<issue-num>-<slug>

N100은 prod 단일 μš΄μ˜μ΄λ―€λ‘œ 배포 λŒ€μƒ 변경은 main PR둜 ν•œλ‹€. devλŠ” 둜컬 톡합/μ‹€ν—˜ 브랜치둜만 μ‚¬μš©ν•˜κ³ , dev pushλŠ” GHCR staging image build μ•ˆμ „λ§κΉŒμ§€λ§Œ λ‘”λ‹€.

Agentκ°€ 빈 파일 + import μ •λ„λ§Œ λ¨Όμ € λ§Œλ“€κ³  commit. κ·Έλž˜μ•Ό κ·Έ λ‹€μŒ λ³€κ²½ diffκ°€ μž‘μ•„μ§„λ‹€.

4. implement

  • domain β†’ server β†’ ui β†’ test μˆœμ„œλ₯Ό μ–΄κΈ°μ§€ μ•ŠλŠ”λ‹€.
  • schema λ³€κ²½ ν›„μ—” 항상 pnpm prisma generate && pnpm prisma migrate dev --name <slug>.
  • Server Action은 항상 zod/input parser + guard ν˜ΈμΆœλΆ€ν„°.
  • UIλŠ” inline error, pending state, 빈 μƒνƒœλ₯Ό 포함해 μ§ λ‹€.
  • Vitest/RTL λ˜λŠ” Playwright 쀑 λ³€κ²½ 성격에 λ§žλŠ” ν…ŒμŠ€νŠΈλ₯Ό μΆ”κ°€ν•œλ‹€.

5. self-verify

β†’ 06-Checkpoints 의 체크리슀트λ₯Ό μ‚¬λžŒμ΄ λ³Έλ‹€. Agentκ°€ "ν†΅κ³Όν–ˆλ‹€"κ³  적은 쀄은 κ·ΈλŒ€λ‘œ λ―Ώμ§€ μ•ŠλŠ”λ‹€.

6. PR

PR 본문은 issue μžλ™ μ—°κ²°(Closes #N) + λ³€κ²½ μš”μ•½ + μŠ€ν¬λ¦°μƒ·(λͺ¨λ°”일/λ°μŠ€ν¬νƒ‘) + 체크리슀트.

7. merge

  • CIμ—μ„œ typecheck / lint / unitΒ·component test / build / E2E smoke 확인.
  • main merge ν›„ N100 prod μžλ™ 배포 κ²°κ³Ό 확인.
  • merge ν›„ issue μžλ™ λ‹«νž˜ 확인.

3. μ›Œν¬ν”Œλ‘œμš° λ‹€μ΄μ–΄κ·Έλž¨

  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚ Idea / Issue β”‚  πŸ‘€
  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         β–Ό
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚ .gjc/specs/*.md  β”‚  πŸ‘€+πŸ€–
  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         β–Ό
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚ plan (file list) β”‚  πŸ€– β†’ πŸ‘€ review
  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         β–Ό
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚ feat branch      β”‚
  β”‚ schema β†’ server  β”‚
  β”‚ β†’ ui β†’ test      β”‚  πŸ€–
  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         β–Ό
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚ Checkpoints      β”‚  πŸ‘€  ← μ—¬κΈ°κ°€ μ‚¬λžŒμ˜ μ±…μž„
  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         β–Ό
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚ PR β†’ main merge  β”‚  πŸ€– open / πŸ‘€ merge
  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         β–Ό
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚ N100 prod deploy β”‚  GitHub Actions
  β”‚ + smoke 확인     β”‚  πŸ‘€
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

4. Agentμ—κ²Œ μ ˆλŒ€ μœ„μž„ν•˜μ§€ μ•ŠλŠ” 것

  • DB migration 적용 (prisma migrate deploy)
  • main 브랜치둜의 merge
  • secret / env κ°’ λ³€κ²½
  • μ™ΈλΆ€ μ„œλΉ„μŠ€(Google Cloud Console, duckdns, N100 호슀트) μ½˜μ†” μ„€μ • λ³€κ²½ μ‹œλ„
  • μš”κ΅¬μ‚¬ν•­ 자체의 μˆ˜μ • (spec MDλŠ” λ‚΄κ°€ μ΅œμ’…λ³Έμ„ κ°€μ§„λ‹€)

5. λ°œμ „ λ°©ν–₯

  • Agent skill을 /auto-develop <issue> μˆ˜μ€€μœΌλ‘œ μžλ™ν™”ν•˜λ˜, merge와 prod 배포 νŒλ‹¨μ€ μ‚¬λžŒμ΄ μœ μ§€.
  • 인증된 μ‚¬μš©μžμ˜ 핡심 흐름을 Playwrightμ—μ„œ μž¬ν˜„ν•  test-only seed 섀계.
  • 배포 ν›„ /api/health와 μ£Όμš” νŽ˜μ΄μ§€λ₯Ό ν™•μΈν•˜λŠ” post-deploy smoke job μΆ”κ°€.

Clone this wiki locally