ํšŒ๊ณ 

์ฝ”๋“œ์ˆจ 2๊ธฐ ๊ทธ 3๋‹ฌ๊ฐ„์˜ ์—ฌ์ •!

seungmin2 2020. 12. 26. 15:13

๐Ÿ™„ ์–ด์ฉŒ๋‹ค๊ฐ€ ์‹ ์ฒญํ•˜๊ฒŒ ๋์–ด?

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

์„œ๋ก ์ด ๋งค์šฐ ๊ธธ์—ˆ๋‹ค.
์ด์ œ ๊ทธ 3๋‹ฌ ๋™์•ˆ์˜ ํ—˜๋‚œํ•˜๊ณ  ๊ฝค๋‚˜ ๊ณ ํ†ต์Šค๋Ÿฌ์› ๋˜ ์—ฌํ–‰๐Ÿš€์„ ๊ธฐ๋กํ•ด๋ณด๋ฉฐ ๋‹ค์‹œ ๋‚˜๋ฅผ ๋Œ์•„๋ณด๊ณ  ์Šค์Šค๋กœ๋ฅผ ๋‹ค๋…์ด๋ฉฐ ๋™๊ธฐ๋ถ€์—ฌ๋ฅผ ์–ป๊ณ  ์•ž์œผ๋กœ์˜ ๋ฐฉํ–ฅ์„ฑ์„ ์ œ์‹œํ•ด๋ณด๋ ค ํ•œ๋‹ค.

๐Ÿคฆโ€โ™‚๏ธ ์–ด๋ฆฌ๋ฒ„๋ฆฌ.. ๊ทธ๋ ‡๊ฒŒ ํ˜๋Ÿฌ๊ฐ„ 2์ฃผ

์›๋ž˜ ์ฒ˜์Œ์€ ๋‹ค ์–ด๋ ต๋“ฏ์ด ํ•ด๋ณธ ์  ์—†๊ณ , ์–•๊ฒŒ ์•Œ๊ณ  ์žˆ๋˜ ์ง€์‹์œผ๋กœ ์•Œ์•„๊ฐ€ ๋ณด๋ ค ํ•˜๋‹ˆ ์—ญ์‹œ ์ฒ˜์Œ 2์ฃผ๋Š” ์‰ฝ๊ฒŒ ์ง„ํ–‰๋˜์ง€ ์•Š์•˜๋‹ค.
Github์— PR(Pull Request) ์ œ๋Œ€๋กœ ํ•ด๋ณธ ์  ์—†์—ˆ๊ณ , ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•ด์„œ๋„ ์—ญ์‹œ ๊ณ ๋ฏผํ•ด๋ณธ ์  ์—†์—ˆ๋‹ค.

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

๐Ÿ“Œ 2์ฃผ๊ฐ„์˜ ๊ณผ์ œ PR 1์ฃผ์ฐจ-1, 1์ฃผ์ฐจ-2, 2์ฃผ์ฐจ-1, 2์ฃผ์ฐจ-2

๊ณผ์ œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›๊ณ  ๋ฐ›์„ ๋ฆฌ๋ทฐ์— ๋Œ€ํ•ด์„œ ์ˆ˜์ •ํ•˜๊ณ  ๋‹ค์‹œ ์ปค๋ฐ‹ํ•˜๊ณ ๋ฅผ ๋ฐ˜๋ณตํ•˜๋ฉฐ ์ฒ˜์Œ์— ์งฐ๋˜ ์ฝ”๋“œ๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋ณด๊ธฐ ์ข‹์•„์ง„ ์ฝ”๋“œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
์ˆ˜์ • ํ›„ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ฐ›๋Š” ์‚ฌ์ดํด์„ ๋ฐ˜๋ณตํ•˜๋ฉฐ 1์ฃผ์ผ 2์ฃผ์ผ์ด ์ง€๋‚ฌ์„ ๋•Œ ์ด์ œ ์ข€ ์ฝ”๋“œ์ˆจ์˜ ๊ณผ์ œ ์ง„ํ–‰ ํ˜•ํƒœ๋ฅผ ์ ์‘ํ•ด ๊ฐˆ ๋•Œ ์ฆ˜์ด์˜€๋‹ค.
๊ฐ€์žฅ ๊ณ ํ†ต์Šค๋Ÿฌ์› ๋˜ ๊ทธ ๋…€์„์ด ์ฐพ์•„์™”๋‹ค..๐Ÿ˜ข

