|
1 | 1 | # TDD / Tidy First Plan |
2 | 2 |
|
3 | | -์ด ์ ์ฅ์์์๋ ์์ผ๋ก ๋ชจ๋ ์์
์ ์๋ ๊ท์น์ผ๋ก ์งํํ๋ค. |
| 3 | +์ด ์ ์ฅ์์์๋ ์์ผ๋ก ๋ชจ๋ ์์
์ Kent Beck์ TDD / Tidy First ์์น์ผ๋ก ์งํํ๋ค. |
| 4 | +`go` ๋ผ๊ณ ํ๋ฉด ์ด ๋ฌธ์๋ฅผ ํ์ฌ ์์
์ ๋จ์ผ ์คํ ๊ธฐ์ค์ผ๋ก ์ฌ์ฉํ๋ค. |
4 | 5 |
|
5 | 6 | ## Always Follow |
6 | | -- ํญ์ Red โ Green โ Refactor ์์๋ฅผ ์งํจ๋ค. |
7 | | -- ํ ๋ฒ์ ํ
์คํธ ํ๋๋ง ์ถ๊ฐํ๋ค. |
8 | | -- ํ
์คํธ๊ฐ ์คํจํ๋ ๊ฒ์ ํ์ธํ ๋ค์๋ง ํ๋ก๋์
์ฝ๋๋ฅผ ์์ ํ๋ค. |
9 | | -- ํ
์คํธ๋ฅผ ํต๊ณผ์ํค๋ ์ต์ํ์ ์ฝ๋๋ง ์์ฑํ๋ค. |
10 | | -- ๊ตฌ์กฐ ๋ณ๊ฒฝ(Structural change)๊ณผ ๋์ ๋ณ๊ฒฝ(Behavioral change)์ ๊ฐ์ ์ปค๋ฐ์ ์์ง ์๋๋ค. |
11 | | -- ๊ตฌ์กฐ ๋ณ๊ฒฝ์ด ํ์ํ๋ฉด ๋จผ์ ๊ตฌ์กฐ๋ง ๋ฐ๊พธ๊ณ ํ
์คํธ๋ก ์์ ์ฑ์ ํ์ธํ๋ค. |
12 | | -- `go` ๋ผ๊ณ ํ๋ฉด ์๋ `Test Queue`์์ ์ฒดํฌ๋์ง ์์ ์ฒซ ๋ฒ์งธ ํ
์คํธ๋ฅผ ์ํํ๋ค. |
13 | | -- ๊ฐ `go` ์ฌ์ดํด์ ๊ธฐ๋ณธ ์์๋ ๋ค์๊ณผ ๊ฐ๋ค. |
14 | | - 1. ๋ค์ ๋ฏธ์๋ฃ ํ
์คํธ ์ ํ |
15 | | - 2. ํ
์คํธ ์์ฑ ๋ฐ ์คํจ ํ์ธ (Red) |
16 | | - 3. ์ต์ ๊ตฌํ์ผ๋ก ํ
์คํธ ํต๊ณผ (Green) |
17 | | - 4. ํ์ ์ ๊ตฌ์กฐ ๊ฐ์ (Refactor / Tidy First) |
18 | | - 5. ๊ด๋ จ ํ
์คํธ ์ฌ์คํ |
19 | | - 6. ์ฒดํฌ๋ฆฌ์คํธ ๊ฐฑ์ |
| 7 | +- ํญ์ **Red โ Green โ Refactor** ์์๋ฅผ ์งํจ๋ค. |
| 8 | +- ํ ๋ฒ์ ํ
์คํธ **ํ๋๋ง** ์ถ๊ฐํ๋ค. |
| 9 | +- ํ
์คํธ๊ฐ **์คํจํ๋ ๊ฒ์ ๋จผ์ ํ์ธ**ํ ๋ค์๋ง ํ๋ก๋์
์ฝ๋๋ฅผ ์์ ํ๋ค. |
| 10 | +- ํ
์คํธ๋ฅผ ํต๊ณผ์ํค๋ **์ต์ํ์ ์ฝ๋๋ง** ์์ฑํ๋ค. |
| 11 | +- **๊ตฌ์กฐ ๋ณ๊ฒฝ(Structural change)** ๊ณผ **๋์ ๋ณ๊ฒฝ(Behavioral change)** ์ ๊ฐ์ ์ปค๋ฐ์ ์์ง ์๋๋ค. |
| 12 | +- ๊ตฌ์กฐ ๋ณ๊ฒฝ์ด ํ์ํ๋ฉด **๋จผ์ ๊ตฌ์กฐ๋ง** ๋ฐ๊พธ๊ณ ํ
์คํธ๋ก ์์ ์ฑ์ ํ์ธํ๋ค. |
| 13 | +- ๋ฆฌํฉํฐ๋ง์ **ํ
์คํธ๊ฐ ๋ชจ๋ ์ด๋ก๋ถ์ผ ๋๋ง** ์ํํ๋ค. |
| 14 | +- ๊ฐ ๋จ๊ณ๊ฐ ๋๋ ๋๋ง๋ค **๊ด๋ จ ํ
์คํธ๋ฅผ ๋ค์ ์คํ**ํ๋ค. |
| 15 | + |
| 16 | +## Tidy First Rules |
| 17 | + |
| 18 | +### Structural Change |
| 19 | +๋ค์์ ๊ตฌ์กฐ ๋ณ๊ฒฝ์ผ๋ก ์ทจ๊ธํ๋ค. |
| 20 | +- ์ด๋ฆ ๋ณ๊ฒฝ |
| 21 | +- ํ์ผ ์ด๋ |
| 22 | +- ํ์
/๋ฉ์๋ ์ถ์ถ |
| 23 | +- ์ค๋ณต ์ ๊ฑฐ๋ฅผ ์ํ ์ฌ๋ฐฐ์น |
| 24 | +- ์์กด์ฑ ๋ฐฉํฅ์ ์ ์งํ ์ฑ ํํ๋ง ์ ๋ฆฌํ๋ ๋ณ๊ฒฝ |
| 25 | + |
| 26 | +๊ตฌ์กฐ ๋ณ๊ฒฝ ๋จ๊ณ์์๋: |
| 27 | +- ๋์์ ๋ฐ๊พธ์ง ์๋๋ค. |
| 28 | +- ๊ฐ๋ฅํ ํ ์์ ๋จ์๋ก ๋๋๋ค. |
| 29 | +- ๋ณ๊ฒฝ ์ /ํ ํ
์คํธ ๊ฒฐ๊ณผ๊ฐ ๊ฐ์์ผ ํ๋ค. |
| 30 | +- ์ปค๋ฐ ๋ฉ์์ง์ PR ์ค๋ช
์ ๊ตฌ์กฐ ๋ณ๊ฒฝ์์ ๋๋ฌ๋ธ๋ค. |
| 31 | + |
| 32 | +### Behavioral Change |
| 33 | +๋ค์์ ๋์ ๋ณ๊ฒฝ์ผ๋ก ์ทจ๊ธํ๋ค. |
| 34 | +- ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ |
| 35 | +- ๋ถ๊ธฐ/์ํ/ํ๋ฉด ํ๋ฆ ๋ณ๊ฒฝ |
| 36 | +- ์ฌ์ฉ์์๊ฒ ๋ณด์ด๋ ๊ฒฐ๊ณผ ๋ณ๊ฒฝ |
| 37 | +- ๋ฒ๊ทธ ์์ |
| 38 | + |
| 39 | +๋์ ๋ณ๊ฒฝ ๋จ๊ณ์์๋: |
| 40 | +- ๋ฐ๋์ ์คํจํ๋ ํ
์คํธ๋ก ์์ํ๋ค. |
| 41 | +- ํ
์คํธ๋ฅผ ํต๊ณผ์ํค๋ ์ต์ ๊ตฌํ๋ง ํ๋ค. |
| 42 | +- ์ด๋ก๋ถ ์ดํ์๋ง ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ํ๋ค. |
| 43 | + |
| 44 | +## `go` Execution Contract |
| 45 | +`go` ๋ผ๊ณ ํ๋ฉด ์๋ ์์๋ก ์ ํํ ์ํํ๋ค. |
| 46 | +1. `Test Queue` ์์ ์ฒดํฌ๋์ง ์์ ์ฒซ ๋ฒ์งธ ํญ๋ชฉ์ ์ฐพ๋๋ค. |
| 47 | +2. ํด๋น ํญ๋ชฉ์ ๋ํ ํ
์คํธ๋ฅผ **ํ๋๋ง** ์์ฑํ๋ค. |
| 48 | +3. ํ
์คํธ๊ฐ ์คํจํ๋์ง ํ์ธํ๋ค. (**Red**) |
| 49 | +4. ํ
์คํธ๋ฅผ ํต๊ณผ์ํค๋ ์ต์ ๊ตฌํ๋ง ์ถ๊ฐํ๋ค. (**Green**) |
| 50 | +5. ๋ชจ๋ ๊ด๋ จ ํ
์คํธ๋ฅผ ๋ค์ ์คํํ๋ค. |
| 51 | +6. ๊ตฌ์กฐ ๊ฐ์ ์ด ํ์ํ๋ฉด ๋ณ๋ ๊ตฌ์กฐ ๋ณ๊ฒฝ์ผ๋ก๋ง ์ ๋ฆฌํ๋ค. (**Refactor / Tidy First**) |
| 52 | +7. `Test Queue` ์ํ๋ฅผ ๊ฐฑ์ ํ๋ค. |
| 53 | + |
| 54 | +## Definition of Done for One Step |
| 55 | +ํ๋์ `go` ๋จ๊ณ๋ ์๋ ์กฐ๊ฑด์ ๋ง์กฑํ ๋๋ง ๋๋๋ค. |
| 56 | +- ์ด๋ฒ ๋จ๊ณ์์ ์ถ๊ฐํ ํ
์คํธ๊ฐ ์กด์ฌํ๋ค. |
| 57 | +- ์ ํ
์คํธ๊ฐ ์ฒ์์๋ ์คํจํ๋ค. |
| 58 | +- ํ์ฌ๋ ํ
์คํธ๊ฐ ํต๊ณผํ๋ค. |
| 59 | +- ๊ตฌ์กฐ ๋ณ๊ฒฝ๊ณผ ๋์ ๋ณ๊ฒฝ์ ๊ฒฝ๊ณ๊ฐ ์ค๋ช
๊ฐ๋ฅํ๋ค. |
| 60 | +- ๋ค์์ ์งํํ ํ
์คํธ๊ฐ `Test Queue` ์ ๋ช
ํํ ๋จ์ ์๋ค. |
20 | 61 |
|
21 | 62 | ## Swift Rules |
22 | 63 | - Swift์์๋ ์๋ฏธ๊ฐ ๋ถ๋ช
ํ ํ์
/๋ฉ์๋ ์ด๋ฆ์ ์ฐ์ ํ๋ค. |
|
25 | 66 | - ๋ ์ด์ด ์ญ๋ฐฉํฅ import ๊ธ์ง. |
26 | 67 | - ๋ชจ๋ ์์กด์ฑ์ Assembly๋ฅผ ํตํด ๋ฑ๋กํ๋ค. |
27 | 68 |
|
| 69 | +## PR / Commit Rules |
| 70 | +- ํ PR ์์์๋ ๊ตฌ์กฐ ๋ณ๊ฒฝ ์ปค๋ฐ๊ณผ ๋์ ๋ณ๊ฒฝ ์ปค๋ฐ์ ๋ถ๋ฆฌํ๋ค. |
| 71 | +- PR ์ค๋ช
์๋ ์๋๋ฅผ ํฌํจํ๋ค. |
| 72 | + - ์ด๋ค ํ
์คํธ๊ฐ ๋จผ์ ์คํจํ๋์ง |
| 73 | + - ์ด๋ค ์ต์ ๊ตฌํ์ผ๋ก ์ด๋ก๋ถ์ ๋ง๋ค์๋์ง |
| 74 | + - ์ด๋ค ๊ตฌ์กฐ ๊ฐ์ ์ ๋์ค์ ํ๋์ง |
| 75 | +- ํ
์คํธ ์์ด ๊ธฐ๋ฅ ์ฝ๋๋ฅผ ๋จผ์ ๋ฃ๋ ๋ณ๊ฒฝ์ ํ์ฉํ์ง ์๋๋ค. |
| 76 | + |
28 | 77 | ## Test Queue |
29 | 78 | - [ ] ๋ค์ ๊ธฐ๋ฅ ์์
์ด ์ ํด์ง๋ฉด ์ฒซ failing test ๋ฅผ ์ฌ๊ธฐ์ ์ถ๊ฐํ๋ค. |
0 commit comments