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

Clean Code TIL Day 06

Day 06

๐Ÿ”– ์˜ค๋Š˜ ์ฝ์€ ๋ฒ”์œ„ :  3์žฅ ํ•จ์ˆ˜ (p.40~p.54)


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

  • ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ์ฒซ์งธ ๊ทœ์น™์€ '์ž‘๊ฒŒ!'๋‹ค. ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ๋‘˜์งธ ๊ทœ์น™์€ '๋” ์ž‘๊ฒŒ!'๋‹ค.(p.42)
  • if ๋ฌธ/else ๋ฌธ/while ๋ฌธ ๋“ฑ์— ๋“ค์–ด๊ฐ€๋Š” ๋ธ”๋ก์€ ํ•œ ์ค„์ด์–ด์•ผ ํ•œ๋‹ค๋Š” ์˜๋ฏธ๋‹ค. ๋Œ€๊ฒŒ ๊ฑฐ๊ธฐ์„œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋ฐ”๊นฅ์„ ๊ฐ์‹ธ๋Š” ํ•จ์ˆ˜๊ฐ€ ์ž‘์•„์งˆ ๋ฟ ์•„๋‹ˆ๋ผ, ๋ธ”๋ก ์•ˆ์—์„œ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜ ์ด๋ฆ„์„ ์ ์ ˆํžˆ ์ง“๋Š”๋‹ค๋ฉด, ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๊ธฐ๋„ ์‰ฌ์›Œ์ง„๋‹ค.(p.44)
  • ํ•จ์ˆ˜๋Š” ํ•œ ๊ฐ€์ง€๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ ํ•œ ๊ฐ€์ง€๋ฅผ ์ž˜ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ ํ•œ ๊ฐ€์ง€๋งŒ์„ ํ•ด์•ผ ํ•œ๋‹ค.(p.44)
  • ํ•จ์ˆ˜๊ฐ€ 'ํ•œ ๊ฐ€์ง€'๋งŒ์„ ํ•˜๋Š”์ง€ ํŒ๋‹จํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ•˜๋‚˜ ๋” ์žˆ๋‹ค. ๋‹จ์ˆœํžˆ ๋‹ค๋ฅธ ํ‘œํ˜„์ด ์•„๋‹ˆ๋ผ ์˜๋ฏธ ์žˆ๋Š” ์ด๋ฆ„์œผ๋กœ ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ทธ ํ•จ์ˆ˜๋Š” ์—ฌ๋Ÿฌ ์ž‘์—…์„ ํ•˜๋Š” ์…ˆ์ด๋‹ค.(p.45)
  • ํ•จ์ˆ˜๊ฐ€ ํ™•์‹คํžˆ 'ํ•œ ๊ฐ€์ง€' ์ž‘์—…๋งŒ ํ•˜๋ ค๋ฉด ํ•จ์ˆ˜ ๋‚ด ๋ชจ๋“  ๋ฌธ์žฅ์˜ ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ๋™์ผํ•ด์•ผ ํ•œ๋‹ค.(p.45)
  • ์ฝ”๋“œ๋Š” ์œ„์—์„œ ์•„๋ž˜๋กœ ์ด์•ผ๊ธฐ์ฒ˜๋Ÿผ ์ฝํ˜€์•ผ ์ข‹๋‹ค. ํ•œ ํ•จ์ˆ˜ ๋‹ค์Œ์—๋Š” ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ํ•œ ๋‹จ๊ณ„ ๋‚ฎ์€ ํ•จ์ˆ˜๊ฐ€ ์˜จ๋‹ค. ์ฆ‰, ์œ„์—์„œ ์•„๋ž˜๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ์ฝ์œผ๋ฉด ํ•จ์ˆ˜ ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ํ•œ ๋ฒˆ์— ํ•œ ๋‹จ๊ณ„์”ฉ ๋‚ฎ์•„์ง„๋‹ค.(p.46)
  • ์ด๋ฆ„์ด ๊ธธ์–ด๋„ ๊ดœ์ฐฎ๋‹ค. ๊ฒ๋จน์„ ํ•„์š” ์—†๋‹ค. ๊ธธ๊ณ  ์„œ์ˆ ์ ์ธ ์ด๋ฆ„์ด ์งง๊ณ  ์–ด๋ ค์šด ์ด๋ฆ„๋ณด๋‹ค ์ข‹๋‹ค. ๊ธธ๊ณ  ์„œ์ˆ ์ ์ธ ์ด๋ฆ„์ด ๊ธธ๊ณ  ์„œ์ˆ ์ ์ธ ์ฃผ์„๋ณด๋‹ค ์ข‹๋‹ค. ํ•จ์ˆ˜ ์ด๋ฆ„์„ ์ •ํ•  ๋•Œ๋Š” ์—ฌ๋Ÿฌ ๋‹จ์–ด๊ฐ€ ์‰ฝ๊ฒŒ ์ฝํžˆ๋Š” ๋ช…๋ช…๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ, ์—ฌ๋Ÿฌ ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉํ•ด ํ•จ์ˆ˜ ๊ธฐ๋Šฅ์„ ์ž˜ ํ‘œํ˜„ํ•˜๋Š” ์ด๋ฆ„์„ ์„ ํƒํ•œ๋‹ค.(p.49)
  • ์ด๋ฆ„์„ ๋ถ™์ผ ๋•Œ๋Š” ์ผ๊ด€์„ฑ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๋ชจ๋“ˆ ๋‚ด์—์„œ ํ•จ์ˆ˜ ์ด๋ฆ„์€ ๊ฐ™์€ ๋ฌธ๊ตฌ, ๋ช…์‚ฌ, ๋™์‚ฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. includeSetupAndTeardownPages, includeSetupPages, includeSutieSetupPage, includeSetupPage ๋“ฑ์ด ์ข‹์€ ์˜ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ๋น„์Šทํ•˜๋ฉด ์ด์•ผ๊ธฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ํ’€์–ด๊ฐ€๋„ ์‰ฌ์›Œ์ง„๋‹ค. ๋ฐฉ๊ธˆ ์—ด๊ฑฐํ•œ ํ•จ์ˆ˜๋ฅผ ์‚ดํŽด๋ณด๋ผ. ๋‹น์žฅ ์ด๋Ÿฐ ์งˆ๋ฌธ์ด ๋– ์˜ค๋ฅด๋ฆฌ๋ผ. "includeTeardownPages, includeSuiteTeardownPage, includeTeardownPage๋„ ์žˆ๋‚˜์š”?" ๋‹น์—ฐํ•˜๋‹ค. '์ง์ž‘ํ•˜๋Š” ๋Œ€๋กœ'๋‹ค.(p.50)
  • ํ•จ์ˆ˜์—์„œ ์ด์ƒ์ ์ธ ์ธ์ˆ˜ ๊ฐœ์ˆ˜๋Š” 0๊ฐœ(๋ฌดํ•ญ)๋‹ค. ๋‹ค์Œ์€ 1๊ฐœ(๋‹จํ•ญ)๊ณ , ๋‹ค์Œ์€ 2๊ฐœ(์ดํ•ญ)๋‹ค. 3๊ฐœ(์‚ผํ•ญ)๋Š” ๊ฐ€๋Šฅํ•œ ํ”ผํ•˜๋Š” ํŽธ์ด ์ข‹๋‹ค. 4๊ฐœ ์ด์ƒ(๋‹คํ•ญ)์€ ํŠน๋ณ„ํ•œ ์ด์œ ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ํŠน๋ณ„ํ•œ ์ด์œ ๊ฐ€ ์žˆ์–ด๋„ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ ๋œ๋‹ค.(p.50)
  • ํ”Œ๋ž˜๊ทธ ์ธ์ˆ˜๋Š” ์ถ”ํ•˜๋‹ค. ํ•จ์ˆ˜๋กœ ๋ถ€์šธ ๊ฐ’์„ ๋„˜๊ธฐ๋Š” ๊ด€๋ก€๋Š” ์ •๋ง๋กœ ๋”์ฐํ•˜๋‹ค. ์™œ๋ƒ๊ณ ? ํ•จ์ˆ˜๊ฐ€ ํ•œ๊บผ๋ฒˆ์— ์—ฌ๋Ÿฌ ๊ฐ€์ง€๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค๊ณ  ๋Œ€๋†“๊ณ  ๊ณตํ‘œํ•˜๋Š” ์…ˆ์ด๋‹ˆ๊นŒ!(p.51)
  • ํ•จ์ˆ˜ ์ด๋ฆ„์— ํ‚ค์›Œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ํ˜•์‹์ด๋‹ค. ์ฆ‰, ํ•จ์ˆ˜ ์ด๋ฆ„์— ์ธ์ˆ˜ ์ด๋ฆ„์„ ๋„ฃ๋Š”๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, assertEquals ๋ณด๋‹ค assertExpetedEqualsActual (expected, actual)์ด ๋” ์ข‹๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ธ์ˆ˜ ์ˆœ์„œ๋ฅผ ๊ธฐ์–ตํ•  ํ•„์š”๊ฐ€ ์—†์–ด์ง„๋‹ค.

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