๐Ÿ˜‚ ๋ชจ๋“  ๊ณ ํ†ต์˜ ๊ทผ์› TDD(ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ)

  • ์‚ฌ์‹ค ์ฝ”๋“œ์ˆจ ๊ณผ์ •์„ ์•Œ๊ธฐ ์ „, TDD(Test-Driven Development) ์˜ T์ž๋„ ๋ชฐ๋ž๋‹ค.
    ๊ทธ๋ž˜์„œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์งœ๊ธฐ ์œ„ํ•ด ์‹œ๊ฐ„์„ ๋” ๋งŽ์ด ํˆฌ์žํ–ˆ์–ด์•ผ ํ–ˆ๊ณ , ๋จธ๋ฆฌ๋ฅผ ์ฅ์–ด์งœ๋ฉฐ ๊ณ ํ†ต์˜ ์—ฐ์†์ด ๋  ์ˆ˜๋ฐ–์— ์—†์—ˆ๋‹ค.
    2์ฃผ์ฐจ ๋•Œ ๋งŒ๋“ค์—ˆ๋˜ ๊ฐ„๋‹จํ•œ TO-DO ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๋ผ๋Š” ๊ฒƒ์ด์—ˆ๋‹ค.

  • 3์ฃผ์ฐจ๋Š” TDD ์‚ฌ์ดํด ์ ์šฉํ•˜๊ธฐ ์ „ ํ…Œ์ŠคํŠธ์— ์นœํ•ด์ ธ ๋ณด๊ธฐ ์œ„ํ•ด์„œ ์•„๋งˆ TDD๋ฅผ ์ œ์™ธํ•œ ๊ณผ์ œ์˜€๋‚˜ ์‹ถ์—ˆ๋‹ค.
    ์•„์ƒฌ๋‹˜์˜ ๊ฐ•์˜ ์˜์ƒ๋„ ๋ณด์•˜์ง€๋งŒ, ์ƒ๊ฐ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์นœํ•ด์ง€์ง€ ๋ชปํ–ˆ๋‹ค.๐Ÿ˜ข
    ํŠนํžˆ describe-context-it์ด ๊ตฌ์กฐ์™€ mocking ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ์ ..๋“ฑ
    ํ•˜์ง€๋งŒ ๋‚˜์—๊ฒŒ๋Š” ๋ˆ„๊ฐ€ ์žˆ๋˜๊ฐ€. ์นœ์ ˆํžˆ ๋‹ตํ•ด์ฃผ์‹œ๋Š” ๊ธฐํ˜„๋‹˜..๐Ÿ‘

๐Ÿ“Œ 3์ฃผ์ฐจ PR

  • ๊ทธ๋ ‡๊ฒŒ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ ์ด๋Ÿฐ ๊ฑด๊ฐ€? ๋ผ๋Š” ๋Š๋‚Œ์ด ๋“ค ๋•Œ์ฏค 4์ฃผ์ฐจ๋ถ€ํ„ฐ ์‹œ์ž‘๋œ TDD ์‚ฌ์ดํด์„ ์ ์šฉํ•˜๋ผ๋Š” ๊ณผ์ œ์˜€๋‹ค.

์•„๋ฌด ์ƒ๊ฐ ์—†์ด ๊ฐœ๋ฐœํ–ˆ๋˜ ๋‚˜์—๊ฒ TDD๋ฅผ ์™œ ํ•ด์•ผ ํ• ๊นŒ? ๋ผ๋Š” ์˜๋ฌธ์ด ๋“ค ์ˆ˜๋ฐ–์— ์—†์—ˆ๋‹ค.
ํ…Œ์ŠคํŠธ๋ฅผ ๋จผ์ € ๊ตฌํ˜„ํ•˜๊ณ (red), ์‹ค์ œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„(green) ํ›„, ๋ฆฌํŒฉํ† ๋ง(refactoring)์„ ํ•˜๋ผ๋Š” ์ ์€ ์ต์ˆ™์ง€ ์•Š์•˜๋‹ค.
์•„๋‹ˆ ๋ญ๋ผ๊ณ ?๐Ÿค” ํ…Œ์ŠคํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ํ…Œ์ŠคํŠธ๊ฐ€ ๊นจ์ง€๊ฒŒ ํ•œ ๋‹ค์Œ, ๊ทธ์— ๋งž์ถฐ์„œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ๋‹ค๋‹ˆ.. ์ฒ˜์Œ์€ ์„ค๋ช…์„ ๋“ค์–ด๋„ ์ดํ•ด๊ฐ€ ๊ฐ€์ง€ ์•Š์•˜์ง€๋งŒ, ๊ทธ๋ž˜๋„ ์—ญ์‹œ ๋ถ€๋”›ํ˜€๋ณด๊ณ  ๊นจ๋‹ซ๋Š” ๊ฒŒ ์•„๋‹ˆ๊ฒ ๋Š”๊ฐ€..! ์ผ๋‹จ ํ•ด๋ณด์ž! ๐Ÿ˜ค

๊ทธ๋ ‡๊ฒŒ ์ง„ํ–‰๋œ TDD ์‚ฌ์ดํด์— ๋งž์ถฐ ๊ทธ์— ๋งž๋Š” ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ์ ๊ณ  ๊ณผ์ œ๋ฅผ ์ˆ˜ํ–‰ํ•˜์˜€๋‹ค.
๊ทธ๋กœ ์ธํ•ด ํ™•์‹คํžˆ ํ•˜๋‚˜์˜ ์ปค๋ฐ‹๋‹น ์ž‘์—…์„ ์ž˜๊ฒŒ ๋‚˜๋ˆ ์„œ ํ•˜๋‹ค ๋ณด๋‹ˆ 4์ฃผ์ฐจ ์ปค๋ฐ‹์ด 69๊ฐœ๋‚˜ ๋˜์—ˆ๋‹ค.

