- transformation์ refactoring๊ณผ ๋์ ๊ด๊ณ(counterpart)์ ์๋ค.
- refactoring์ด ํ์์ ๋ณ๊ฒฝ ์์ด ์ฝ๋์ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ํด ์์ค ์ฝ๋์ ์์ ๋ณ๊ฒฝ์ ํ๋ค๋ฉด,
- transformation์ ๋ฐ๋๋ก ๊ตฌ์กฐ์ ๋ณ๊ฒฝ ์์ด ํ์๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ํด ์์ค ์ฝ๋์ ์์ ๋ณ๊ฒฝ์ ๊ฐํ๋ ๊ฒ์ด๋ค.
- ์ข์ ์๊ณ ๋ฆฌ์ฆ์ ์ป๊ธฐ ์ํ ์ฐ์ ์์ ์กด์ฌ
- transformation์ ์ฐ์ ์์๋ฅผ ์ ์ ์ฉํ๋ฉด ๋ณด๋ค ๋์ ์๊ณ ๋ฆฌ์ฆ์ ์ป์ ์ ์๋ค๋ ๊ฒ์ ๋ณด์ฌ ์ค
- ์ค์ํ ๊ตฌํ์ ๋ฏธ๋ฃจ๋ ๊ฒ์ด ์ข์ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์๋ดํจ(ex. guard clause)
-
์คํจํ๋ ํ ์คํธ๋ฅผ ์ฑ๊ณต์ํค๊ธฐ ์ํด ์ฌ์ฉ๋ ์ ์๋ค. ์ฆ Red, Transform to Green, Refactor...
-
ํ ์คํธ๊ฐ ์คํจํ๋ฉด ๊ตฌ์กฐ๋ ์ ์งํ์ฑ ์ฑ๊ณต์ํค๊ธฐ ์ํด ํ์๋ฅผ ๋ณ๊ฒฝํ๋ค. - transformation
-
ํ ์คํธ๊ฐ ์ฑ๊ณตํ๋ฉด ํ์๋ฅผ ์ ์งํ์ฑ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ํ๋ค. - refactoring
-
์คํจํ๋ ํ ์คํธ๋ฅผ ์ฑ๊ณต์ํค๋๋ฐ ์ ์ฉ๋๋ ๊ท์น
As the tests get more specific, the code gets more generic
-
๊ทธ๋ผ transformation์ ์ด๋ค ๋ฐฉํฅ์ผ๋ก ์ฝ๋๋ฅผ ์ด๋์ํค๋ ?
- transformation์ ํ ์คํธ๋ฅผ ์ฑ๊ณต์ํค๋๋ฐ ์ฌ์ฉ๋จ
- transformation๋ ์ฝ๋๋ฅผ ๋ณด๋ค generalํ๊ฒ ํจ
- transformation์ generalizer์
Transformation์ ๊ตฌ์กฐ์ ์ํฅ์ ๋ฏธ์น์ง ์์์ฑ ํ์๋ฅผ ์ผ๋ฐํ(generalize)ํ๋ ์ฝ๋์ ๋ํ ์์ ๋ณ๊ฒฝ์ด๋ค. transformation์ ๊ตฌ์กฐ ๋ณ๊ฒฝ์์ด ํ์๋ฅผ ์ผ๋ฐํํ๋ค.```
{} โ Nil- ์๋ฌด ์ฝ๋๊ฐ ์๋ ์ํ์์ ์์ํจ
- ๊ฐ์ฅ ํดํํ ํ ์คํธ๋ฅผ ์์ฑ
- ์ปดํ์ผ์ด ๋์ง๋ง ์คํจํด์ผ ํจ
- SUT์์ null์ ๋ฐํ
- ์๋ฌด ์ฝ๋๊ฐ ์๋ ์ํ์์ ์์ํจ
Nil โ Constant- ํ์ฌ ํ ์คํธ๋ฅผ ํต๊ณผ์ํค๋๋ก ์์๋ฅผ ๋ฐํ
Constant โ Variable- Triangulate๋ฅผ ํ๋ฉด Constant๋ก ํ ์คํธ๋ฅผ ํต๊ณผ์ํฌ ์ ์๊ฒ ๋จ
- ์ด๋ฌํ ๋ณํ๋ค์ด ๊ณ์ ๋งค์ฐ ๊ตฌ์ฒด์ ์ธ ์ํ์์ ์ด์ง ๋ ์ผ๋ฐ์ ์ธ ์ํ๋ก ์ฎ๊น
- ์ด๋ฐ ๋ณํ์ ๋ชจ๋ ์ผ๋ฐํ, ์ฆ ์ฝ๋๊ฐ ์ด์ ๋ณด๋ค ๋ ๋ค์ํ ์ ์ฝ ์กฐ๊ฑด์ ์ฒ๋ฆฌํ ์ ์๋๋ก ํ๋ ๋ฐฉ๋ฒ์
Unconditional โ Selection- ์กฐ๊ฑด๋ฌธ(if) ์ถ๊ฐ
Value โ List- one to many
Selection โ Iteration- if โ while
Statement โ Recursion- ๋ฐ๋ณต๋ฌธ ๋์ ๋ช ๋ น๋ฌธ์ ์ฌ๊ท ๋ช ๋ น๋ฌธ์ผ๋ก ๋ณ๊ฒฝ
- ์ฌ๊ท ์ธ์๋ ๋ณ๋ ๋ฐ๋ณต ๊ธฐ๋ฅ์ด ์๋ ๊ฒฝ์ฐ์ ํนํ ์์ฃผ ๋ณผ ์ ์์
Value โ Mutated Value- ๋ณ์์ ๊ฐ์ ๋ณ๊ฒฝ
- ๋ฐ๋ณต๋ฌธ์์ ๋ถ๋ถ๊ฐ๋ค์ ๋ชจ์ผ๊ฑฐ๋ ์ ์ง์ ์ธ ๊ณ์ฐ์ ์ํด ์ฌ์ฉ๋จ
- ๋ณ์์ ๊ฐ์ ๋ณ๊ฒฝ
- ๋ ์ด์์ ๋ณํ์ ์กฐํฉํด์ ํ
์คํธ๋ฅผ ํต๊ณผ์ํค๊ณ ์ถ์ ์๊ฐ์ด ๋ ๋ค๋ฉด ?
- ํ๋ ์ด์์ ํ ์คํธ๋ฅผ ๋น ํธ๋ฆฐ ๊ฒ์ ์ ์์
- ํ๋์ ๋ณํ๋ง ์ฌ์ฉํด์ ํต๊ณผ์ํฌ ์ ์๋ ํ ์คํธ๋ฅผ ์ฐพ์๋ณด๋ผ
- ์ ํ์ ํด์ผ ํ๋ค๋ฉด ์ฐ์ ์์๊ฐ ๋์ ๋ณํ์ ์ทจํ๋ผ
- ์์๋๋ก ๋ณํ์ ์ ์ฉํ๋ค ๋ณด๋ฉด ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์คํ์ผ์ ์ฌ์ฉํ๋ ํด๋ฒ์ ๊ตฌํํ๊ฒ ๋จ