์˜ค๋Š˜ ์ฝ์€ ๋ถ€๋ถ„์€ ์ •๋ง ๋„์›€์ด ๋งŽ์ด ๋๋‹ค.

๋งค๋ฒˆ ์ฝ”๋“œ๋ฅผ ์งค ๋•Œ ํ•จ์ˆ˜๋ฅผ ์–ด๋””๊นŒ์ง€ ๋‚˜๋ˆ ์•ผ ํ• ์ง€, ์ด๋ฆ„์€ ์–ด๋–ป๊ฒŒ ์ง€์–ด์•ผ ํ•˜๋Š” ๊ฑด์ง€ ํ‰์†Œ์— ์ •๋ง ๋ฌผ์–ด๋ณผ ์‚ฌ๋žŒ๋„ ์—†๊ณ  ๊ถ๊ธˆํ–ˆ๋˜ ๋ถ€๋ถ„์ด๋‹ค.

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

์ด๋Ÿฐ ๋‚ด์šฉ๋“ค์„ ๋นจ๋ฆฌ ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์งœ๋ฉด์„œ ์ ์šฉํ•ด ๋ณด๊ณ  ์‹ถ์€ ๋งˆ์Œ์— ์„ค๋ Œ๋‹ค.

์˜ค๋Š˜ ์ด ๋ถ€๋ถ„์„ ์ฝ๊ณ  ์–ด์ œ๋ณด๋‹ค ์กฐ๊ธˆ์ด๋‚˜๋งˆ ๋‚˜์€ ๋‚ด๊ฐ€ ๋œ ๊ฒƒ ๊ฐ™์•„์„œ ๋งŒ์กฑํ•œ๋‹ค.

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