์ด๋•Œ๋ถ€ํ„ฐ๋Š” ๋Š๊ปด์กŒ๋˜ ๊ฑด TDD๋Š” ๊ณ ํ†ต์˜ ์—ฐ์†, ๊ณผ์ œ๋Š” TDD๋ฅผ ์œ„ํ•œ ๊ฒƒ์ด๋ผ ํ•ด๋„ ๊ณผ์–ธ์ด ์•„๋‹ˆ์—ˆ๋‹ค๋Š” ์ ..!๐Ÿ˜

์‚ฌ์‹ค TDD๋กœ ๊ณผ์ œ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ๋„ ์ด๋ ‡๊ฒŒ ํ•˜๋Š” ๊ฒŒ ๋งž๋Š” ๊ฑด๊ฐ€..? ๋ผ๋Š” ์ƒ๊ฐ์ด ๊ณ„์† ๋“ค์—ˆ๋‹ค. ํ•˜๋ฉด์„œ๋„ ์†”์งํžˆ ํ™•์‹ ์€ ์—†์—ˆ๊ณ , ๊ทธ๋ƒฅ ํ•˜๋ผ๋‹ˆ๊นŒ ์ผ๋‹จ ํ•ด๋ด์•ผ์ง€๋ผ๋Š” ์ƒ๊ฐ์ด ์—†๋‹ค๊ณ  ํ•œ๋‹ค๋ฉด ๊ทธ๊ฑด ๋‚˜์œ ๊ฑฐ์ง“๋ง์ด๋‹ค.
๊ทธ๋ ‡๊ธฐ์— TDD์˜ ์˜๋ฌธ์ ์€ ์—ฌ์ „ํžˆ ๊ฐ€๋“ํ•˜๋‹ค ๋ชปํ•ด ํ˜๋Ÿฌ๋„˜์ณค๋‹ค.

4์ฃผ์ฐจ-1 PR
4์ฃผ์ฐจ-2 PR

4์ฃผ์ฐจ๋ถ€ํ„ฐ๋Š” ๋ฌด์กฐ๊ฑด TDD๋กœ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด์•ผ ํ–ˆ๊ณ , ๋˜ํ•œ ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ ์—ญ์‹œ 100%๋ฅผ ๋‹ฌ์„ฑํ•ด์•ผ ํ–ˆ๋‹ค.
์‚ฌ์‹ค ๋ฆฌ์•กํŠธ๋Š” ์–ด๋Š ์ •๋„ ๋‹ค๋ฃฐ ์ค„ ์•Œ์•˜์ง€๋งŒ, ๊ทธ ๋ฆฌ์•กํŠธ๋Š” ๋‹จ์ˆœํžˆ "๋„๊ตฌ" ์˜€์„ ๋ฟ ์ค‘์š”ํ•˜์ง€ ์•Š์•˜๋‹ค. ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ค„ ์•Œ๋ฉด ๋ญํ•˜๋‹ˆ.. ๊ทธ๊ฑด ์ค‘์š”ํ•˜์ง€ ์•Š๋Š”๋ฐ TDD๋ผ๋Š” ํฐ ์‚ฐ์ด ๋‚˜๋ฅผ ๋ง‰๊ณ  ์žˆ๋Š”๋ฐ! ๐Ÿ˜ข

๊ทธ๋ ‡๊ฒŒ 4์ฃผ์ฐจ๊ฐ€ ์ง€๋‚˜๊ณ  5์ฃผ์ฐจ...8์ฃผ์ฐจ๊นŒ์ง€ TDD์™€ ์ต์ˆ™ํ•ด์ง€๊ธฐ ์œ„ํ•ด ๋งค์ผ ๊พธ์ค€ํžˆ ๊ณต๋ถ€ํ•˜๊ณ  ์นœํ•ด์ง€๊ธฐ ์œ„ํ•ด ๋งŽ์€ ๊ณ ํ†ต์„ ๋Š๋ผ๋ฉฐ ๋…ธ๋ ฅํ–ˆ๋˜ ๊ฑฐ ๊ฐ™๋‹ค.
TDD ์‚ฌ์ดํด์„ ์ง€ํ‚ค๊ธฐ ์œ„ํ•ด์„œ ์ปค๋ฐ‹์€ ๊ฐ PR๋‹น 100๊ฐœ ์ •๋„์˜ ์ปค๋ฐ‹์ด ์กด์žฌํ•˜๊ฒŒ ๋˜์—ˆ๊ณ , ๊ทธ๋งŒํผ ๋ฐ›๋Š” ์ฝ”๋“œ๋ฆฌ๋ทฐ๊ฐ€ ๋งŽ์„ ์ˆ˜ ์žˆ๋˜ ๊ฑฐ ๊ฐ™๋‹ค.

