DevLog ๐Ÿ˜ถ

[TDD] ์ž๋ฐ” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ, ๋‹จ์œ„ ํ…Œ์ŠคํŠธ, ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์–ด๋ ค์šด ๋ถ€๋ถ„ (feat. ์ž๋™์ฐจ ๊ฒฝ์ฃผ ๊ฒŒ์ž„) ๋ณธ๋ฌธ

โœ๏ธ/Java

[TDD] ์ž๋ฐ” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ, ๋‹จ์œ„ ํ…Œ์ŠคํŠธ, ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์–ด๋ ค์šด ๋ถ€๋ถ„ (feat. ์ž๋™์ฐจ ๊ฒฝ์ฃผ ๊ฒŒ์ž„)

dolmeng2 2023. 2. 14. 00:13

์šฐํ…Œ์ฝ” ์ˆ˜์—… ๋“ค์—ˆ๋˜ ๋‚ด์šฉ ์ค‘์—์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋‚ด ์ƒ๊ฐ์„ ์ •๋ฆฌํ•˜๊ณ  ์‹ถ์–ด์„œ ์ž‘์„ฑํ•˜๋Š” ๊ธ€!

 


โœจ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์˜ ๋ฒ”์œ„

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” ์–ด๋Š ์ •๋„๋กœ ์ž‘๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ๋ ๊นŒ ๊ณ ๋ฏผ์„ ๋งŽ์ด ํ–ˆ๋‹ค. ์‚ฌ์‹ค ์ด์ „์—๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๊ฑฐ์˜ ์ž‘์„ฑํ•œ ๊ฒฝํ—˜๋„ ์—†๊ณ , given-when-then๋งŒ ๊ตฌ๊ตฌ์ ˆ์ ˆ ์•Œ๊ณ  ์žˆ์—ˆ์–ด์„œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์˜ ๋ฒ”์œ„๊นŒ์ง€๋„ ์ œ๋Œ€๋กœ ์ƒ๊ฐํ•ด ๋ณธ ์  ์—†์—ˆ๋‹ค. (์™€ ์ง„์งœ ์ž๋ž‘์ด๋‹ค!)

๊ฐœ์ธ์ ์ธ ์ƒ๊ฐ์œผ๋กœ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” ํ•ด๋‹น ๊ฐ์ฒด์˜ public ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด์„œ๋Š” ์ „๋ถ€ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋Š” ๊ฒŒ ๋งž๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๋ฌผ๋ก , private ๋ฉ”์„œ๋“œ๋Š” public์—์„œ ํ˜ธ์ถœํ•ด์„œ ๊ฐ„์ ‘์ ์œผ๋กœ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

 

์ดˆ๋ฐ˜์— ํŽ˜์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง„ํ–‰ํ•  ๋•Œ, private ๋ฉ”์„œ๋“œ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋ ค๊ณ  ๋ฆฌํ”Œ๋ž™์…˜๊นŒ์ง€ ์จ๊ฐ€๋ฉด์„œ ์ง„ํ–‰ํ–ˆ๋‹ค.

์šฐ์„ , Cars์˜ ๊ฒฝ์ฃผ์— ๋Œ€ํ•œ ๋ฉ”์„œ๋“œ์ด๋‹ค. Cars๋Š” Car์— ๋Œ€ํ•œ ์ผ๊ธ‰ ์ปฌ๋ ‰์…˜ ๊ฐ์ฒด์ด๋‹ค.

์š”๊ฑฐ๋Š” Car์˜ ์›€์ง์ž„์— ๋Œ€ํ•œ ๋ฉ”์„œ๋“œ์ด๋‹ค.

