๐Ÿ’ป์šฉ๋‡ฝ ๊ฐœ๋ฐœ ๋…ธํŠธ๐Ÿ’ป
article thumbnail
๋ฐ˜์‘ํ˜•

Clean Code TIL Day 17,18

Day 17, 18

๐Ÿ”– ์˜ค๋Š˜ ์ฝ์€ ๋ฒ”์œ„ :  9์žฅ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ(p.153 ~ p.170)


๐Ÿ˜ƒ ์ฑ…์—์„œ ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ

  • TDD ๋ฒ•์น™ ์„ธ ๊ฐ€์ง€(p.155)
    • ์ฒซ์งธ ๋ฒ•์น™: ์‹คํŒจํ•˜๋Š” ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๊นŒ์ง€ ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š๋Š”๋‹ค.
    • ๋‘˜์งธ ๋ฒ•์น™: ์ปดํŒŒ์ผ์€ ์‹คํŒจํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ์‹คํ–‰์ด ์‹คํŒจํ•˜๋Š” ์ •๋„๋กœ๋งŒ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.
    • ์…‹์งธ ๋ฒ•์น™: ํ˜„์žฌ ์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•  ์ •๋„๋กœ๋งŒ ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.
  • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ• ์ˆ˜๋ก ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ์งœ๋Š” ์‹œ๊ฐ„๋ณด๋‹ค ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์‹œ๊ฐ„์ด ๋” ๊ฑธ๋ฆฌ๊ธฐ ์‹ญ์ƒ์ด๋‹ค. ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•ด ๊ธฐ์กด ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ์‹คํŒจํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด, ์ง€์ €๋ถ„ํ•œ ์ฝ”๋“œ๋กœ ์ธํ•ด, ์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ ์  ํ†ต๊ณผ์‹œํ‚ค๊ธฐ ์–ด๋ ค์›Œ์ง„๋‹ค.(p.156)
  • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” ์‹ค์ œ ์ฝ”๋“œ ๋ชป์ง€์•Š๊ฒŒ ์ค‘์š”ํ•˜๋‹ค.(p.157)
  • ์ฝ”๋“œ์— ์œ ์—ฐ์„ฑ, ์œ ์ง€๋ณด์ˆ˜์„ฑ, ์žฌ์‚ฌ์šฉ์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ๋ฒ„ํŒ€๋ชฉ์ด ๋ฐ”๋กœ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋‹ค. ์ด์œ ๋Š” ๋‹จ์ˆœํ•˜๋‹ค. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ์žˆ์œผ๋ฉด ๋ณ€๊ฒฝ์ด ๋‘๋ ต์ง€ ์•Š์œผ๋‹ˆ๊นŒ!(p.157)
  • ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ์—†๋‹ค๋ฉด ๋ชจ๋“  ๋ณ€๊ฒฝ์ด ์ž ์ •์ ์ธ ๋ฒ„๊ทธ๋‹ค.(p.157)
  • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๊ฐ€ ์ง€์ €๋ถ„ํ• ์ˆ˜๋ก ์‹ค์ œ ์ฝ”๋“œ๋„ ์ง€์ €๋ถ„ํ•ด์ง„๋‹ค. ๊ฒฐ๊ตญ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์žƒ์–ด๋ฒ„๋ฆฌ๊ณ  ์‹ค์ œ ์ฝ”๋“œ๋„ ๋ง๊ฐ€์ง„๋‹ค.(p.157)
  • ๋Œ€์ฒด๋กœ ๋‚˜๋Š” ๋‹จ์ผ assert๋ฅผ ์ง€์›ํ•˜๋Š” ํ•ด๋‹น ๋ถ„์•ผ ํ…Œ์ŠคํŠธ ์–ธ์–ด๋ฅผ ๋งŒ๋“ค๋ ค ๋…ธ๋ ฅํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋•Œ๋กœ๋Š” ์ฃผ์ € ์—†์ด ํ•จ์ˆ˜ ํ•˜๋‚˜์— ์—ฌ๋Ÿฌ assert ๋ฌธ์„ ๋„ฃ๊ธฐ๋„ ํ•œ๋‹ค. ๋‹จ์ง€ assert ๋ฌธ ๊ฐœ์ˆ˜๋Š” ์ตœ๋Œ€ํ•œ ์ค„์—ฌ์•ผ ์ข‹๋‹ค๋Š” ์ƒ๊ฐ์ด๋‹ค.(p.165)
  • ๊ฐ€์žฅ ์ข‹์€ ๊ทœ์น™์€ "๊ฐœ๋… ๋‹น assert ๋ฌธ ์ˆ˜๋ฅผ ์ตœ์†Œ๋กœ ์ค„์—ฌ๋ผ"์™€ "ํ…Œ์ŠคํŠธ ํ•จ์ˆ˜ ํ•˜๋‚˜๋Š” ๊ฐœ๋… ํ•˜๋‚˜๋งŒ ํ…Œ์ŠคํŠธํ•˜๋ผ"๋ผ ํ•˜๊ฒ ๋‹ค.(p.167)
  • ๊นจ๋—ํ•œ ํ…Œ์ŠคํŠธ๋Š” ๋‹ค์Œ ๋‹ค์„ฏ ๊ฐ€์ง€ ๊ทœ์น™์„ ๋”ฐ๋ฅด๋Š”๋ฐ, ๊ฐ ๊ทœ์น™์—์„œ ์ฒซ ๊ธ€์ž๋ฅผ ๋”ฐ์˜ค๋ฉด FIRST๊ฐ€ ๋œ๋‹ค.(p.167 ~ p.168)
    • ๋น ๋ฅด๊ฒŒ(Fast): ํ…Œ์ŠคํŠธ๋Š” ๋นจ๋ผ์•ผ ํ•œ๋‹ค.
    • ๋…๋ฆฝ์ ์œผ๋กœ:(Independent): ๊ฐ ํ…Œ์ŠคํŠธ๋Š” ์„œ๋กœ ์˜์กดํ•˜๋ฉด ์•ˆ ๋œ๋‹ค.
    • ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•˜๊ฒŒ(Repeatable): ํ…Œ์ŠคํŠธ๋Š” ์–ด๋–ค ํ™˜๊ฒฝ์—์„œ๋„ ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค.
    • ์ž๊ฐ€ ๊ฒ€์ฆํ•˜๋Š”(Self-Validating): ํ…Œ์ŠคํŠธ๋Š” ๋ถ€์šธ ๊ฐ’์œผ๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋‚ด์•ผ ํ•œ๋‹ค.
    • ์ ์‹œ์—(Timely): ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋Š” ํ…Œ์ŠคํŠธํ•˜๋ ค๋Š” ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์ง์ „์— ๊ตฌํ˜„๋‹ค.
  • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๊ฐ€ ๋ฐฉ์น˜๋˜์–ด ๋ง๊ฐ€์ง€๋ฉด ์‹ค์ œ ์ฝ”๋“œ๋„ ๋ง๊ฐ€์ง„๋‹ค. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๊นจ๋—ํ•˜๊ฒŒ ์œ ์ง€ํ•˜์ž.(p.168)

๐Ÿค” ์˜ค๋Š˜ ์ฝ์€ ์†Œ๊ฐ๊ณผ ๋– ์˜ค๋ฅด๋Š” ์ƒ๊ฐ

์ด ๋ถ€๋ถ„์„ ์ฝ๊ธฐ ์ „๊นŒ์ง€ TDD๋ผ๋Š” ๋ง๋งŒ ๋“ค์–ด๋ณด๊ณ  ์‹ค์ œ๋กœ TDD๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์™œ ํ•ด์•ผ ํ•˜๋Š”์ง€ ๋ชจ๋ฅด๊ณ  ์žˆ์—ˆ๋‹ค.

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

๋‹ค์Œ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•  ๋•Œ๋Š” ์ด ์ฑ…์˜ ๊ทœ์น™๋“ค์„ ์ ์šฉํ•ด์„œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋„ ํ•œ๋ฒˆ ๊ผญ ์ž‘์„ฑํ•ด ๋ณด๊ณ  ์‹ถ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์Šต๊ด€์„ ๋“ค์—ฌ์„œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์—†์ด๋Š” ๊ฐœ๋ฐœ์„ ํ•  ์ˆ˜ ์—†์„ ์ •๋„๋กœ ์ ์‘ํ•˜๊ณ  ์‹ถ๊ณ  ์ ์‘ํ•  ๊ฒƒ์ด๋‹ค.

๐Ÿ”Ž ๊ถ๊ธˆํ•œ ๋‚ด์šฉ์ด ์žˆ๊ฑฐ๋‚˜, ์ž˜ ์ดํ•ด๋˜์ง€ ์•Š๋Š” ๋‚ด์šฉ

x

์†Œ๊ฐ 3์ค„ ์š”์•ฝ

  • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” ์‹ค์ œ ์ฝ”๋“œ ๋ชป์ง€์•Š๊ฒŒ ์ค‘์š”ํ•˜๋‹ค.
  • ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ์—†๋‹ค๋ฉด ๋ชจ๋“  ๋ณ€๊ฒฝ์ด ์ž ์ •์ ์ธ ๋ฒ„๊ทธ๋‹ค.
  • ๊นจ๋—ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” FIRST ๊ทœ์น™์„ ๋”ฐ๋ฅธ๋‹ค.
๋ฐ˜์‘ํ˜•
profile

๐Ÿ’ป์šฉ๋‡ฝ ๊ฐœ๋ฐœ ๋…ธํŠธ๐Ÿ’ป

@์šฉ๋‡ฝ

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!