์ด ๊ณผ์ •์—์„œ ์ ์  TDD ์‚ฌ์ดํด์— ์ต์ˆ™ํ•ด์กŒ๊ณ , ์–ด๋Š ์ •๋„ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์งค ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ๋˜ํ•œ, ์ฒ˜์Œ์— ๋“ค์—ˆ๋˜ ์™œ TDD๋ฅผ ํ• ๊นŒ? ๋ผ๋Š” ์ƒ๊ฐ์€ ์ ์  ์‚ฌ๋ผ์ ธ ๊ฐ€๊ณ  ์žˆ์—ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ๋ฆฌํŒฉํ† ๋งํ•  ๋•Œ ์•„..๋ฆฌํŒฉํ† ๋งํ•˜๋‹ค๊ฐ€ ๊ธฐ์กด์˜ ๊ธฐ๋Šฅ์ด ์•ˆ ๋˜๋ฉด ์–ด๋–กํ•˜์ง€? ๋ผ๋Š” ์ƒ๊ฐ์„ ํ–ˆ์ง€๋งŒ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋‹ˆ ์ˆ˜์ •ํ–ˆ์„ ๋•Œ ์กฐ๋งˆ์กฐ๋งˆํ•œ ์ƒ๊ฐ ์—†์ด ์•ˆ์‹ฌํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ์žˆ๋Š” ํž˜์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ๋˜ํ•œ, ์ˆ˜์ •ํ•˜๋ฉด ๋‹น์—ฐํžˆ ํ…Œ์ŠคํŠธ๊ฐ€ ๊นจ์ง€๊ฒ ๊ณ , ๊นจ์ง€๋Š” ๋ถ€๋ถ„์„ ๋ฐ”๋กœ๋ฐ”๋กœ ํ™•์ธํ•˜๋ฉฐ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ๊ธฐ์กด๋ณด๋‹ค ๋” ๋น ๋ฅด๊ฒŒ ์˜ค๋ฅ˜๋ฅผ ์ฐพ์•„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

5์ฃผ์ฐจ PR
6์ฃผ์ฐจ PR
7์ฃผ์ฐจ PR
8์ฃผ์ฐจ PR

๐Ÿ™„ NO! ํšŒ๊ณ ! NO! Merge!

๋งค์ฃผ ๊ณผ์ œ๋ฅผ ๋๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” PR์„ Merge๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค.
ํ•˜์ง€๋งŒ ๊ณผ์ œ๋ฅผ ๋‹ค ์ˆ˜ํ–‰ํ–ˆ๋‹ค๊ณ  ํ•ด์„œ ๋์ด ์•„๋‹ˆ๋‹ค. ํšŒ๊ณ  ์—†์ด๋Š” ์ ˆ๋Œ€ merge๋ฅผ ํ•  ์ˆ˜ ์—†๋‹ค.

๊ทธ๋ž˜๋„ ํšŒ๊ณ  ์ž‘์„ฑ์— ๋Œ€ํ•œ ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋Š” ๊ฝค ๊ธ์ •์ ์ธ ์ƒ๊ฐ์ด์—ˆ๋‹ค.
๊ธ€์€ ๋งค์šฐ ๋ชป ์“ฐ์ง€๋งŒ, ๊นƒํ—ˆ๋ธŒ์— ๊ธฐ๋ก์„ ๋‚จ๊ธฐ๊ณ  ๋ธ”๋กœ๊ทธ ์“ฐ๋Š” ๊ฒƒ์„ ์ข‹์•„ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๊ฐ€์šด ํšŒ๊ณ  ์ž‘์„ฑ์ด์—ˆ๋‹ค.

ํšŒ๊ณ ๋ฅผ ์ž‘์„ฑํ•จ์œผ๋กœ์จ ๋งค์ฃผ ๊ณผ์ œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ํšŒ๊ณ ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๋งˆ๋‹ค ํ•œ ์ฃผ๋ฅผ ๋˜๋Œ์•„๋ณด๋Š” ๊ณ„๊ธฐ๊ฐ€ ๋œ๋‹ค. ํ•œ ์ฃผ ๋™์•ˆ ์–ด๋–ค ์ ์ด ์•„์‰ฌ์› ๊ณ , ์–ด๋–ค ๋ถ€๋ถ„์€ ์นญ์ฐฌํ•ด์ค„ ๋งŒํ•œ ์ผ์ธ์ง€๋ฅผ ๋‹ค์‹œ๊ธˆ ์ผ๊นจ์›Œ์ฃผ๊ณ  ๋งˆ๋ฌด๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. ๋˜ํ•œ, ๋งค์ฃผ ์ƒˆ๋กœ ์•Œ๊ฒŒ ๋œ ์ ๊ณผ ์•„์‰ฌ์šด ์ ์— ๋Œ€ํ•ด์„œ๋Š” ๋‹ค์Œ ์ฃผ์— ์–ด๋–ป๊ฒŒ ํ• ์ง€๋ฅผ ๊ณ„ํš๋„ ์„ธ์šฐ๊ฒŒ ํ•ด์ฃผ๋Š” ํฐ ์—ญํ• ์„ ํ•ด์ค€๋‹ค.

๐Ÿ“Œ 3๋‹ฌ ๋™์•ˆ์˜ ํšŒ๊ณ  ๋ชจ์Œ

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

๐Ÿš€ ๋งˆ์ง€๋ง‰์„ ๋ฉ‹์ง€๊ฒŒ ์žฅ์‹ํ•  4์ฃผ๊ฐ„์˜ ๋‚˜๋งŒ์˜ ํ”„๋กœ์ ํŠธ

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

  • ๋ชฉ์ˆจ ๊ฑธ๊ณ  ๋งŒ๋“ค์œผ๋ผ๋Š” ๋ง์”€.. ์ตœ์„ ์„ ๋‹คํ•ด ๋„์™€๋“œ๋ฆฌ๊ฒ ๋‹ค..

