2021-03-23(Tue)

ํ•ญ๋ชฉ

๋‚ด์šฉ

ํ•™์Šต ๋‚ ์งœ

2021-03-23(ํ™”)

ํ•™์Šต ์‹œ๊ฐ„

11:00~23:00

ํ•™์Šต ๋ฒ”์œ„ ๋ฐ ์ฃผ์ œ

TDD

ํ•™์Šต ๋ชฉํ‘œ

TDD ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉฐ ์ ์šฉ๋ฐฉ๋ฒ•์„ ์ตํžŒ๋‹ค.

๋™๋ฃŒ ํ•™์Šต ๋ฐฉ๋ฒ•

-

์ƒ์„ธ ํ•™์Šต ๋‚ด์šฉ

ํ˜„์‹ค์„ธ์ƒ์˜ TDD by ์ด๊ทœ์›

TDD๋ฅผ ์‚ดํŽด๋ณด๊ธฐ ์ „์— ์—”์ง€๋‹ˆ์–ด๋ง์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ•ด๋ณด์ž.

  1. ์ด์ „์— ์ตœ์„ ์ด๋ผ ์—ฌ๊ฒจ์กŒ๋˜ ๊ฒƒ๋“ค์ด ์ง€๊ธˆ์€ ์ตœ์„ ์ด ์•„๋‹Œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ๊ณ„์† ๋ฏฟ๊ณ  ์žˆ๋Š” ๊ฒƒ๋“ค๋„ ์•ˆ์‹ฌํ•˜๊ณ  ๋ฏฟ๊ธฐ๋ณด๋‹ค๋Š” ๋” ์ข‹์€ ๋„๊ตฌ๊ฐ€ ์—†์„๊นŒ ์˜์‹ฌํ•˜๊ฒŒ ๋œ๋‹ค.

  2. ๊ณผํ•™์€ ๋ฐํ˜€๋‚ด๊ณ , ์—”์ง€๋‹ˆ์–ด๋ง์€ ํ•ด๊ฒฐํ•œ๋‹ค. ์—”์ง€๋‹ˆ์–ด๋ง์€ ์ฃผ์–ด์ง„ ์ž์›์„ ๊ณ ๋ คํ•ด์„œ ๊ณผํ•™์„ ์ด์šฉํ•œ๋‹ค.

    Engineering, the application fo science to the optimum conversion fo the resources of nature to the uses of humankind.

    ์‚ฌ๋ก€๋ฅผ ๋“ค์–ด๋ณด์ž๋ฉด, ํด๋ฆฐ ์ฝ”๋“œ๋ผ๋Š” ํ‘œํ˜„์ด ์œ ํ–‰ํ•œ๋‹ค. ํด๋ฆฐ ์ฝ”๋“œ์— ์ง€๋‚˜์น˜๊ฒŒ ๋น ์ ธ์žˆ๋Š” ๊ฐœ๋ฐœ์ž๋“ค์˜ ์–ธํ–‰์„ ์ข‹์•„ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์–ด๋””์—๋‚˜ ํ†ต์šฉ๋  ์ˆ˜ ์žˆ๋Š” ๋ณดํŽธ์ ์ธ ์ฝ”๋“œ ๊ธฐ์ค€์— ๋Œ€ํ•ด ์–˜๊ธฐํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋Š๊ปด์ง€๋Š”๋ฐ, ์–ด๋””์—๋‚˜ ํš์ผ์ ์ด๊ณ  ๋ณดํŽธ์ ์ธ ์ฝ”๋“œ ๊ธฐ์ค€์„ ๋„์ž…ํ–ˆ์„ ๋•Œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ๋ฌด์—‡์ธ๊ฐ€๋ฅผ ์ƒ๊ฐํ•ด๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ์—”์ง€๋‹ˆ์–ด๋กœ์„œ์˜ ๊ฒฝํ—˜์ƒ, ํ•ญ์ƒ ์ œ์‹œ๋˜๋Š” ์ฝ”๋“œ ๊ธฐ์ค€์€ ๊ณ„์† ๋†’์•„์กŒ๋‹ค ๋‚ฎ์•„์กŒ๋‹คํ•ด์™”๋‹ค. ์ƒํ™ฉ์— ๋งž๋Š” ์ ์ ˆํ•œ ๊ธฐ์ค€์„ ์ฐพ๊ณ  ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

  3. 'ํŒจํ„ด'์— ๋Œ€ํ•ด ์–˜๊ธฐํ•ด๋ณด์ž. ํŒจํ„ด์€ ์•Œ๋ ค์ง„ ๋ฌธ์ œ์˜ ์ผ๋ฐ˜์ ์ด๊ณ  ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•ด๊ฒฐ๋ฒ•์ด๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๊ณ ์œ ํ•œ ๋ฌธ์ œ๋ฅผ ํ’€๋”๋ผ๋„ ๊ทธ ๊ณก์œ ํ•œ ๋ฌธ์ œ๋Š” ์ข€ ๋” ์ž‘์€ ํ•˜์œ„ ๊ธฐ์ˆ  ๋ฌธ์ œ๋ฅผ ๊ฐ€์ง€๊ธฐ ๋งˆ๋ จ์ด๊ณ , ์ด ์ž‘์€ ๊ธฐ์ˆ  ๋ฌธ์ œ๋“ค ์ค‘ ๋งŽ์€ ์ผ๋ถ€๋Š” ๊ณผ๊ฑฐ ์–ด๋””์—์„ ๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณต๋˜๊ณ  ํ•ด๊ฒฐ๋œ ์ ์ด ์žˆ๋‹ค. ์ด๋Ÿฐ ๋ฌธ์ œ๋Š” ํŒจํ„ด์„ ํ™œ์šฉํ•˜๋ฉด ํšจ์œจ์ ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ํŒจํ„ด์€ '์•ฝ'์— ๋น„์œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ์ƒ์— ๋งž๊ฒŒ ์•ฝ์„ ์ฒ˜๋ฐฉํ•ด์•ผํ•˜๋“ฏ ์ƒํ™ฉ์— ๋งž๊ฒŒ ํŒจํ„ด์„ ์จ์•ผํ•œ๋‹ค. ์–ด๋””์—๋‚˜ ํ†ตํ•˜๋Š” ์€ํƒ„ํ™˜์€ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

    Patterns always have two parts: the how and the when - ๋งˆํ‹ด ํŒŒ์šธ๋Ÿฌ

    ์€ํƒ„ํ™˜์ด ์—†๋Š” ์ด์œ ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

    • ํ˜„์žฅ์€ ๋ฌด๊ท ์‹ค์ด ์•„๋‹ˆ๋ผ ์•ผ์ „์ด๋‹ค.

    • ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ํ˜‘์—…์ด๋‹ค.

    • ์‹œ์Šคํ…œ์€ ์—ฐ๊ฒฐ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 42 API๋Š” ์™œ ์ €๋”ฐ์œˆ๊ฐ€.. ํ•˜๋”๋ผ๋„ ๊ทธ๋Ÿด๋งŒํ•œ ์•„ํ”ˆ ์‚ฌ์ •์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ์–ด์จŽ๋“  ๊ทธ ์‹œ์Šคํ…œ๊ณผ ์—ฐ๊ฒฐ๋œ๋‹ค.

    ๋”ฐ๋ผ์„œ ์™„๋ฒฝํ•œ ๋„๊ตฌ๋ฅผ ์ค€๋น„ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋‹ค์–‘ํ•œ ๋„๊ตฌ๋ฅผ ์ค€๋น„ํ•ด์„œ ์ ์ ˆํ•œ ๋„๊ตฌ๋ฅผ ์„ ํƒํ•ด์•ผ ํ•œ๋‹ค. ์—”์ง€๋‹ˆ์–ด๋ง์€ ๊ฑฐ๋ž˜(trade-off)์ด๋‹ค. ๋” ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๋ฅผ ๋œ ์‹ฌ๊ฐํ•˜๊ณ  ๊ฐ๋‹นํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋กœ ์น˜ํ™˜ํ•˜๋ฉฐ ์•ž์œผ๋กœ ๋‚˜๊ฐ€๋Š” ๊ฒƒ์ด๋‹ค.

TDD๋„ ์€ํƒ„ํ™˜์ด ์•„๋‹ˆ๋‹ค, ๋‹ค์–‘ํ•œ ๋„๊ตฌ ์ค‘ ํ•˜๋‚˜์— ๋ถˆ๊ณผํ•˜๋‹ค.

์ฝ”๋“œ ๊ธฐ๋Šฅ ๋ช…์„ธ

ํ”„๋กœ๊ทธ๋žจ์€ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. ์–ด๋–ค ์ž…๋ ฅ์ด ์–ด๋–ค ์ถœ๋ ฅ์œผ๋กœ ๋งตํ•‘๋  ๊ฒƒ์ด๋ผ๋Š” ๊ธฐ๋Œ€๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด ๊ฒƒ์ด ๊ธฐ๋Šฅ ๋ช…์„ธ์ด๋‹ค.

์ด ์ฝ”๋“œ ๊ธฐ๋Šฅ ๋ช…์„ธ๋Š” ์–ด๋””์„œ ์ถœ๋ฐœํ•˜๋Š”๊ฐ€? ์šฐ๋ฆฌ๋Š” ์ด ๋ช…์„ธ๊ฐ€ ์ถœ๋ฐœ๋˜๋Š” ์ง€์ ์„ ๋„๋ฉ”์ธ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ๋„๊ตฌ๋ผ๊ณ  ํ•œ๋‹ค๋ฉด, ๋„๋ฉ”์ธ์€ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ํ’€์–ด์•ผ ํ•  ๋ฌธ์ œ๊ฐ€ ์ •์˜๋˜๋Š” ๊ณต๊ฐ„์ด๋‹ค. ๋ฌธ์ œ๋ฅผ ์ถฉ๋ถ„ํžˆ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ๋„๊ตฌ๋ฅผ ์ž˜ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค.

๋น„์ฆˆ๋‹ˆ์Šค ์‹œ์Šคํ…œ์˜ ๋„๋ฉ”์ธ ์ง€์‹ ํ๋ฆ„

๋น„์ฆˆ๋‹ˆ์Šค ์ „๋ฌธ๊ฐ€ -> ๋ถ„์„๊ฐ€(์ œํ’ˆ ๊ด€๋ฆฌ์ž, ์„œ๋น„์Šค ๊ธฐํš์ž, ํ”„๋กœ๊ทธ๋ž˜๋จธ) -> ํ”„๋กœ๊ทธ๋ž˜๋จธ -> ์ปดํ“จํ„ฐ

ํ•™์Šต ๋‚ด์šฉ์— ๋Œ€ํ•œ ๊ฐœ์ธ์ ์ธ ์ดํ‰

42 ๊ณตํ†ต ์„œํด์˜ ๋งˆ์ง€๋ง‰ ํ”„๋กœ์ ํŠธ์ธ 'ํŠธ๋ Œ์„ผ๋˜์Šค' ๊ณผ์ œ๊ฐ€ ๋๋‚ฌ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ํšŒ๊ณ ๋ฅผ ์ง„ํ–‰ํ•ด๋ณด์•˜๋”๋‹ˆ TDD๋ฅผ ํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ ๋ชปํ•œ ๊ฒƒ์ด ์ง„ํ•œ ์•„์‰ฌ์›€์œผ๋กœ ๋‚จ์•„์žˆ์—ˆ๋‹ค.

TDD๋Š” ๋ง‰ ์€ํƒ„ํ™˜์€ ์•„๋‹ˆ์ง€๋งŒ ๋น ๋ฅด๊ฒŒ ์‹œ๋„ํ•˜๊ณ  ์‹คํŒจ ํ›„ ๊ฐœ์„ ํ•œ๋‹ค๋Š” ๋ฉด์—์„œ ํ•„์š”ํ•œ ์ƒํ™ฉ์—์„œ ๋ฐ”๋กœ ์ ์šฉํ•˜๊ณ  ์‹ถ๋‹ค. ๊ทธ๋ž˜์„œ ํŒจ์ŠคํŠธ์บ ํผ์Šค์˜ TDD ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•์‹ ์ฒญํ•˜์˜€๋‹ค.

๋‹ค์Œ ํ•™์Šต ๊ณ„ํš

  • TDD ํ•™์Šต

Last updated