TDD/ATDD ๊ธฐ๋ฐ์ผ๋ก ์ฝ๋๋ฅผ ๊ตฌํํฉ๋๋ค. tdd-spec.md๋ฅผ ์ฝ์ด Red-Green-Refactor ์ฌ์ดํด๋ก ๊ตฌํํฉ๋๋ค. Export ๋ถ๋ณ์ ๊ฒ์ฆ(STRUCT-XXX)๊ณผ Testability Gate๋ฅผ ํฌํจํฉ๋๋ค. "TDD๋ก ๊ตฌํํด์ค", "ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ", "ํ ์คํธ ๋จผ์ ์์ฑ", "Red-Green-Refactor", "Export ๋ถ๋ณ์ ํ ์คํธ", "๊ตฌ์กฐ์ ๋ถ๋ณ์ ๊ฒ์ฆ" ์์ฒญ ์ ์ฌ์ฉ๋ฉ๋๋ค.
From tdd-devnpx claudepluginhub 0pg/cc-marketplace --plugin tdd-devThis skill uses the workspace's default tool permissions.
references/code-impl.mdreferences/requirement-validation.mdreferences/rust.mdImplements Clean Architecture, Hexagonal Architecture (ports/adapters), and Domain-Driven Design for backend services. For microservice design, monolith refactoring to bounded contexts, and dependency debugging.
Implements CQRS patterns with Python templates for command/query separation, event-sourcing, and scalable read/write models. Use for optimizing queries or independent scaling.
Provides REST and GraphQL API design principles including resource hierarchies, HTTP methods, versioning strategies, pagination, and filtering patterns for new APIs, reviews, or standards.
TDD/ATDD ์์น์ ๋ฐ๋ผ ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ์ ์ํํฉ๋๋ค.
์ด ์คํฌ์ Outside-In TDD (London School) ์ ๊ทผ๋ฒ์ ๋ฐ๋ฆ ๋๋ค.
ํต์ฌ ์์น: ํ ์คํธ๊ฐ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํ๋ค
๊ตฌํ์ ์์ํ๊ธฐ ์ ์ ํ ์คํธ๋ฅผ ์์ฑํจ์ผ๋ก์จ:
์ด ์คํฌ์ ์ฌ์ฉํ๊ธฐ ์ ์:
.claude/tdd-spec.md ํ์ผ์ด ์กด์ฌํ๋์ง ํ์ธ/test-design ์คํฌ๋ก ์๊ตฌ์ฌํญ ๋ถ์ ๋ฐ spec ์์ฑ/test-design (์ ํ)
|
v
tdd-spec.md ์์ฑ
|
v
/tdd-impl (์ด ์คํฌ)
|
v
+--------------------+
| Phase 1 |
| ์๊ตฌ์ฌํญ ๊ฒ์ฆ |
| (tdd-spec.md ์ฝ๊ธฐ) |
+---------+----------+
|
v
+--------------------+
| Phase 2 |
| ์ฝ๋ ๊ตฌํ |
| (Red-Green-Refactor)|
+---------+----------+
|
v
+--------------------+
| Phase 3 |
| ์ต์ข
๊ฒ์ฆ |
+--------------------+
์์ธ ๋ด์ฉ์ requirement-validation.md ์ฐธ์กฐ
.claude/tdd-spec.md ํ์ผ ์ฝ๊ธฐtdd-spec.md๊ฐ ์๋ ๊ฒฝ์ฐ:
/test-design ์คํฌ ์คํ์ ๊ถ์ฅtdd-spec.md๊ฐ ์๋ ๊ฒฝ์ฐ:
tdd-spec.md์ STRUCT-XXX (๊ตฌ์กฐ์ ๋ถ๋ณ์)์ด ํฌํจ๋ ๊ฒฝ์ฐ, ํ์ ํ ์คํธ(REQ-XXX) ์ด์ ์ ๊ตฌ์กฐ์ ๋ถ๋ณ์ ํ ์คํธ๋ฅผ ๋จผ์ ์์ฑํฉ๋๋ค.
STRUCT-XXX (๊ตฌ์กฐ์ ๋ถ๋ณ์) โโโ ๋จผ์ RED-GREEN
"ํจ์๊ฐ ์กด์ฌํ๊ณ ์๊ทธ๋์ฒ๊ฐ ๋ง๋๊ฐ?"
โ
โผ
REQ-XXX (ํ์์ ์๊ตฌ์ฌํญ) โโโ ์ดํ RED-GREEN
"ํจ์๊ฐ ์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋๊ฐ?"
์ด์ : ๊ตฌ์กฐ์ ํ ์คํธ๋ ๋ผ๋(ํจ์ ์๊ทธ๋์ฒ, ํ์ ์ ์)๋ฅผ ์ธ์ฐ๊ณ , ํ์ ํ ์คํธ๋ ์ด(๋ก์ง, ๋ถ๊ธฐ, ์๋ฌ ์ฒ๋ฆฌ)์ ๋ถ์ ๋๋ค.
| ํน์ฑ | STRUCT ํ ์คํธ | REQ ํ ์คํธ |
|---|---|---|
| ์คํจ ์๋ฏธ | ๊ณต๊ฐ ์ธํฐํ์ด์ค ๊นจ์ง | ๋์์ด ๊ธฐ๋์ ๋ค๋ฆ |
| ์๋ํ | Exports์์ ๊ธฐ๊ณ์ ์ถ์ถ ๊ฐ๋ฅ | ์๋ ์ค๊ณ ํ์ |
STRUCT-XXX๊ฐ ์์ผ๋ฉด ์ด ๊ฒ์ดํธ๋ฅผ ๊ฑด๋๋ฐ๊ณ Testability Gate๋ก ์งํ.
๊ฐ ์๊ตฌ์ฌํญ์ RED ๋จ๊ณ ์ง์ ์ , ํ ์คํธ ์์ฑ ๋์ด๋๋ฅผ ํ๊ฐํฉ๋๋ค.
ํ ์คํธ๊ฐ ์ด๋ ค์ด ๊ฒฝ์ฐ = ์ค๊ณ ํผ๋๋ฐฑ ์ ํธ
ํ ์คํธ ์์ฑ์ด ์ด๋ ต๋ค๋ฉด ๊ฑด๋๋ฐ์ง ๋ง๊ณ , ์์ธ์ ์ง๋จํ๊ณ ํ๋ก๋์ ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋งํฉ๋๋ค.
| ์ฆ์ | ์์ธ | ์ฒ๋ฐฉ |
|---|---|---|
| Mock ๋ถ๊ฐ๋ฅํ ์ ์ /์ ์ญ ํธ์ถ | ํ๋์ฝ๋ฉ๋ ์์กด์ฑ | ์ธํฐํ์ด์ค ์ถ์ถ + ์์กด์ฑ ์ฃผ์ |
| ํ ์คํธ์ ๊ณผ๋ํ setup ํ์ | ์จ๊ฒจ์ง ์์กด์ฑ ๋ค์ | ์ฑ ์ ๋ถ๋ฆฌ, ์์ฑ์ ์ฃผ์ ์ผ๋ก ์์กด์ฑ ๋ช ์ํ |
| ์๊ฐ/๋์ ๋ฑ ๋น๊ฒฐ์ ์ ๋์ | ์ ์ญ ์ํ ์ง์ ์ฐธ์กฐ | ์ถ์ํ ๊ณ์ธต ๋์ (Clock, RNG trait) |
| ํ๋์ ๋์ ๊ฒ์ฆ์ ์ฌ๋ฌ Mock ํ์ | ๊ณผ๋ํ ๊ฒฐํฉ | ํ์ฌ๋ ์ถ์ถ ๋๋ ์ฑ ์ ์ฌ๋ถ๋ฐฐ |
ํ๋กํ ์ฝ:
์์ธ ๋ด์ฉ์ code-impl.md ์ฐธ์กฐ
์ธ์ด๋ณ ๊ฐ์ด๋: Rust ํ๋ก์ ํธ๋ rust.md ์ฐธ์กฐ
๊ฐ ์๊ตฌ์ฌํญ(REQ-XXX)์ ๋ํด:
+----------+ +----------+ +------------+
| RED | --> | GREEN | --> | REFACTOR |
| (์คํจ) | | (ํต๊ณผ) | | (๊ฐ์ ) |
+----------+ +----------+ +-----+------+
^ |
+----------------------------------+
๋ค์ ํ
์คํธ ์ผ์ด์ค
ํ ์คํธ ์ค๊ณ๋ Top-Down์ด์ง๋ง, ๊ตฌํ์ Bottom-Up์ผ๋ก:
Acceptance Test (์ค๊ณ ๋จผ์ )
^
|
Integration Test
^
|
Unit Test (๊ตฌํ ๋จผ์ )
User Story / Requirement
|
v
+---------------------------------------------+
| Acceptance Test (์์ ๋ ๋ฒจ) |
| - ์ ์ฒด ๊ธฐ๋ฅ์ ๋์์ ์ ์ |
| - Mock์ผ๋ก ํ์ ์ปดํฌ๋ํธ ์ธํฐํ์ด์ค ๋ฐ๊ฒฌ |
+-----------------------+---------------------+
|
v
+---------------------------------------------+
| Integration Test (์ค๊ฐ ๋ ๋ฒจ) |
| - ์ปดํฌ๋ํธ ๊ฐ ํต์ ์ธํฐํ์ด์ค ์ ์ |
| - Mock์ด ์ค์ ๊ตฌํ์ผ๋ก ๊ต์ฒด๋ ๊ณ์ฝ ๋ช
์ |
+-----------------------+---------------------+
|
v
+---------------------------------------------+
| Unit Test (ํ์ ๋ ๋ฒจ) |
| - ๊ฐ๋ณ ๊ฐ์ฒด/ํจ์์ ์ธํฐํ์ด์ค ์ ์ |
| - ์์กด์ฑ ์ฃผ์
์ง์ ๋ช
ํํ |
+-----------------------+---------------------+
|
v
Implementation