๊ทธ๋ ‡๊ฒŒ ์ˆ˜ํ˜• ๋‹˜์˜ ๋ง์”€์ด ์ƒ๊ฐ๋‚˜์„œ ๋  ๋•Œ๋กœ ๋ผ๋ณด์ž ํ•˜๋Š” ์‹ฌ๋ณด, ๊ทธ๋ฆฌ๊ณ  2๋‹ฌ ๋™์•ˆ ์‰ฌ์ง€ ์•Š๊ณ  ๋‹ฌ๋ ค์™”์ง€๋งŒ, ์ž ์„ ์ค„์ด์ง€ ์•Š์•˜์–ด. ์ž ์„ ๋”ฑ ํ•œ ์‹œ๊ฐ„๋งŒ ๋” ์ค„์—ฌ๋ณด์ž. ํ•œ ๋‹ฌ ๊ธˆ๋ฐฉ๊ฐ€. ๋ผ๋Š” ์ƒ๊ฐ์œผ๋กœ ์Šค์Šค๋กœ ๋™๊ธฐ๋ถ€์—ฌ๋ฅผ ์–ป๊ณ  ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ ์ฃผ์ œ๋ฅผ ๊ฒฐ์ •ํ•˜์˜€๋‹ค.

๊ฒฐ์ • ํ›„ ์ด์   ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•ด์•ผ์ง€~!๐Ÿ˜คํ•˜๋Š” ์ˆœ๊ฐ„ ์•„ ๋งž๋‹ค..์—ฌ๊ธด ์ฝ”๋“œ์ˆจ์ด์ง€..? ๊ทธ๋ƒฅ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜๋Š” ์—†์ง€! ๋ผ๋Š” ์ƒ๊ฐ์„ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ผ๊นจ์›Œ์ค€ ๊ทœ์น™? ๋“ค์„ ๋ง์”€ํ•ด์ฃผ์…จ๋‹ค.
์ฒซ ๋ฒˆ์งธ๋Š” ๋งค์ฃผ ๊ตฌํ˜„ํ•˜๊ธฐ์— ์•ž์„œ github ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ repository์˜ issue์— ๊ณ„ํš์„ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ํ•œ ์ฃผ๊ฐ€ ๋๋‚  ๋•Œ๋งˆ๋‹ค ํšŒ๊ณ ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.

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

  • ๐Ÿ“Œ ๋ฐฐํฌ๋œ ๋งค์ฃผ ๊ฒฐ๊ณผ๋ฌผ์„ ๋ณด๊ณ  issue๋ฅผ ๋‹ฌ์•„์ฃผ์…จ๋˜ ์œค์„ ๋‹˜

๊ทธ๋ ‡๊ฒŒ ๋งค์ฃผ ๊ณ„ํš์„ ์„ธ์šฐ๊ณ  ํšŒ๊ณ ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ๋ฅผ ๋ฐ˜๋ณตํ•˜๊ณ , TDD ์‚ฌ์ดํด์— ๋งž์ถฐ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ 4์ฃผ ๋™์•ˆ ์Šค์Šค๋กœํ•œํ…Œ ์—ด์‹ฌํžˆ ํ–ˆ๋‹ค๊ณ  ์นญ์ฐฌํ•ด ์ค„ ์ˆ˜ ์žˆ์„ ๋งŒํผ ์—ด์‹ฌํžˆ ํ–ˆ๋˜ ๊ฑฐ ๊ฐ™๋‹ค.

๐Ÿ“Œ ํ”„๋กœ์ ํŠธ 4์ฃผ๊ฐ„์˜ ๊ณ„ํš

๐Ÿ“ข ๊ณ ๋œ 4์ฃผ๊ฐ„์˜ ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„์ด ๋๋‚˜๊ณ , ๊ฒฐ๊ณผ๋ฌผ์„ ๋˜๋Œ์•„ ๋ณด์•˜๋‹ค.

  1. 4์ฃผ ๋™์•ˆ 240๊ฐœ์˜ ์ปค๋ฐ‹, 97๊ฐœ์˜ PR์ด ์กด์žฌํ–ˆ๋‹ค.
  2. ๊ธฐ๋Šฅ์œผ๋กœ๋Š” ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž…, ์Šคํ„ฐ๋”” ์†Œ๊ฐœ๊ธ€ ์ž‘์„ฑ, ์ˆ˜์ •, ์‚ญ์ œ์™€ ์Šคํ„ฐ๋”” ์‹ ์ฒญ์— ๋”ฐ๋ฅธ ์‚ฌ์šฉ์ž ์ƒํƒœ ๋“ฑ์„ ๊ตฌํ˜„ํ–ˆ๋‹ค.

  1. ๋น„๋ก ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๋Š” 100%๋ฅผ ๋งŒ์กฑํ•˜์ง€ ๋ชปํ–ˆ์ง€๋งŒ, ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ์ด 229๊ฐœ๋ฅผ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.
    ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๋Š” 100%๋ฅผ ๋งŒ์กฑ์‹œํ‚ค์ง€ ๋ชปํ–ˆ๋˜ ๊ฐ€์žฅ ํฐ ์ด์œ ๋Š” ์ฒซ ๋ฒˆ์งธ๋Š” ๊ธ€ ์ž‘์„ฑํ•  ๋•Œ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์—๋””ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ํ•œ๊ณ„๊ฐ€ ์žˆ์—ˆ๋‹ค๋Š” ์ , ๋‘ ๋ฒˆ์งธ๋Š” firebase๋ฅผ ํ†ตํ•œ api ํ†ต์‹ ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š”๋ฐ mock ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์ดํ•ด์˜ ๋ถ€์กฑํ•จ.. (์ถ”ํ›„ ๊ณ ํ†ต๋ฐ›์œผ๋ฉฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ž‘์„ฑํ•ด ๋ณผ ์˜ˆ์ •.)

๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์€ ์–ด๋–ป๊ฒŒ ๋ณผ์ง€ ๋ชฐ๋ผ๋„ ์Šค์Šค๋กœ์—๊ฒŒ ์ถฉ๋ถ„ํžˆ ๋งŒ์กฑ์Šค๋Ÿฌ์šด ๊ฒฐ๊ณผ๋ฌผ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.โœจ๐Ÿฅ‡๐ŸŽ‰

๊ฐœ์ธ ํ”„๋กœ์ ํŠธ ์ฃผ์†Œ
๊ฐœ์ธ ํ”„๋กœ์ ํŠธ repository

๐ŸŒˆ ์ฝ”๋“œ์ˆจ ๊ณผ์ • ์™ธ์—์„œ ๋ฒŒ์–ด์ง€๋Š” ์ผ๋“ค!?

์ฝ”๋“œ์ˆจ์—์„œ ์†Œํ†ต๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ ์—ญํ• ์„ ํ•˜๋Š” ๊ฑด ์Šฌ๋ž™์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.
์Šฌ๋ž™์„ ํ†ตํ•ด ๊ฐ์ž ํšŒ๊ณ ๋ฅผ ๊ณต์œ ํ•˜๊ณ , ํ•„์š”ํ•œ ์ •๋ณด๋“ค๊ณผ ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„์„ ์งˆ๋ฌธํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
๊ทธ์ค‘์—์„œ๋„ ์œค์„ ๋‹˜์ด ์ฃผ์ตœํ•˜์—ฌ ๋งค์ฃผ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” ์Šคํ„ฐ๋””๊ฐ€ ์žˆ๋‹ค. ์ด ์Šคํ„ฐ๋””๋Š” ํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์— ํ•œํ•ด์„œ ๊ด€๋ จ ๊ธฐ์ˆ  ์„œ์ ์„ ์ฝ์–ด์™€ ๋งค์ฃผ ์ˆ˜์š”์ผ Google meet์„ ํ†ตํ•ด ์ฃผ์–ด์ง„ ๋ฒ”์œ„์— ๋Œ€ํ•ด์„œ ์˜๋…ผํ•˜๊ณ , ๊ฐ™์ด ์–˜๊ธฐํ•  ์ˆ˜ ์žˆ๋Š” ์Šคํ„ฐ๋””์ด๋‹ค.
์ฝ”๋“œ์ˆจ ๊ณผ์ •์ด ๋๋‚œ ์ง€๊ธˆ๊นŒ์ง€๋„ ๊ณ„์† ์ด์–ด์ ธ ์˜ค๊ณ  ์žˆ๊ณ , ํ˜„์žฌ๊นŒ์ง€ ์ง„ํ–‰ํ–ˆ๋˜ ์ฑ…์œผ๋กœ๋Š” ํ•จ์ˆ˜ํ˜• ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, The Nature of Software Development, ํด๋ฆฐ ์• ์ž์ผ์ด๊ณ  ์•ž์œผ๋กœ๋„ ์ค„ ์„œ ์žˆ๋Š” ์ฑ…๋“ค์ด ๊ฐ€๋“ํ•˜๋‹ค.

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

๐ŸŽŠ 3๋‹ฌ๊ฐ„์˜ ์—ฌ์ •์„ ๋งˆ์น˜๊ณ  ํ•˜๊ณ  ์‹ถ์€ ๋ง์ด ์žˆ๋‹ค๋ฉด

๐Ÿ”ฅ ์‹ ์ฒญํ•˜์‹ค ์ƒ๊ฐ์ด ๋‹จ 1%๋ผ๋„ ์žˆ์œผ์‹  ๋ถ„๋“ค์—๊ฒŒ

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

๐Ÿ’ง ํŠธ๋ ˆ์ด๋„ˆ๋ถ„๋“ค๊ณผ ๋™๊ธฐ๋ถ„๋“ค์—๊ฒŒ

