ํฐ์คํ ๋ฆฌ ๋ทฐ
TDD๋?
TDD๋ Test Driven Development์ ์ฝ์๋ก 'ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ'์ด๋ผ๊ณ ํฉ๋๋ค.
๋ฐ๋ณต ํ ์คํธ๋ฅผ ์ด์ฉํ ์ํํธ์จ์ด ๋ฐฉ๋ฒ๋ก ์ผ๋ก ์์ ๋จ์์ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ํต๊ณผํ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ ๋จ๊ณ๋ฅผ ๋ฐ๋ณตํ์ฌ ๊ตฌํํ๊ฒ ๋ฉ๋๋ค. ์ฆ, ์งง์ ๊ฐ๋ฐ ์ฃผ๊ธฐ์ ๋ฐ๋ณต์ ์์กดํ๋ ๊ฐ๋ฐ ํ๋ก์ธ์ค์ด๋ฉฐ ์ ์์ผ ๋ฐฉ๋ฒ๋ก ์ค ํ๋์ธ eXtream Programming(XP)์ 'Test-First'๊ฐ๋ ์ ๊ธฐ๋ฐ์ ๋ ๋จ์ํ ์ค๊ณ๋ฅผ ์ค์์ํฉ๋๋ค.
**eXtream Programming(XP) : ๋ฏธ๋์ ๋ํ ์์ธก์ ์ต๋ํ ํ์ง ์๊ณ ์ง์์ ์ผ๋ก ํ๋กํ ํ์ ์ ์์ฑํ๋ ์ ์์ผ ๊ธฐ๋ฐฉ๋ฒ๋ก ์ค ํ๋๋ก, ์ถ๊ฐ ์๊ตฌ์ฌํญ์ด ์๊ธฐ๋๋ผ๋ ์ค์๊ฐ์ผ๋ก ๋ฐ์ํ ์ ์์
TDD์ ์ ์ฐจ
- TDD์์๋ ์ ํ์ ๊ธฐ๋ฅ ๊ตฌํ์ ์ํ ์ฝ๋์ ๋ณ๊ฐ๋ก, ํด๋น ๊ธฐ๋ฅ์ด ์ ์์ ์ผ๋ก ์์ง์ด๋์ง ๊ฒ์ฆํ๊ธฐ ์ํ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑ
- ํ ์คํธ๊ฐ ์คํจํ ๊ฒฝ์ฐ, ํ ์คํธ๋ฅผ ํต๊ณผํ๊ธฐ ์ํ ์ต์ํ์ ์ฝ๋๋ฅผ ๊ฐ์ ํฉ๋๋ค.
- ์ต์ข ์ ์ผ๋ก ํ ์คํธ์ ์ฑ๊ณตํ ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋ง
TDD์ ๊ฐ๋ฐ์ฃผ๊ธฐ
- { Red } ๋จ๊ณ์์๋ ์คํจํ๋ ํ ์คํธ ์ฝ๋๋ฅผ ๋จผ์ ์์ฑํ๋ค.
- { Green } ๋จ๊ณ์์๋ ํ ์คํธ ์ฝ๋๋ฅผ ์ฑ๊ณต์ํค๊ธฐ ์ํ ์ค์ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
- { Blue } ๋จ๊ณ์์๋ ์ค๋ณต ์ฝ๋ ์ ๊ฑฐ, ์ผ๋ฐํ ๋ฑ์ ๋ฆฌํฉํ ๋ง์ ์ํํ๋ค.
์ค์ํ ๊ฒ์ ์คํจํ๋ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ ๋๊น์ง ์ค์ ์ฝ๋๋ฅผ ์์ฑํ์ง ์๋ ๊ฒ๊ณผ, ์คํจํ๋ ํ ์คํธ๋ฅผ ํต๊ณผํ ์ ๋์ ์ต์ ์ค์ ์ฝ๋๋ฅผ ์์ฑํด์ผํ๋ ๊ฒ์ ๋๋ค.
TDD์ ์ฅ์
๊ฐ์ฒด์งํฅ์ ์ธ ์ฝ๋ ๊ฐ๋ฐ
ํ ์คํธ ์ฝ๋๋ฅผ ๋จผ์ ์์ฑํ๋ค๋ฉด ์ข๋ ๋ช ํํ ๊ธฐ๋ฅ๊ณผ ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ ์ ์์ต๋๋ค. TDD๋ ์ฝ๋์ ์ฌ์ฌ์ฉ ๋ณด์ฅ์ ๋ช ์ํ๋ฏ๋ก TDD๋ฅผ ํตํ ์ํํธ์จ์ด ๊ฐ๋ฐ ์ ๊ธฐ๋ฅ ๋ณ ์ฒ ์ฒํ ๋ชจ๋ํ๊ฐ ์ด๋ฃจ์ด์ง๋๋ค. ์ด๋ ์ข ์์ฑ๊ณผ ์์กด์ฑ์ด ๋ฎ์ ๋ชจ๋๋ก ์กฐํฉ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ๊ฐ๋ฅํ๊ฒ ํ๋ฉฐ ํ์์ ๋ฐ๋ผ ๋ชจ๋์ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํด๋ ์ํํธ์จ์ด ์ ์ฒด ๊ตฌ์กฐ์ ์ํฅ์ ๋ฏธ์น์ง ์๊ฒ ๋ฉ๋๋ค.
์ค๊ณ ์์ ์๊ฐ์ ๋จ์ถ
ํ ์คํธ ์ฝ๋๋ฅผ ๋จผ์ ์์ฑํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์๊ฐ ์ง๊ธ ๋ฌด์์ ํด์ผํ๋์ง ๋ถ๋ช ํ ์ ์ํ๊ณ ๊ฐ๋ฐ์ ์์ํ๊ฒ ๋ฉ๋๋ค. ๋ํ ํ ์คํธ ์๋๋ฆฌ์ค๋ฅผ ์์ฑํ๋ฉด์ ๋ค์ํ ์์ธ์ฌํญ์ ๋ํด ์๊ฐํด ๋ณผ ์ ์์ต๋๋ค. ์ด๋ ๊ฐ๋ฐ ์งํ ์ค ์ํํธ์จ์ด์ ์ ๋ฐ์ ์ธ ์ค๊ณ๊ฐ ๋ณ๊ฒฝ๋๋ ์ผ์ ๋ฐฉ์งํฉ๋๋ค.
๋๋ฒ๊น ์๊ฐ์ ๋จ์ถ
๊ธฐ๋ณธ์ ์ผ๋ก ๋จ์ ํ ์คํธ ๊ธฐ๋ฐ์ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ ์ถํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์์ ๋ ๊ฐ๊ฐ์ ๋ชจ๋๋ณ๋ก ํ ์คํธ๋ฅผ ์งํํด๋ณด๋ฉด ๋ฌธ์ ์ ์ง์ ์ ์ฝ๊ฒ ์ฐพ์๋ ๋๋ค. ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ ์ง์ ์ DB์์ญ, Application์์ญ, Data์์ญ, Memory์์ญ ๋ฑ ๋ค์ํ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์์ญ์ ํตํฉ ํ ์คํธํ๊ฒ ๋๋ฉด ์ฝ๊ฒ ๋ฌธ์ ์ง์ ์ ์ฐพ์ ์ ์์ต๋๋ค.
**๋จ์ ํ ์คํธ : ํ ๋จ์(์ผ๋ฐ์ ์ผ๋ก class)๋ง์ ํ ์คํธ ํ๋ ๊ฒ
์ ์ง ๋ณด์์ ์ฉ์ด์ฑ
TDD ๊ฐ๋ฐ๋ก ์ธํด ํญ์ ํ ์คํธ ์์๋ค์ด ์ฌ์ฉ์ ๊ด์ ์ผ๋ก ์ ์๋๊ณ ์งํ๋๊ธฐ ๋๋ฌธ์ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ํ๋ฆ์ด ๋ช ํํด์ง๊ณ ์ถํ ๊ตฌ์กฐ์ ๋ณ๊ฒฝ ๋ฐ ์์ค ์์ ์ ๊ตฌ์กฐ๋ฅผ ์ฝ๊ฒ ํ์ ํ๊ณ ๋น ๋ฅธ ์์ ์ด ๊ฐ๋ฅํด์ง๋๋ค. ๋๋ถ์ด ์ฌ์ฌ์ฉ ํ ์คํธ๋ ์ฝ๊ฒ ๊ฐ๋ฅํด์ง๋๋ค.
ํ ์คํธ ๋ฌธ์์ ๋์ฒด ๊ฐ๋ฅ
TDD๋ฅผ ๊ตฌํํ๊ฒ ๋ ๊ฒฝ์ฐ์ ํ ์คํ ์ ์๋ํ ์ํด๊ณผ ๋์์ ๋ณด๋ค ์ ํํ ํ ์คํธ ๊ทผ๊ฑฐ๋ฅผ ์ฐ์ถํ ์ ์์ต๋๋ค.
TDD์ ๋จ์
์์ฐ์ฑ ์ ํ
TDD๋ฅผ ์ฌ์ฉํ์ ๋์ ์ด๊ธฐ ๋น์ฉ์ TDD๋ฅผ ์ฌ์ฉํ์ง ์์์ ๋๋ณด๋ค ํฌ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด์ ์ฝ๋๋ฅผ ํ ์คํธ ํ๊ธฐ ์ํ ์ฝ๋๋ฅผ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ถ๊ฐ๋ก ์์ฑํด์ผ ํ๋ค๋ ์ ์์ ์๊ฐ์ด ๋์ด๋๊ฒ ๋์ง๋ง, ์ผ์ ์์ ์ ์ง๋๋ฉด ์๊ฐ ๋๋น ๋น์ฉ์ด ๋ ์ปค์ง์ง ์๊ณ ์ผ์ ํ๊ฒ ์ ์ง๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ ์ฒด์ ์ผ๋ก ๋ดค์ ๋ ๋น์ฉ์ด ์ ์ง์ ์ผ๋ก ๋์ด๋์ง ์์ต๋๋ค.
(์ด๋ฌํ ํน์ง ๋๋ฌธ์ ๋ฉ๊ธฐ์ผ์ด ์ค์ํ SI์ ์ฒด์์๋ TDD ๋ฐฉ์์ ์ ์ฌ์ฉํ์ง ์๋๋ค๊ณ ํฉ๋๋ค.)
http://clipsoft.co.kr/wp/blog/tddtest-driven-development-%EB%B0%A9%EB%B2%95%EB%A1%A0/
https://hanamon.kr/tdd%EB%9E%80-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%A3%BC%EB%8F%84-%EA%B0%9C%EB%B0%9C/
https://media.fastcampus.co.kr/knowledge/dev/tdd/
https://m.blog.naver.com/suresofttech/221569611618
'CS > Design Pattern' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์] SOLID๋? (3) | 2023.05.23 |
---|---|
[Design Pattern] DDD(๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ)๋? (0) | 2022.10.26 |
[ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์] ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ด๋? (0) | 2022.10.01 |
[ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์] OOP์ FP (0) | 2022.07.03 |
[Design Pattern] GoF(Gang of Four) ๋์์ธ ํจํด ์ข ๋ฅ (0) | 2022.06.28 |
- Total
- Today
- Yesterday
- ์๊ณ ๋ฆฌ์ฆ
- ์ฝ๋ฉํ ์คํธ
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
- ๋ ์์ปฌ ํ๊ฒฝ
- ํ๋กํ ์ฝ
- ํ๋ก๊ทธ๋๋จธ์ค
- ์๋ฐ์คํฌ๋ฆฝํธ
- JavaScript
- ๋ฐฑ์ค javascript
- ํฌํฌ์ธํฐ
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- ๋ฐฑ์ค
- ๋์์ธ ํจํด
- http
- ์ ์ญ ๋ณ์
- ์๋ฐ
- ๋ฐฑ์ค node.js
- fp
- ํ๋กํผํฐ
- ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ deep dive
- ์นด์นด์ค ์ธํด
- git
- ๋คํธ์ํฌ
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
- ์ด๋ถํ์
- map
- 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด
- ์ด์์ฒด์
- TDD
- Baekjoon
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |