-
๐ธ TIL
ํ์ฌ์์ React Native + TypeScript ๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๋ค๋ฆ๊ฒ TDD๋ฅผ ๋์ ํ๊ฒ ๋์๋ค.
TDD์ ํ์์ฑ์ ๋๋ผ์ง ๋ชปํ๊ณ , ๊ทธ์ ์๊ตฌ์ฌํญ์ ๊ตฌํํ๊ธฐ ๊ธ๊ธํ๋ค๋ ํ๊ณ๋ก TDD ๋์ ์ ๋ท์ ์ผ๋ก ๋ฏธ๋ฃจ์๋๋ฐ ํ๋ก์ ํธ ๊ธฐ๋ฅ์ ํ๋ํ๋ ์ถ๊ฐํด ๋๊ฐ๋ฉด์ ๋ณต์กํ ๋ก์ง๋ค์ด ๋์ด๋๊ฒ ๋์๊ณ ๊ธฐ๋ฅ์ด ์ ๋๋ก ์๋ํ๊ณ ์๋์ง ์ผ์ผ์ด ํ ์คํธํ๋ ๊ฒ๋ ๋ฒ๊ฑฐ๋ก์์ก๋ค.
๐ ์ ๊ธฐ๋ฅ๊ตฌํ, ํ TDD
์ฒ์์๋ ๊ธฐ๋ฅ์ ๋จผ์ ๊ตฌํํ๊ณ ๋์ค์ TDD๋ฅผ ์์ฑํ์ฌ ํ ์คํธํ๋ ๋ฐฉ์์ ์ ์ฉํ์๋ค.
TDD์ ์๋ฏธ๋ "ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ" ์ธ๋ฐ ์ ๊ธฐ๋ฅ๊ตฌํ ํ TDD๋ฅผ ํ๋ค๋ ๊ฒ์ TDD์ ์กด์ฌ์๋ฏธ๋ฅผ ์๊ฒ ๋๋ ๊ฒ์ด๊ณ ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.
๊ธฐ๋ฅ์ ๋ค ๊ตฌํํ ํ ๋ชฐ์์ ์์ฑํ ํ ์คํธ ์ผ์ด์ค๋ ๋น์ฐํ 100% ์ฑ๊ณตํ๋ ์ผ์ด์ค๋ก ์์ฑํ ์ ๋ฐ์ ์์ ๋ฟ๋๋ฌ ์ด ์ฝ๋๋ฅผ ์ ์์ฑํ๋์ง ์๋ฏธ์กฐ์ฐจ ๋ช ํํด์ง ์ ์๋ค.
ํ ์คํธ์ผ์ด์ค์ ํต๊ณผ๋์ง ๋ชปํ๋ ์ฝ๋๋ฅผ ์์ฑํ์ฌ ์คํจ๋ฅผ ๋ง์ฃผํ๊ธฐ ์ซ์๋ ๊ฒ์ด๊ณ ๊ทธ์ " TDD๊ฐ ์ข๋ค๊ณ ํ๋๊น ๋ณด์ฌ์ฃผ๊ธฐ ์์ผ๋ก ๋ด ์ฝ๋์๋ ๋์ถฉ ์ฑ์ฌ๋ฃ์ด๋ณผ๊น? " ๋ผ๋ ์๊ฐ์ ํ๋ ๊ฒ์ด์๋ค.
๐ ์ TDD, ํ ๊ธฐ๋ฅ๊ตฌํ
TDD๋ฅผ ๋์ ํจ์ผ๋ก์จ ์ค๊ณ ๊ด์ ์์ ์ฌ๋ฌ ์ํฉ๋ค์ ์ด์ด๋๊ณ ๋ณด๊ฒ๋๋๋ฐ ์ด๋ฌํ ์ด๋ฆฐ ์ค๊ณ ๋ฐฉ์์ด ์์ ์ฑ ๋๊ณ ํ์ฅ์ฑ ๋์ ์ฝ๋๋ฅผ ์์ฑํ๋๋ฐ ๋์์ ์ฃผ์๊ณ ์ค์ ์ฝ๋์ ๋ํ ๋ช ํํ ์ฒ๋ฆฌ๋ฅผ ์ค๊ณํจ์ผ๋ก์จ ๊ณผ๋ํ ์ค๊ณ๋ฅผ ํผํ ์ ์์๋ค.
๋ด๊ฐ ์์ฑํ ์ฝ๋์ ๋ํด์ ์๊ฐํ๊ฒ ๋๊ณ ์ด ์ฝ๋๋ฅผ ์ ์์ฑํ ๊ฒ์ธ์ง์ ๋ํด ์๋๊ฐ ์ข ๋ ๋ช ํํด์ง๋ ์ฅ์ ๊ณผ ํ ์คํธ์ผ์ด์ค๋ฅผ ๋ฏธ๋ฆฌ ์ค๊ณํจ์ผ๋ก์จ ์์๋ผ์ธ์ด ๊ทธ๋ ค์ง๋ค๋ ์ฅ์ ์ ๋๋ ์ ์์๋ค.
๋ฌผ๋ก ํ ์คํธ์ผ์ด์ค๋ฅผ ์์ฑํจ์ผ๋ก์จ ์ด๋ฐ์ ์๊ฐ์ ํ ์ ํ๊ฒ ๋๊ธด ํ์ง๋ง TDD๋ฅผ ์์ฑํ๋ค๋ฉด ์ค๊ณ์ธก๋ฉด์์๋ ์ข์ ์ค๊ณ๋ฅผ ํ ์ ์์ ๊ฒ์ด๊ณ ๊ฐ๋ฐ ์์ฐ์ฑ ๋ํ ํฅ์์์ผ์ค ๊ฒ์ด๋ค.
ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ ๋์๋ ๋๋ถ๋ถ ์์ ๋จ์๋ก ๋ง๋ค๊ธฐ ๋๋ฌธ์ ์ฝ๋๋ฅผ ๋ช ํํ๊ฒ ๋ถ๋ฆฌํ ์ ์๊ณ ๋ถ๋ฆฌ๋ ์ฝ๋๋ ์์ฐ์ค๋ฝ๊ฒ ๋ชจ๋ํ๊ฐ ๋์ด ๊ฐ๋ฐ์ ์งํํ๊ฒ ๋๋ค. ๋ํ ์๋ํ์ง ์์ ๊ฐ์ ์ ๋ฌํ์์ ๋, ํ์ ์คํฌ๋ฆฝํธ๊ฐ ์ถฉ๋ถํ ์น์ ํ ์๋ฌ๋ฅผ ๋ณด์ฌ์ฃผ๊ฒ ์ง๋ง ๋ ์์ ํ ์ฝ๋๋ณด๋ค ๋ ์์ ํ ์ฝ๋๋ฅผ ์ซ์ดํ๋ ๊ฐ๋ฐ์๋ ์์ํ ๋ ์ด ๊ฒ๋ ํฐ ์ฅ์ ์ด ๋ ์ ์๊ฒ ๋ค.
์์ง๊น์ง๋ ์ TDD์์ฑ ํ ๊ธฐ๋ฅ๊ตฌํ์ด ์ต์ํ์ง ์์์ ์ฝ๋๋ฅผ ์์ฑํ๋ค๋ณด๋ฉด ๋ด๊ฐ TDD๋ฅผ ์์ฑํ๊ณ ์๋ค๋ ์ฌ์ค์ ์์ด๋ฒ๋ฆฌ๊ฒ ๋์ง๋ง ๊พธ์คํ ์ต๊ดํ ํ๋ค๋ฉด ์ฃผ๋์ด ๊ฐ๋ฐ์์ธ ์ง๊ธ์ด TDD๋ฅผ ์ต๊ดํ ํ๊ธฐ์ ๋ฑ ์ข์ ์๊ธฐ์ผ ๊ฒ์ด๋ผ๊ณ ๋ฏฟ๋๋ค.
๋ง์น๋ฉฐ ๐ธ
TDD์ ์๋ฏธ๋ "ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ" ์ด๋ผ๋ ๊ฒ์ ์์ง ๋ง๊ณ ๊ธฐ๋ฅ๊ตฌํํ๊ธฐ ๊ธ๊ธํ์ฌ ๋ฌด์์ ์ฝ๋์์ฑ์ผ๋ก ๋ฌ๋ ค๋ค์ง ๋ง๊ณ ์ฐจ๊ทผ์ฐจ๊ทผ TDD๋ฅผ ์์ฑํ์ฌ ํ ์คํธ๊ฐ ๊ฐ๋ฐ์ ์ด๋์ด ๋๊ฐ ์ ์๋๋ก ํด์ผ๊ฒ ๋ค.
ํ ์คํธ ์ผ์ด์ค๊ฐ ์๋ชป ์ง์ฌ์ง๋ฉด ์กด์ฌ์ ์๋ฏธ๋ฅผ ์๊ฒ ๋์ด์ ์๊ฐ์ด ๋ง์ด ํ์ํ๋ค.
ํ์ง๋ง " ์ ์ง์ฌ์ง ํ ์คํธ ์ผ์ด์ค๋ฅผ ํต๊ณผํ๋ ์ข์ ์ค๊ณ " ๋ก ๋ถํฐ ์ค๋ ๊ธฐ์จ์ ๋๊ปด๋ณธ๋ค๋ฉด TDD๋ฅผ ๋์ ํ์ง ์์ ์ด์ ๊ฐ ์๋ค๊ณ ์๊ฐํ๋ค.
( ์ด๋ ๊ฒ TDD๊ฐ ์ข๋ค์ข๋ค ํด๋๊ณ ๋ด์ผ ์ถ๊ทผํด์ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด ๋ ๋ TDD ์์ฑ์ ๊น๋นกํ๊ฒ ์ง.............?....... ์ผ๋ฅธ ์ต๊ดํํด์ผ๊ฒ ๋ค..........^^................๐ )
'๊ฐ๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
API Documentation - PostMan (0) 2021.01.27 React-Navigation ํ๋ฉด ํฌ์ปค์ค ๊ฐ์ง ๋ฌธ์ ํด๊ฒฐ (6) 2020.11.25 ๐ useEffect VS useLayoutEffect ๐ (10) 2020.10.22 TypeScript ์ Interface ์ฌ์ฉํ๊ธฐ (0) 2020.10.21 Express (0) 2020.06.25