์ฝ”๋“œ์ˆจ ์‹œ์ž‘ ์ „๊ณผ ์‹œ์ž‘ ํ›„๋ฅผ ๋น„๊ตํ•ด ๋ดค์„ ๋•Œ ๋„ˆ๋ฌด ๋งŽ์ด ์„ฑ์žฅํ•˜๊ฒŒ ๋„์™€์ค€ ๋ชจ๋“  ํŠธ๋ ˆ์ด๋„ˆ๋ถ„์—๊ฒŒ ๋„ˆ๋ฌด ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.๐Ÿ™
์ข‹์€ ๊ฐ•์˜๋ฅผ ํ•ด์ฃผ์‹œ๊ณ  ๋Š˜ ์–ด๋””์„ ๊ฐ€ ์ง€์ผœ๋ด ์ฃผ์‹œ๋Š” ์•„์ƒฌ๋‹˜, ๋ˆ„๊ตฌ๋ณด๋‹ค ์—ด์ • ๊ฐ€๋“ํ•˜๊ณ  ๋Š˜ ์ž์„ธํ•œ ์ฝ”๋“œ๋ฆฌ๋ทฐ์™€ ์Šคํ„ฐ๋””๋ฅผ ์ง„ํ–‰ํ•ด์ฃผ์‹  ์œค์„๋‹˜, ๋‹น๊ทผ๊ณผ ์ฑ„์ฐ์„ ๊ฐ™์ด ์ฃผ์‹œ๋Š” ๋ฉ‹์ง„ ์ˆ˜ํ˜•๋‹˜, ํ•ญ์ƒ ์นœ์ ˆํ•˜๊ฒŒ ๋‹ตํ•ด์ฃผ์‹œ๋Š” ๊ธฐํ˜„๋‹˜ ๊นŒ์ง€ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ๐Ÿ™
3๋‹ฌ๊ฐ„ ์—ฌ์ •์„ ํ•จ๊ป˜ํ•œ ๋™๊ธฐ๋ถ„๋“ค๊ณผ 1๊ธฐ ์—ฌ๋Ÿฌ๋ถ„๋“ค๋„ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.๐Ÿ™ ํ•ญ์ƒ ์Šฌ๋ž™์—์„œ ๋งŽ์€ ์ด์•ผ๊ธฐ์™€ ํšŒ๊ณ ๋ฅผ ๋ณด๋ฉด์„œ ๋™๊ธฐ๋ถ€์—ฌ๋ฅผ ์–ป์—ˆ๊ณ , 3๋‹ฌ ๋™์•ˆ ์ง€์น˜๋Š” ์ˆœ๊ฐ„๋„ ์žˆ์—ˆ์ง€๋งŒ, ํ•จ๊ป˜ ๋‹ฌ๋ ธ๊ธฐ์— ๋๊นŒ์ง€ ํ•  ์ˆ˜ ์žˆ๋˜ ๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ๐Ÿ™๐Ÿ™๐Ÿ™

๐ŸŽฏ ์•ž์œผ๋กœ์˜ ๊ณ„ํš์ด ๋ญ์•ผ?

๊ธธ๋‹ค๋ฉด ๊ธธ๊ณ  ์งง๋‹ค๋ฉด ์งง์€ 3๋‹ฌ๊ฐ„์˜ ์—ฌ์ •์ด ๋๋‚ฌ๋‹ค. ๋๋‚ฌ๋”๋ผ๋„ ์ง„ํ–‰ํ–ˆ๋˜ ํ”„๋กœ์ ํŠธ์— ์•„์ง ๊ธฐ๋Šฅ์ด ๋งŒ์กฑ์Šค๋Ÿฝ์ง€ ๋ชปํ•˜๊ธฐ์— ๊ธฐ๋Šฅ์„ ๋ง๋ถ™์—ฌ ๋‚˜๊ฐˆ ๊ฒƒ์ด๋‹ค.

๐Ÿ“Œ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์•ž์œผ๋กœ์˜ ๊ณ„ํš

ํ•˜์ง€๋งŒ "๋์€ ์–ธ์ œ๋‚˜ ์ƒˆ๋กœ์šด ์‹œ์ž‘"์ด๋ผ๋Š” ๋ง์ด ์žˆ๋“ฏ์ด ์ด์   ์ฝ”๋“œ์ˆจ์—์„œ ๋ฐฐ์šด ์ธ์‚ฌ์ดํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ์ƒˆ๋กœ์šด ์‹œ์ž‘์„ ์ค€๋น„ํ•ด์•ผ ํ•œ๋‹ค. ๐Ÿ˜ค
์ง€๊ธˆ ํšŒ์‚ฌ๋ฅผ ํ‡ด์‚ฌํ•˜๊ณ  ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๋ผ๋Š” ์ƒˆ๋กœ์šด ์‹œ์ž‘์„ ์œ„ํ•ด ๋” ๋…ธ๋ ฅํ•ด์•ผ ํ•  ๊ฒƒ์ด๋‹ค. ์ง€๊ธˆ๋ณด๋‹ค ์•ž์œผ๋กœ๊ฐ€ ๋” ํž˜๋“ค๊ฒŒ ๋ˆˆ์— ํ›คํžˆ ๋ณด์ธ๋‹ค. ํ•˜์ง€๋งŒ ๊ณ ํ†ต์ด ์žˆ์„์ˆ˜๋ก ์„ฑ์ทจ๊ฐ๊ณผ ์–ป๋Š” ๊ฒƒ์ด ๋งŽ์€ ๊ฑธ ์•Œ๊ธฐ์— ๋Œ์•„์„œ ๊ฐ€๋Š” ๊ธธ๋ณด๋‹จ ๋ถ€๋”ช์ณ ๋‚˜๊ฐˆ ๊ฒƒ์ด๋‹ค.