์ง€๊ธˆ ๋ณด๋‹ˆ๊นŒ ์ง„์งœ ์ด๊ฒŒ ๋ญ์ง€...? ๋ผ๋Š” ์ƒ๊ฐ๋ฐ–์— ์•ˆ ๋“ ๋‹ค. ์‚ฌ์‹ค ์ด๋ฒˆ ๊ณผ์ œ์—์„œ ํ•ต์‹ฌ ๋„๋ฉ”์ธ ๋กœ์ง์ธ '์ž๋™์ฐจ ์ „์ง„'์— ๋Œ€ํ•œ ๊ฒƒ์ธ๋ฐ, ๋‚ด๋ถ€์—์„œ ๋žœ๋ค ๋„˜๋ฒ„๋ฅผ ์ƒ์„ฑํ•ด์ฃผ๋ฉด์„œ ์ด์— ๋Œ€ํ•ด์„œ ํ…Œ์ŠคํŠธ๊ฐ€ ํ•˜๊ธฐ ํž˜๋“  ๊ฒƒ์ด์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ €๋ ‡๊ฒŒ ๋ฆฌํ”Œ๋ž™์…˜์„ ํ†ตํ•ด ์ ‘๊ทผํ•˜๊ณ , ์ง์ ‘์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด์ฃผ๋Š” ์‹์œผ๋กœ ์ง„ํ–‰์„ ํ•˜๊ฒŒ ๋œ ๊ฒƒ์ด๋‹ค. (๋ฌผ๋ก  ์ ˆ๋Œ€ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์•ˆ ๋œ๋‹ค.) ์˜ค๋ฅธ์ชฝ ์—ญ์‹œ ์šฐ์Šนํ•œ ์ž๋™์ฐจ๋ฅผ ๋ฝ‘๋Š” ๊ฒƒ์ธ๋ฐ,  ๋‚ด๋ถ€์ ์œผ๋กœ ์œ„์น˜๊ฐ€ ์„ธํŒ…๋˜์–ด ์žˆ๋Š” ์ž๋™์ฐจ๋ฅผ ์–ป์–ด์˜ฌ ์ˆ˜๊ฐ€ ์—†์–ด์„œ ์ €๋Ÿฐ ์‹์œผ๋กœ ์ง์ ‘ ํ•„๋“œ์— ๊ฐ’์„ ์„ธํŒ…ํ•ด์ฃผ๋Š” ์‹์œผ๋กœ ์ง„ํ–‰ํ–ˆ๋‹ค. 

๋‹น์—ฐํžˆ ๋ฆฌ๋ทฐ๋„ ์ด๋ ‡๊ฒŒ ๋ฐ›์„ ์ˆ˜๋ฐ–์— ์—†์—ˆ๋‹ค. ๋‚ด ๋ฌธ์ œ๋Š” ํฌ๊ฒŒ 2๊ฐ€์ง€์˜€๋‹ค.

1. ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ์—ญํ• ๊ณผ ์ฑ…์ž„์„ ์ œ๋Œ€๋กœ ๋‚˜๋ˆ„์ง€ ์•Š์€ ๊ฒƒ

2. ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์–ด๋ ค์šด ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ๋ถ„๋ฆฌํ•˜์ง€ ์•Š์€ ๊ฒƒ.

 

ํŠนํžˆ 1๋ฒˆ์€ ์ •๋ง ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ด์—ˆ๋‹ค. ๋ฆฌ๋ทฐ์–ด๋‹˜์ด ๋ง์”€ํ•ด์ฃผ์‹  ๊ฒƒ์ฒ˜๋Ÿผ, car๊ฐ€ ์›€์ง์ด๋Š”์ง€, ์›€์ง์ด์ง€ ์•Š์€์ง€์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ๊ตณ์ด cars๊นŒ์ง€ ์ƒ์„ฑํ•˜๋ฉด์„œ ์ง„ํ–‰ํ•  ํ•„์š”๊ฐ€ ์ „ํ˜€ ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

์ด๋•Œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•ด์„œ ๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ณด๋Š” ๊ณ„๊ธฐ๊ฐ€ ๋œ ๊ฒƒ ๊ฐ™๋‹ค. ๊ธฐ์กด์—๋Š” Cars์—์„œ random number์— ๋Œ€ํ•ด์„œ ์ž๋™์ฐจ๋ฅผ ์›€์ง์ผ์ง€ ๋ง์ง€ ํŒ๋‹จํ•˜๋„๋ก ํ–ˆ์ง€๋งŒ, Car์—๊ฒŒ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ํ•ด๋‹น ๊ฐ’์„ ๋„˜๊ฒจ์ฃผ๊ณ  ๊ฐ์ฒด๊ฐ€ ์ง์ ‘ ์›€์ง์ผ์ง€ ๋ง์ง€ ํŒ๋‹จํ•˜๋Š” ์‹์œผ๋กœ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. '๊ฐ์ฒด์—๊ฒŒ ์งˆ๋ฌธํ•˜๋ผ.' ๋ผ๋Š” ๊ฒƒ์„ ์ œ๋Œ€๋กœ ๊นจ๋‹ฌ์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ, ์ฝ”๋“œ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜์ •ํ•˜์˜€๋‹ค.

์ด ๋•๋ถ„์— ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋„ ์ด๋ ‡๊ฒŒ ๊ฐ„๋‹จํ•ด์กŒ๋‹ค. ์ •ํ™•ํ•˜๊ฒŒ ํ•ด๋‹น ์ž๋™์ฐจ์˜ ์›€์ง์ž„์— ๋Œ€ํ•ด์„œ๋งŒ ํŒ๋‹จํ•˜๋Š” ์ง„์ •ํ•œ '๋‹จ์œ„ ํ…Œ์ŠคํŠธ'๊ฐ€ ๋œ ๊ฒƒ์ด๋‹ค.

 