์ถ”์ƒํ™”๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ์ž์ฃผ ๋“ฑ์žฅํ–ˆ๋Š”๋ฐ, ์ด ์ถ”์ƒํ™”๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ๋ญ”์ง€ ์•Œ์•„๋ดค๋‹ค.

์ถ”์ƒํ™”๋ž€ ๊ตฌ์ฒด์ ์ธ ๊ฒƒ์„ ๊ฐ์ถ”๊ณ  ๋ณด๊ณ  ์‹ถ์–ด ํ•˜๋Š” ์ „์ฒด์ ์ธ ํŠน์„ฑ์„ ๋“œ๋Ÿฌ๋‚ด๋Š” ๊ฒƒ์ด๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์—์„œ์˜ ์ถ”์ƒํ™”๋ž€ ์ธํ„ฐํŽ˜์ด์Šค์— ์˜์กดํ•˜๊ณ , ๊ตฌ์ฒด์ ์ธ ๊ตฌํ˜„์—๋Š” ์˜์กดํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋งํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ํ•จ์ˆ˜๋ฅผ ๊ธฐ๋ณธ์ ์ธ ์ถ”์ƒํ™” ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ํ•จ์ˆ˜์˜ ์ด๋ฆ„์„ ํ†ตํ•ด์„œ ๊ตฌ์ฒด์ ์œผ๋กœ ํ•˜๋Š” ์ผ์„ ์ถ”์ƒํ™”์‹œ์ผœ์„œ ๋‚˜ํƒ€๋‚ธ๋‹ค๋Š” ๋œป์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, "printf()"๊ฐ€ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ถœ๋ ฅ์„ ๋‹ด๋‹น ํ•œ๋‹ค๋Š” ์˜๋ฏธ๋กœ, ๊ตฌ์ฒด์ ์ธ ์ถœ๋ ฅ์— ๊ด€๋ จ๋œ ๋‚ด์šฉ์„ ์ถ”์ƒ์ ์œผ๋กœ ๋Œ€ํ‘œํ•ด์„œ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=knix008&logNo=220700047637

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

  • ํ•จ์ˆ˜๋Š” ํ•œ ๊ฐ€์ง€ ์ผ๋งŒ ์ตœ๋Œ€ํ•œ ์ž‘๊ฒŒ!
  • ๊ธธ๊ณ  ์„œ์ˆ ์ ์ธ ์ด๋ฆ„์ด ์งง๊ณ  ์–ด๋ ค์šด ์ด๋ฆ„๋ณด๋‹ค ์ข‹๋‹ค.
  • ํ•จ์ˆ˜๋‹น ์ถ”์ƒํ™” ์ˆ˜์ค€์€ ํ•˜๋‚˜๋กœ.
๋ฐ˜์‘ํ˜•
profile

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

@์šฉ๋‡ฝ

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