๐ ์ค๋ง ์์ง๋ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑ ์ ํ์๋์? โ๏ธ ๊ฐ๋ฐ์ ์ฒ์ ๋ฐฐ์ธ ๋๋ถํฐ TDD๋ก ์์์ ํ๋๋ผ๋ฉด ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ ๊ทธ๋ฆฌ ๋ถํธํ๊ฑฐ๋ ์ด๋ ต์ง ์์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ญ๋๋ค. ํ์ ์
๐ ์ค๋ง ์์ง๋ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑ ์ ํ์๋์? โ๏ธ ๊ฐ๋ฐ์ ์ฒ์ ๋ฐฐ์ธ ๋๋ถํฐ TDD๋ก ์์์ ํ๋๋ผ๋ฉด ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ ๊ทธ๋ฆฌ ๋ถํธํ๊ฑฐ๋ ์ด๋ ต์ง ์์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ญ๋๋ค. ํ์ ์์ ๊ฐ๋ฐ์ ํ๋ค ๋ณด๋ฉด ํ ์คํธ ์ฝ๋์ ๋ํ ๋ ผ์๊ฐ ๋ฌด์กฐ๊ฑด ๋์ค๊ธฐ ๋ง๋ จ์ด๊ณ ๋๋ถ๋ถ์ ์ ๋๋ก ์์ฑ๋์ง ์๊ณค ํ๋๊น์. ์ ์ญ์ ํ ์คํธ ์ฝ๋์ ์ค์์ฑ์ ๋ชจ๋ฅด๋ค ์ผ๋ง ์ ๋ถํฐ ๋ผ์ ๋ฆฌ๊ฒ ๋๋ผ๊ณ ๋ฌด์กฐ๊ฑด ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ ค ํฉ๋๋ค. ํ ์คํธ ์ฝ๋์ ๊ทธ์ ํด๋นํ๋ ์ฝ๋์ ์์ฑ ์์๋ ๋์ ๋ฐ๋ผ ๋ค๋ฅด์ง๋ง์. ํ ์คํธ ์ฝ๋๋ ์ ๋ง ์ค์ํฉ๋๋ค. ์๋ ์ค์ํ๋ค๊ณ ๋งํ๋ ๊ฒ ์์ฒด๊ฐ ์ด์ํ ์ ๋๋ก ์ค์ํ์ฃ . ๋ง์ฝ ๋ฉ์๋๋ฅผ ๋ง๋ค์๋๋ฐ ๊ทธ ์ดํ๋ก ์ ๋ ๋ฐ๋์ง ์์ ์ฝ๋๋ผ๋ฉด, input์ ๋ํ ์์ธ ์ฒ๋ฆฌ๋ฅผ ์ด๋ฏธ ๋ค ์๊ณ ์๋ค๋ฉด ํ ์คํธ ์ฝ๋๊ฐ ํ์ ์์ ์๋ ์๊ฒ ์ต๋๋ค๋ง ํ์ค์ ์ผ๋ก๋ ๋ณ๊ฒฝ๋ ์๋ฐ์ ์๊ณ ์์ํ๋ input/output ์ ๋์ด์๋ ์์ธ๊ฐ ๋ฐ์ํ๊ธฐ ๋ง๋ จ์ ๋๋ค. ๊ทธ์ ๋ํ ์ฝ๋์ ์ ๋ขฐ๋๋ฅผ ์ฑ ์์ ธ์ฃผ๋ ์ฅ์น๊ฐ ๋ฐ๋ก ํ ์คํธ ์ฝ๋๋ผ ์๊ฐ์ด ๋ฉ๋๋ค. ๋ฌผ๋ก , ํ ์คํธ ์ฝ๋๊ฐ ์ค์ํ์ง๋ง ํ์๋ค ๋ชจ๋๊ฐ ํ ์คํธ ์ฝ๋์ ์ค์์ฑ์ ์ดํดํด์ผ์ง๋ง ํ ์คํธ ์ฝ๋ ๋ํ ์ ์ง ๋ณด์๊ฐ ์ ๋๋๋ฐ ๊ทธ๋ ์ง ์๊ณ ์๋ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ ์๋ฏธ๊ฐ ์์ ์๋ ์๊ฒ ์ฃ . ๊ทธ๋ฐ ์๋ฏธ์์ ์ด ๊ธ์ ํตํด ํ ์คํธ ์ฝ๋์ ์ค์์ฑ์ ํ ๋ถ๋ค๊ณผ ์ด์ผ๊ธฐํด ๋ณด๋ ๊ฑด ์ด๋จ๊น์?