์•„๋ฌดํŠผ, ๋ง์ด ์กฐ๊ธˆ ์ƒŒ ๊ฒƒ ๊ฐ™์ง€๋งŒ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋Š” ํ•ด๋‹น ๊ฐ์ฒด์˜ ํ–‰์œ„์˜ ์ฑ…์ž„์„ ๋ช…ํ™•ํ•˜๊ฒŒ ์„ค๊ณ„ํ•œ ์ƒํƒœ๋กœ, ํ•ด๋‹น ๊ฐ์ฒด์˜ ํ•œ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด์„œ๋งŒ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๋งŒ์•ฝ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๊ฐ€ ์ง€๋‚˜์น˜๊ฒŒ ๋ณต์žกํ•ด์ง„๋‹ค๋ฉด, ๊ฐ์ฒด์˜ ์„ค๊ณ„๋ฅผ ๋‹ค์‹œ ์ˆ˜์ •ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ๊ฐ์ฒด๋Š” ๋ฌด์กฐ๊ฐ„ ํ•œ ๋ฒˆ์— ํ•œ ๊ฐ€์ง€ ์ผ๋งŒ ํ•˜๋„๋ก ํ•˜์ž๋Š” ๊ฒƒ!

 


โœจ ํ…Œ์ŠคํŠธ ๋ฉ”์„œ๋“œ์˜ ๋„ค์ด๋ฐ

์ด๊ฑฐ๋Š” ํŽ˜์–ด๋ž‘๋„ ์–˜๊ธฐ ๋‚˜๋ˆด๋˜ ๋ถ€๋ถ„์ด๊ณ , ๋„ค์˜ค๊ฐ€ ์ˆ˜์—… ์ค‘์— ์–ธ๊ธ‰๋„ ํ•ด์ฃผ์‹  ๋ถ€๋ถ„์ด์—ˆ๋‹ค. ์‚ฌ์‹ค ๋‚˜ ๊ฐ™์€ ๊ฒฝ์šฐ ํ…Œ์ŠคํŠธ ๋ฉ”์„œ๋“œ ์—ญ์‹œ given-when-then์œผ๋กœ ์„ ์–ธํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•œ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฉ”์„œ๋“œ์˜ ๋„ค์ž„์€ ํ•ด๋‹น ๋ฉ”์„œ๋“œ๊ฐ€ ๋ฌด์Šจ ์ผ์„ ํ•˜๋Š”์ง€ ์ด๋ฆ„๋งŒ ๋ณด๊ณ ๋„ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ์„ ์ •๋„๋กœ ์ž˜ ํ‘œํ˜„ํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, @DisplayName ์–ด๋…ธํ…Œ์ด์…˜์ด ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ช‡๋ช‡ ๋ถ„๋“ค์€ ๊ตณ์ด ๊ทธ๋ ‡๊ฒŒ ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๊ณ  ํ•˜์…จ๋‹ค. ๋ฌผ๋ก  ๋งž์ง€๋งŒ, ํ™”๋ฉด์— ๋„์›Œ์ง€๋Š” ์ด๋ฆ„์€ ํ•ด๋‹น ๋ฉ”์„œ๋“œ๊ฐ€ ๋ฌด์Šจ ์ผ์„ ํ•˜๋Š”์ง€ ์„œ์ˆ ํ•˜๋“ฏ์ด ํ’€์–ด์“ฐ๋Š” ๊ณต๊ฐ„์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ , ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ŠคํŠธ๋ฅผ ๋Œ๋ ธ์„ ๋•Œ (Intellij IDEA๋กœ ๋นŒ๋“œ ์‹œ) ํ•ด๋‹น ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•ด ํ•œ ๋ˆˆ์— ํ™•์ธํ•˜๋Š” ์šฉ๋„ ์ •๋„๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๋‚˜๋Š” ๋ฉ”์„œ๋“œ ๋„ค์ž„์œผ๋กœ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•ด๋‹น ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด ํŒ๋‹จํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋„ค์ด๋ฐ์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ์ชฝ์— ์ž‘๊ฒŒ ํ•œ ํ‘œ๋ฅผ ๋˜์ง€๊ณ  ์‹ถ๋‹ค.

 


โœจ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ

๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์‹œ ์ค‘์š”ํ•œ ๊ฑด ์ฒซ ๋ฒˆ์งธ๋กœ, ํ…Œ์ŠคํŠธํ•  ์ ๋‹นํ•œ ๊ฐ’์„ ์ฐพ๋Š” ๊ฒƒ์ด๋‹ค. ๋ฌด์ž‘์ • ์•„๋ฌด ๊ฐ’์ด๋‚˜ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ๋Š” ์ ์ด๋‹ค. 1~100๊นŒ์ง€์˜ 100๊ฐœ์˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค, ๊ฒฝ๊ณ„๊ฐ’์— ๋Œ€ํ•ด์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ๋” ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

 @ParameterizedTest