์ฒ˜์Œ ํ”„๋ก ํŠธ์—”๋“œ ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ–ˆ์„ ๋‹น์‹œ์˜ ๋ชฉํ‘œ์™€ ๋ชฉ์ ์„ ์žŠ์ง€ ๋ง๊ณ  ์ง€์น˜์ง€ ๋ง๊ณ  ๊พธ์ค€ํžˆ๋ผ๋Š” ๋ง์„ ๋จธ๋ฆฟ์†์— ํ•ญ์ƒ ๊ฐ€์ง€๊ณ  ์•ž์œผ๋กœ ๋‚˜์•„๊ฐ€์•ผ ํ•œ๋‹ค. ์•ˆ ๊ทธ๋Ÿฌ๋ฉด ๋‚ด๊ฐ€ ๋‚˜ํ•œํ…Œ ์ง€์ณ ์ŠคํŠธ๋ ˆ์Šค๋กœ ๋ฒ„ํ‹ฐ์ง€ ๋ชปํ•  ๊ฒƒ์ด ๋ถ„๋ช…ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ž˜๋„ ์˜ค๋ž˜๋‹ฌ๋ฆฌ๊ธฐ๋Š” ์ž˜ํ•˜๋Š” ํŽธ์ด๋‹ˆ๐Ÿ˜ ๊ดœ์ฐฎ์„ ๊ฒƒ์ด๋‹ค. ์ง€๊ธˆ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ ˆ์‹คํ•จ๊ณผ ์—ด์ •์œผ๋กœ ๊พธ์ค€ํžˆ ํ•œ๋‹ค๋ฉด ์–ธ์  ๊ฐ€๋Š” ์ด ๊ณ ํ†ต์ด ๋”ฑ๋”ฑํ•œ ๊ตณ์€์‚ด์ด ์•„๋‹Œ ์ˆœํ™”๋˜์–ด ๋ง๋”ํ•œ ์ƒˆ์‚ด์„ ๋‹๊ฒŒ ํ•ด์ค„ ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ? ๊ทธ๋ ‡๊ฒŒ ๋ฏฟ์–ด๋ณธ๋‹ค.๐Ÿš€
๋ฐฐ์›Œ์•ผ ํ•  ๊ฒƒ๋“ค์ด ๋„ˆ๋ฌด ๋งŽ๊ณ  ๋Š์ž„์—†์ด ๋ณ€ํ™”ํ•˜๋Š” ํŠธ๋ Œ๋“œ ์†์—์„œ ์–ด๋–ป๊ฒŒ ๊ณต๋ถ€ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€ ๋ฐฉ๋ฒ•์ธ๊ฐ€๋Š” ์—ฌ์ „ํžˆ ๋ชจ๋ฅด๊ฒ ๋‹ค. ๋ฐฉ๋ฒ•์ด ๋ญ ์žˆ์„๊นŒ? ์ž”๋จธ๋ฆฌ๋ฅผ ๊ตด๋ ค ๋Œ์•„๊ฐˆ ๋ฐฉ๋ฒ•์€ ์ฐพ๊ธฐ๋ณด๋‹ค ๊ทธ ์‹œ๊ฐ„์— ๊พ€๋ถ€๋ฆฌ์ง€ ๋ง๊ณ  ๊พธ์ค€ํžˆ ํ•˜๋Š” ๋ฐฉ๋ฒ•๋ฟ..

์˜ฌํ•ด์ฒ˜๋Ÿผ ์—ด์‹ฌํžˆ ์‚ด์•˜๋‹ค๊ณ  ์ž์‹  ์žˆ๊ฒŒ ๋งํ•  ์ˆ˜ ์žˆ๋Š” ํ•ด๋Š” ์‚ด๋ฉด์„œ ์—ฌํƒœ๊ป ์—†๋˜ ๊ฑฐ ๊ฐ™๋‹ค. 2020๋…„๋„๋Š” ์ „ ์„ธ๊ณ„๊ฐ€ ์ง€์˜ฅ ๊ทธ ์ž์ฒด์˜€์ง€๋งŒ, ๊ทธ ์ง€์˜ฅ์—์„œ ์–ด๋Š ๋•Œ๋ณด๋‹ค ์—ด์‹ฌํžˆ ๋‹ฌ๋ ค์˜จ ๋‚˜. ์˜ฌํ•ด๊ฐ€ ๊ฐ€๊ธฐ ์ „์— ์˜ฌํ•ด๋ฅผ ๋˜๋Œ์•„๋ณด๋Š” ํšŒ๊ณ ๋ฅผ ์ž‘์„ฑํ•ด์•ผ๊ฒ ๊ณ  ๋‚ด๋…„์˜ ๊ณ„ํš๋„ ๊ฐ™์ด ์ž‘์„ฑํ•ด๋ด์•ผ๊ฒ ๋‹ค.

๋‚ด๋…„์—” ์ƒˆ๋กœ์šด ์ง์žฅ์—์„œ ๋‹น๋‹นํ•˜๊ฒŒ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๋ผ๋Š” ํƒ€์ดํ‹€๋กœ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ๋Š” ๋‚ด๊ฐ€ ๋˜์–ด์žˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค. ๐Ÿ™