View Code? Open in Web Editor
NEW
๐ | [Test-Driven Development : By Example]์ ์ฝ์ผ๋ฉฐ ์ ๋ฆฌํ๋ ์์
tdd-practice's People
Contributors
Stargazers
Watchers
tdd-practice's Issues
1๋ถ์์ ํด๊ฒฐํด์ผ ํ ์ด์ ๋ชฉ๋ก
์ด์์ ์ด๋ฆ์ ์ฑ
์ ๋์จ ๊ทธ๋๋ก๋ฅผ ๋ฐ๋ฆ.
- ํด๊ฒฐํ๊ณ ์ ํ๋ ๋ชฉํ
- Dollar์ ๊ฐ์ ์ญํ ์ ํ๋ ๋ ๋ค๋ฅธ ํํ๋จ์์ธ, Franc class ๋ง๋ค๊ธฐ
- ํด๋น ์ด์์์ ํ ์์
- ํฐ ํ
์คํธ ๊ณต๋ต ์คํจ($5 + 10CHF = $10)
๊ทธ๋์ ์ง์ ์ ๋ํ๋ผ ์ ์๋ ์๊ทธ๋งํ ํ
์คํธ๋ฅผ ๋ง๋ค์์.
- ์ค๋ณต์ ๋ง๋ค๊ณ ์กฐ๊ธ ๊ณ ์ณ์ ํ
์คํธ๋ฅผ ์์ฑ.
- ๋ชจ๋ธ ์ฝ๋๋ ๋ณต์ฌ, ์์ ํด์ ํ
์คํธ ํต๊ณผ.
- ์ค๋ณต ๊ฐ์ ์ด ํ์์ ์ผ๋ก ํ์ํ๋ค๊ณ ๋๊ผ์.
TDD์ ๊ถ๊ทน์ ์ธ ๋ชฉํ - ์๋ํ๋ ๊น๋ํ ์ฝ๋(clean code that works, Ron Jeffries)
์๋ํ๋ ๊น๋ํ ์ฝ๋๊ฐ ํ๋ฅญํ ์ด์ ๋?
- ์์ธก ๊ฐ๋ฅํ ๊ฐ๋ฐ ๋ฐฉ๋ฒ์ด๋ค.
๋์์์ด ๋ฐ์ํ ๋ฒ๊ทธ์ ๋ํด ๊ฑฑ์ ํ์ง ์๊ณ , ์ผ์ด ์ธ์ ๋ง๋ฌด๋ฆฌ ๋ ์ง ์ ์ ์๋ค.
- ์ฝ๋๊ฐ ๊ฐ๋ฅด์ณ ์ฃผ๋ ๋ชจ๋ ๊ตํ์ ํ์ตํ ๊ธฐํ๋ฅผ ๊ฐ๊ฒ ๋๋ค.
์ฒ์ ์๊ฐ๋๋ ๋๋ก ํ๋ฑ ์๋ฃํด ๋ฒ๋ฆฌ๋ฉด ๋ ๋ฒ์งธ ๊ฒ, ๋ ๋์ ๊ฒ์ ๋ํด ์๊ฐํ ๊ธฐํ๋ฅผ ์๊ฒ ๋๋ค.
- ๋น์ ์ด ๋ง๋ ์ํํธ์จ์ด๋ ์ฌ์ฉ์์ ์ถ์ ํฅ์์์ผ ์ค๋ค.
- ๋๋ฃ๋ค์ด ๋น์ ์ ์กด๊ฒฝํ ์ ์๊ฒ ํด์ฃผ๋ฉฐ, ๋น์ ๋ํ ๋๋ฃ๋ค์ ์กด๊ฒฝํ ์ ์๊ฒ ํด์ค๋ค.
- ์์ฑํ๋ ๋์ ๊ธฐ๋ถ์ด ์ข๋ค!
TDD์์์ ๊ท์น
- ์ค์ง ์๋ํ๋ ํ
์คํธ๊ฐ ์คํจํ ๊ฒฝ์ฐ์๋ง ์๋ก์ด ์ฝ๋๋ฅผ ์์ฑํ๋ค.
- ์ค๋ณต์ ์ ๊ฑฐํ๋ค.
์ด ๊ท์น์ด ์ด์งํ๋ ํ๋ ํจํด
- ๋งค (์ค๊ณ์ ๋ํ)๊ฒฐ์ ์ฌํญ์ ๋ํด ํผ๋๋ฐฑ์ ์ ๊ณตํ๋ ์คํ ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์ ๊ธฐ์ ์ธ ์ค๊ณ๋ฅผ ํด์ผ ํ๋ค.
- ์๋ํ ๋ ํ
์คํธ๋ฅผ ๋ค๋ฅธ ์ฌ๋์ด ๋ง๋ค์ด์ฃผ๊ธธ ๊ธฐ๋ค๋ฆด ์๋ ์์ผ๋ฏ๋ก, ์ง์ ํ
์คํธ๋ฅผ ์์ฑํด์ผ ํ๋ค.
- ๊ฐ๋ฐ ํ๊ฒฝ์ ์์ ๋ณํ์๋ ๋น ๋ฅด๊ฒ ๋ฐ์ํ ์ ์์ด์ผ ํ๋ค.
- ํ
์คํธ๋ฅผ ์ฝ๊ฒ ๋ง๋ค๋ ค๋ฉด ๋ฐ๋์ ์์ง๋๋ ๋๊ณ ๊ฒฐํฉ๋๋ ๋ฎ์ ์ปดํฌ๋ํธ๋ค๋ก ๊ตฌ์ฑ๋๊ฒ๋ ์ค๊ณํด์ผ ํ๋ค.
์ด ๊ท์น์ ์ํด ๊ฒฐ์ ๋๋ ํ๋ก๊ทธ๋๋ฐ ์์
- ์คํจํ๋ ์์ ํ
์คํธ๋ฅผ ์์ฑํ๋ค.
- ์ฒ์์๋ ์ปดํ์ผ์กฐ์ฐจ ๋์ง ์์ ์ ์๋ค.
- ๋นจ๋ฆฌ ํ
์คํธ๊ฐ ํต๊ณผํ๊ฒ๋ ๋ง๋ ๋ค.
- ์ด๋ฅผ ์ํด ์๋์ ๊ฒ๋ค์ ํด๋ ์ข๋ค.
- ๊ธฐ์กด ์ฝ๋ ๋ณต๋ถํ๊ธฐ
- ํ
์คํธ๋ง ๊ฐ์ ํ ํต๊ณผํ ์ ์๊ฒ๋ ํจ์๊ฐ ๋ฌด์กฐ๊ฑด ํน์ ์์๋ฅผ ๋ฐํํ๋๋ก ๊ตฌํํ๊ธฐ
- ์ผ๋จ ํ
์คํธ๋ฅผ ํต๊ณผํ๊ฒ๋ง ํ๋ ์์ค์ ์๊ฒจ๋ ๋ชจ๋ ์ค๋ณต์ ์ ๊ฑฐํ๋ค(๋ฆฌํฉํ ๋ง)
- ํด๊ฒฐํ๊ณ ์ ํ๋ ๋ชฉํ
- ํตํ ๋จ์๊ฐ ๊ฐ์ ํํ์ ํฉ์ ๊ตฌํ๊ธฐ
- ํด๋น ์ด์์์ ํ ์์
- ๋ชจ๋ ์ค๋ณต์ด ์ ๊ฑฐ๋๊ธฐ ์ ๊น์ง๋ ํ
์คํธ๋ฅผ ํต๊ณผํ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ์ง ์์์!
- ๊ตฌํํ๊ธฐ ์ํด ๊ทธ ์ ๊ณผ ๋ค๋ฅด๊ฒ ์ญ๋ฐฉํฅ์ด ์๋ ์๋ฐฉํฅ์ผ๋ก ์์
.
- ์์ผ๋ก ํ์ํ ๊ฒ์ผ๋ก ์์๋๋ ๊ฐ์ฒด(Sum)์ ์์ฑ์ ๊ฐ์ํ๊ธฐ ์ํ ํ
์คํธ๋ฅผ ์์ฑ
- ํด๊ฒฐํ๊ณ ์ ํ๋ ๋ชฉํ
- ํด๋น ์ด์์์ ํ ์์
- ํฐ ์ค๊ณ ์์ด๋์ด๋ฅผ ๋ค๋ฃจ๋ ค๋ค ๋ ์์ ์์
์ ์ํ.
- ๋ค๋ฅธ ๋ถ๋ถ๋ค์ ํธ์ถ์(ํฉํ ๋ฆฌ ๋ฉ์๋)๋ก ์ฎ๊น์ผ๋ก์จ ๋ ์์ฑ์๋ฅผ ์ผ์น ์ํด.
- ๋น์ทํ ๋ฆฌํฉํ ๋ง(Franc์ ํ๋ ์ผ์ Dollar์๋ ์ ์ฉ)์ ํ ๋ฒ์ ํฐ ๋จ๊ณ๋ก ์ฒ๋ฆฌ.
- ๋์ผํ ์์ฑ์๋ค์ ์์ ํด๋์ค๋ก ์ฌ๋ ธ์.
- ํด๊ฒฐํ๊ณ ์ ํ๋ ๋ชฉํ
- ์ค๊ณ ์์ ๊ฒฐํจ์ ํ
์คํธ๋ฅผ ํตํด ํด๊ฒฐํ๋ค.
- ํด๋น ์ด์์์ ํ ์์
- ์ค๊ณ ์์ ๊ฒฐํจ(Dollar ๋ถ์์ฉ)์ ๊ทธ ๊ฒฐํจ์ผ๋ก ์ธํด ์คํจํ๋ ํ
์คํธ๋ก ๋ณํ.
- Stub ๊ตฌํ์ผ๋ก ๋น ๋ฅด๊ฒ ์ปดํ์ผ์ ํต๊ณผํ๋๋ก ๋ง๋ค์์.
- ์ฌ๋ฐ๋ฅด๋ค๊ณ ์๊ฐํ๋ ์ฝ๋๋ฅผ ์
๋ ฅํ์ฌ ํ
์คํธ๋ฅผ ํต๊ณผ.
- ํด๊ฒฐํ๊ณ ์ ํ๋ ๋ชฉํ
- Dollar์ ํ๋์ธ amount๋ฅผ private์ผ๋ก ๋ง๋ค๊ธฐ
- ํด๋น ์ด์์์ ํ ์์
- ๊ฐ๋ฐ๋ ๊ธฐ๋ฅ์ ์ค์ง ํ
์คํธ๋ฅผ ํฅ์์ํค๊ธฐ ์ํด์๋ง ์ฌ์ฉ.
- ๋ ํ
์คํธ๊ฐ ๋์์ ์คํจํ๋ฉด ๋งํ๋ค๋ ์ ์ ์ธ์.(testMultiplication2()์ testEquality()์ ๊ด๊ณ)
- ์ํ ์์๊ฐ ์์์๋ ๊ณ์ ์งํํ์.
- ํ
์คํธ์ ์ฝ๋ ์ฌ์ด์ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๊ธฐ ์ํด, ํ
์คํธ ํ๋ ๊ฐ์ฒด์ ์ ๊ธฐ๋ฅ์ ์ฌ์ฉ.
- ํด๊ฒฐํ๊ณ ์ ํ๋ ๋ชฉํ
- ์๋ก ๋ค๋ฅธ ํตํ ๋ํ๊ธฐ
- ํด๋น ์ด์์์ ํ ์์
- ์ํ๋ ์๋๋ฆฌ์ค ์์ฑ
- ์ถ์์ ์ธ ์ ์ธ์ ํตํด ๊ฐ์ง์์ ๋ฟ๋ฆฌ(ํ
์คํธ ์ผ์ด์ค)๋ก ์ผ๋ฐํ ํ์
- ๋ณ๊ฒฝ ํ, ๊ทธ ์ํฅ์ ๋ฐ์ ๋ค๋ฅธ ๋ถ๋ถ๋ค์ ์ฐ์์ ์ผ๋ก ๋ณ๊ฒฝ
- ํด๊ฒฐํ๊ณ ์ ํ๋ ๋ชฉํ
- Dollar์ Franc์ ์ค๋ณต ์ ๊ฑฐ
- ํด๋น ์ด์์์ ํ ์์
- ํ์ ํด๋์ค์ ์์ ๋ค์ด๋ด๋ ๊ฑธ ์๋ฃ, ํ์ ํด๋์ค๋ฅผ ์ญ์
- ๊ธฐ์กด์ ์์ค ๊ตฌ์กฐ์์๋ ํ์ํ์ง๋ง ์๋ก์ด ๊ตฌ์กฐ์์๋ ํ์ ์๊ฒ ๋ ํ
์คํธ๋ฅผ ์ ๊ฑฐ
Factory Method Pattern?
๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด๋ด๋ ๋ถ๋ถ์ ์๋ธ ํด๋์ค์ ์์ํ๋ ํจํด.
์ฆ, new ํค์๋๋ฅผ ํธ์ถํ๋ ๋ถ๋ถ์ ์๋ธ ํด๋์ค์ ์์ํ๋ ๊ฒ.
๊ฒฐ๊ตญ ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด๋ด๋ ๊ณต์ฅ(Factory ๊ฐ์ฒด)์ ๋ง๋๋ ํจํด์ด๋ผ ์ดํดํ๋ฉด ๋จ.
implementation
![แแ
ณแแ
ณแ
แ
ตแซแแ
ฃแบ 2020-07-09 แแ
ฉแแ
ฎ 7 29 28](https://user-images.githubusercontent.com/33146620/87029187-bb90f900-c21a-11ea-8734-c57db41a753e.png)
์๋
- ๊ฐ์ฒด ์์ฑ์ ์บก์ํ
- ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํด ์ธํฐํ์ด์ค๋ฅผ ์ ์ํ์ง๋ง, ์ด๋ค ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์์ฑํ ์ง์ ๋ํ ๊ฒฐ์ ์ ์๋ธํด๋์ค๊ฐ ๋ด๋ฆฌ๊ฒ ํจ.
๊ตฌํ ์ ๊ณ ๋ คํ ์ ๋ค
- ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด์ ๊ตฌํ ๋ฐฉ๋ฒ์ ํฌ๊ฒ ๋ ๊ฐ์ง
- Creator๋ฅผ ์ถ์ ํด๋์ค๋ก ์ ์, ํฉํ ๋ฆฌ ๋ฉ์๋๋ abstract๋ก ์ ์ธํ๋ ๋ฐฉ๋ฒ.
- Creator๊ฐ ๊ตฌ์ฒด ํด๋์ค์ด๊ณ , ํฉํ ๋ฆฌ ๋ฉ์๋์ ๊ธฐ๋ณธ ๊ตฌํ์ ์ ๊ณตํ๋ ๋ฐฉ๋ฒ.
- ํฉํ ๋ฆฌ ๋ฉ์๋์ ์ธ์๋ฅผ ํตํด ๋ค์ํ Product๋ฅผ ์์ฑํ๊ฒ ํจ.
- ํฉํ ๋ฆฌ ๋ฉ์๋์ ์๋ชป๋ ์ธ์๊ฐ ๋ค์ด์ฌ ๊ฒฝ์ฐ์ ๋ฐํ์ ์๋ฌ ์ฒ๋ฆฌ์ ๋ํด ๊ณ ๋ฏผํด์ผ ํจ.
- Enum ๋ฑ์ ์ฌ์ฉํ๋ ๊ฒ๋ ๊ณ ๋ คํ ํ์๊ฐ ์์.
- ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ณ๋ก ๊ตฌํ ๋ฐฉ๋ฒ์ ์ฐจ์ด๊ฐ ์์ ์ ์์.
- ํด๊ฒฐํ๊ณ ์ ํ๋ ๋ชฉํ
- Money์ ํตํ ๋จ์ ๋ณํ
- ํด๋น ์ด์์์ ํ ์์
- ํ์ํ ๊ฑฐ๋ผ๊ณ ์๊ฐํ ํ๋ผ๋ฏธํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ถ๊ฐํจ
- ์ฝ๋์ ํ
์คํธ ์ฌ์ด์ ์๋ ๋ฐ์ดํฐ ์ค๋ณต์ ๋์ง์ด๋
- ๋ณ๋์ ํ
์คํธ ์์ด ์ ์ฉ(private) ๋์ฐ๋ฏธ(helper) ํด๋์ค๋ฅผ ๋ง๋ค์์
- ๋ฌธ์ ๋ฅผ ๋ถ๋ฆฌํ๊ธฐ ์ํด ๋ ํ๋์ ํ
์คํธ๋ฅผ ์์ฑํ๋ฉด์ ์งํํ์.
- ํด๊ฒฐํ๊ณ ์ ํ๋ ๋ชฉํ
- ๊ณต์ฉ times ์ค๋ณต ์ ๊ฑฐ
- ํด๋น ์ด์์์ ํ ์์
- ๋ times()๋ฅผ ์ผ์น์ํค๊ธฐ ์ํด, ๊ทธ ๋ฉ์๋๋ค์ด ํธ์ถํ๋ ๋ค๋ฅธ ๋ฉ์๋๋ค์ ์ธ๋ผ์ธ ์ํจ ํ ์์๋ฅผ ๋ณ์๋ก ๋ณ๊ฒฝ.
- ๋๋ฒ๊น
์ ์ํด ํ
์คํธ ์์ด toString()์ ์์ฑ.
- Franc ๋์ Money๋ฅผ ๋ฐํํ๋๋ก ๋ณ๊ฒฝ์ ์๋, ๊ทธ๊ฒ์ด ์ ์๋ ํ ์ง๋ฅผ ํ
์คํํจ.
- ์คํํด๋ณธ ๊ฑธ ๋ค๋ก ๋ฌผ๋ฆฌ๊ณ ๋ ๋ค๋ฅธ ํ
์คํธ๋ฅผ ์์ฑ.
- ํ
์คํธ๋ฅผ ์๋ํ๋๋ ์๋ ์คํํ๋ ๊ฒ๋ ์ ์๋ํ๋ ๊ฒ์ ํ์ธ.
- ํด๊ฒฐํ๊ณ ์ ํ๋ ๋ชฉํ
- Dollar ํด๋์ค์ Franc ํด๋์ค ์ฌ์ด์ ์ค๋ณต ์ฝ๋ ์ ๊ฑฐํ๊ธฐ
- ํด๋น ์ด์์์ ํ ์์
- ๊ณตํต๋ ์ฝ๋๋ฅผ Dollar์์ ์์ ํด๋์ค(Money)๋ก ์ฎ๊น.
- Franc๋ Money์ ํ์ ํด๋์ค๋ก ๋ง๋ค์์
- ๋ถํ์ํ ๊ตฌํ์ ์ ๊ฑฐํ๊ธฐ ์ ์ ๋ equals() ๊ตฌํ์ ์ผ์น์์ผฐ์.
- ํด๊ฒฐํ๊ณ ์ ํ๋ ๋ชฉํ
- Dollar์ Franc ์ค๋ณต ์ค์ด๊ธฐ
- ํด๋น ์ด์์์ ํ ์์
- ๋์ผํ ๋ฉ์๋(times)์ ๋ ๋ณ์ดํ ๋ฉ์๋ ์๊ทธ๋์ฒ๋ฅผ ํต์ผ์ํด์ผ๋ก์จ ์ค๋ณต ์ ๊ฑฐ๋ฅผ ํฅํด ํ ๋จ๊ณ ๋ ์ ์งํ์!
- ์ต์ํ ๋ฉ์๋ ์ ์ธ๋ถ๋ง์ด๋ผ๋ ๊ณตํต ์์ ํด๋์ค(superclass)๋ก ์ฎ๊น.
- factory method๋ฅผ ๋์
ํ์ฌ ํ
์คํธ ์ฝ๋์์ ์ฝํฌ๋ฆฌํธ ํ์ ํด๋์ค์ ์กด์ฌ ์ฌ์ค์ ๋ถ๋ฆฌ.
- ํ์ ํด๋์ค๊ฐ ์ฌ๋ผ์ง๋ฉด ๋ช๋ช ํ
์คํธ๋ ๋ถํ์ํ ์ฌ๋ถ์ ๊ฒ์ด ๋๋ค๋ ๊ฒ์ ํ์ธ(๋ณ๊ฒฝ x)
- ํด๊ฒฐํ๊ณ ์ ํ๋ ๋ชฉํ
- Dollar์ Franc ๋น๊ตํ๊ธฐ
- ํด๋น ์ด์์์ ํ ์์
- ๊ฒฐํจ์ ํ
์คํธ์ ๋ด์๋์.
- ์๋ฒฝํ์ง ์์ง๋ง (getClass())์ผ๋ก ํ
์คํธ๋ฅผ ํต๊ณผํ๊ฒ ๋ง๋ค์์.
- ๋ ๋ง์ ๋๊ธฐ๊ฐ ์๊ธฐ ์ ์๋ ๋ ๋ง์ ์ค๊ณ๋ฅผ ๋์
ํ์ง ์๊ธฐ๋ก ํ์.
- equals()์์ java ๊ฐ์ฒด์ ์ฉ์ด(getClass())๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ๋ณด๋ค ์ฌ์ ๋ถ์ผ์ ๋ง๋ ์ฉ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ๋์๋ณด์.
- ํ์ง๋ง, ํ์ฌ๋ ํตํ(currency) ๊ฐ๋
๊ฐ์ ๊ฒ ์๊ณ , ๋์
ํ ์ถฉ๋ถํ ์ด์ ๊ฐ ์์ด ๋ณด์ด๋ฏ๋ก TO-DO ๋ฆฌ์คํธ์๋ง ๋ฌ์๋๊ธฐ๋ก ๊ฒฐ์ .
- ํด๊ฒฐํ๊ณ ์ ํ๋ ๋ชฉํ
- Dollar์ Dollar๋ฅผ ์ง์ ๋น๊ตํ ์ ์๋ค.
- ํด๋น ์ด์์์ ํ ์์
- ์ฐ๋ฆฌ์ ๋์์ธ ํจํด(value object pattern)์ด ํ๋์ ๋ ๋ค๋ฅธ operation์ ์์ ํ๋ค๋ ๊ฒ์ ์์์.
- ํด๋น operation์ ํ
์คํธ.
- ํด๋น operation์ ๊ฐ๋จํ ๊ตฌํํ์.
- ๊ณง์ฅ ๋ฆฌํฉํ ๋ง ํ๋ ๋์ ํ
์คํธ๋ฅผ ์กฐ๊ธ ๋ ์ถ๊ฐ.
- ๋ ๊ฒฝ์ฐ๋ฅผ ๋ชจ๋ ์์ฉํ ์ ์๋๋ก ๋ฆฌํฉํ ๋ง.
- ํด๊ฒฐํ๊ณ ์ ํ๋ ๋ชฉํ
- TO-DO ๋ฆฌ์คํธ์์ ๊ผญ ๊ตฌํํด์ผ ํ๋ ์ต์ํ์ ์์
์ํ๊ณผ ์ถ์ํ
- ํด๋น ์ด์์์ ํ ์์
- ๋ค๋ฅธ ์ฌ๋๋ค์ ์ผ๋์ ๋ ํ
์คํธ๋ฅผ ์์ฑ
- ํ ๋ฒ์ ์ ์ธ๋ถ์ ๋ํ ์์ ์ด ์์คํ
๋๋จธ์ง ๋ถ๋ถ์ผ๋ก ๋ฒ์ ธ๊ฐ๊ณ , ๋ฌธ์ ๋ฅผ ๊ณ ์น๊ธฐ ์ํด ์ปดํ์ผ๋ฌ์ ์กฐ์ธ์ ๋ฐ๋์
- ์ ์ ์คํ์ ์๋ํ๋ค๊ฐ ์ข์ง ๋ชปํด์ ๋ฒ๋ ธ์.
- ํด๊ฒฐํ๊ณ ์ ํ๋ ๋ชฉํ
- ์ด๋ค ๊ธ์ก(์ฃผ๊ฐ)์ ์ด๋ค ์(์ฃผ์์ ์)์ ๊ณฑํ ๊ธ์ก์ ๊ฒฐ๊ณผ๋ก ์ป์ ์ ์์ด์ผ ํ๋ค.
- ํด๋น ์ด์์์ ํ ์์
- ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ ์์
ํด์ผ ํ TO-DO ๋ชฉ๋ก์ ๋ง๋ค์์.
- Operation์ด ์ธ๋ถ์์ ์ด๋ป๊ฒ ๋ณด์ด๊ธธ ์ํ๋์ง ๋งํด์ฃผ๋ ์ด์ผ๊ธฐ๋ฅผ ์ฝ๋๋ก ํํ.
- JUnit์ ๋ํ ์์ธํ ์ฌํญ๋ค์ ์ ์ ๋ฌด์.
- Stub ๊ตฌํ์ ํตํด ํ
์คํธ๋ฅผ ํต๊ณผ.
- ์ข์ง ๋ชปํ ๋ฐฉ๋ฒ์ผ๋ก ํ
์คํธ๋ฅผ ํต๊ณผ.
- ๋์๊ฐ๋ ์ฝ๋์์ ์์๋ฅผ ๋ณ์๋ก ๋ณ๊ฒฝ -> ์ ์ง์ ์ผ๋ก ์ผ๋ฐํ
- ์๋ก์ด ํ ์ผ๋ค์ ํ ๋ฒ์ ์ฒ๋ฆฌํ๋ ๋์ TO-DO ๋ชฉ๋ก์ ์ถ๊ฐํ๊ณ ๋์ด๊ฐ.
- ํด๊ฒฐํ๊ณ ์ ํ๋ ๋ชฉํ
- Bank์์์ reduce(Money)๊ฐ ๊ฐ๋ฅํ๊ฒ ํ๊ธฐ
- ํด๋น ์ด์์์ ํ ์์
- ์ผ๋จ ํ ๊ณณ์ ์บ์คํ
์ ์ด์ฉํด์ ์ฝ๋๋ฅผ ๊ตฌํํ๋ค๊ฐ, ํ
์คํธ ํต๊ณผ ํ์ธ ํ ๊ทธ ์ฝ๋๋ฅผ ์์ .
- ๋ช
์์ ์ธ ํด๋์ค ๊ฒ์ฌ๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํด ๋คํ์ฑ์ ์ฌ์ฉ.