@ValueSource(ints = {0, 3})
@DisplayName("๋žœ๋ค๊ฐ’์ด 3 ์ดํ•˜๋ฉด ์ž๋™์ฐจ๊ฐ€ ์ •์ง€ํ•œ๋‹ค.")
    void givenThreeLessNumber_thenCarStop(int randomNumber) {
            // given
            int initPosition = car.getPosition();

            // when
            car.move(randomNumber);

            // then
            assertThat(car.getPosition())
            .isEqualTo(initPosition);
            }

๋‚˜ ๊ฐ™์€ ๊ฒฝ์šฐ ์ž๋™์ฐจ ์ •์ง€์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด 0, 3์— ๋Œ€ํ•ด์„œ๋งŒ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์˜€๋‹ค. ๋„๋ฉ”์ธ ์ œ์•ฝ ์‚ฌํ•ญ์ด 0~9 ์‚ฌ์ด์˜ ๊ฐ’์— ๋Œ€ํ•ด์„œ ํŒ๋‹จ์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ์ •์ง€์— ๋Œ€ํ•ด์„œ๋Š” 0~3, ์›€์ง์ž„์— ๋Œ€ํ•ด์„œ๋Š” 4~9์— ๋Œ€ํ•ด์„œ ์ง„ํ–‰ํ•˜์˜€๋‹ค. ์ด๋ ‡๊ฒŒ ๋ฒ”์œ„ ๋‚ด์—์„œ์˜ ์ตœ์†Œ, ์ตœ๋Œ€๊ฐ’์„ ๋„ฃ์–ด์„œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

 

๋‘ ๋ฒˆ์งธ๋กœ๋Š”, ๋‚ด๊ฐ€ ์–ด๋– ํ•œ ๋กœ์ง์„ ํ…Œ์ŠคํŠธํ•  ๊ฒƒ์ธ์ง€ ํŒ๋‹จํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด์ „์˜ ๋‚˜์œ ์ฝ”๋“œ (= ๋‚ด ์ฝ”๋“œ)๋ฅผ ๋ณธ ๊ฒƒ์ฒ˜๋Ÿผ, ์ž๋™์ฐจ๋ฅผ ์›€์ง์ด๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š”๋ฐ ๊ตณ์ด cars๋ฅผ ์ƒ์„ฑํ•˜๋ฉด์„œ๊นŒ์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ 2๊ฐ€์ง€๋ฅผ ์ƒ๊ฐํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

 

1. ์–ด๋–ค ๊ฐ์ฒด์˜ ์ฑ…์ž„์ธ๊ฐ€?

2. ํ•ด๋‹น ๊ฐ์ฒด์˜ ์–ด๋–ค ํ–‰์œ„๋ฅผ ํ…Œ์ŠคํŠธํ•  ๊ฒƒ์ธ๊ฐ€?

 

์ด๋ ‡๊ฒŒ ๋”ฑ 2๊ฐ€์ง€๋ฅผ ํ…Œ์ŠคํŠธ ํ•˜๋Š”๋ฐ ๋‹ค๋ฅธ ๊ฐ์ฒด๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด, ํ•œ ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ๊ฐ€ ์—ฌ๋Ÿฌ ์ผ์„ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ๊ฒ€์ฆํ•ด๋ด์•ผ ํ•œ๋‹ค. ๋ฌผ๋ก ! ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์˜ ์ด์•ผ๊ธฐ์ด๋‹ค. ๐Ÿ˜„ ๊ทธ๋ฆฌ๊ณ , ์ด๋ ‡๊ฒŒ ์ž‘์€ ๋‹จ์œ„์— ๋Œ€ํ•ด์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋‹ค ๋ณด๋ฉด ์ด์ „์— ํ…Œ์ŠคํŠธํ–ˆ๋˜ ํ•ญ๋ชฉ๊ณผ ๋น„์Šทํ•˜๊ฒŒ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•ด์„œ ๊ฐœ๋ฐœ์ ์œผ๋กœ๋„ ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ์˜ˆ์ธก์ด ์‰ฌ์›Œ์ง„๋‹ค. 

 

๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ์ฐธ ๊ธธ์–ด์กŒ๋‹ค. TDD๋Š” ๋‹ค์Œ ๋ฏธ์…˜ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋”๋” ๊ณต๋ถ€ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค! ๋” ๊น”๋”ํ•œ ์ฝ”๋“œ๋ฅผ ์œ„ํ•ด์„œ ํŒŒ์ดํŒ…...!

Comments