ํ”„๋กœ๊ทธ๋ž˜๋ฐ

[TIL] ํด๋ฆฐ์ฝ”๋“œ(Clean Code) - 4์žฅ. ์ฃผ์„

2022. 2. 25. 09:12
๋ฐ˜์‘ํ˜•

๐Ÿ“† TIL (Today I Learned) ๋‚ ์งœ

2022.02.25

๐Ÿ“š ์˜ค๋Š˜ ์ฝ์€ ๋ฒ”์œ„

3์žฅ. ์ฃผ์„

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

  • ๋‚˜์œ ์ฝ”๋“œ์— ์ฃผ์„์„ ๋‹ฌ์ง€ ๋งˆ๋ผ. ์ƒˆ๋กœ ์งœ๋ผ. (p.68)
  • ์ฝ”๋“œ๋Š” ๋ณ€ํ™”ํ•˜๊ณ  ์ง„ํ™”ํ•œ๋‹ค. ์ผ๋ถ€๊ฐ€ ์—ฌ๊ธฐ์„œ ์ €๊ธฐ๋กœ ์˜ฎ๊ฒจ์ง€๊ธฐ๋„ ํ•œ๋‹ค. ์กฐ๊ฐ์ด ๋‚˜๋‰˜๊ณ  ๊ฐˆ๋ผ์ง€๊ณ  ํ•ฉ์ณ์ง€๋ฉด์„œ ๊ดด๋ฌผ๋กœ ๋ณ€ํ•œ๋‹ค. ๋ถˆํ–‰ํ•˜๊ฒŒ๋„ ์ฃผ์„์ด ์–ธ์ œ๋‚˜ ์ฝ”๋“œ๋ฅผ ๋”ฐ๋ผ๊ฐ€์ง€๋Š” ์•Š๋Š”๋‹ค. ์•„๋‹ˆ, ๋”ฐ๋ผ๊ฐ€์ง€ ๋ชปํ•œ๋‹ค. ์ฃผ์„์ด ์ฝ”๋“œ์—์„œ ๋ถ„๋ฆฌ๋˜์–ด ์ ์  ๋” ๋ถ€์ •ํ™•ํ•œ ๊ณ ์•„๋กœ ๋ณ€ํ•˜๋Š” ์‚ฌ๋ก€๊ฐ€ ๋„ˆ๋ฌด๋„ ํ”ํ•˜๋‹ค. (p.68)
  • ๋ถ€์ •ํ™•ํ•œ ์ฃผ์„์€ ์•„์˜ˆ ์—†๋Š” ์ฃผ์„๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋‚˜์˜๋‹ค. ๋ถ€์ •ํ™•ํ•œ ์ฃผ์„์€ ๋…์ž๋ฅผ ํ˜„ํ˜นํ•˜๊ณ  ์˜ค๋„ํ•œ๋‹ค. ๋ถ€์ •ํ™•ํ•œ ์ฃผ์„์€ ๊ฒฐ์ฝ” ์ด๋ค„์ง€์ง€ ์•Š์„ ๊ธฐ๋Œ€๋ฅผ ์‹ฌ์–ด์ค€๋‹ค. ๋” ์ด์ƒ ์ง€ํ‚ฌ ํ•„์š”๊ฐ€ ์—†๋Š” ๊ทœ์น™์ด๋‚˜ ์ง€์ผœ์„œ๋Š” ์•ˆ ๋˜๋Š” ๊ทœ์น™์„ ๋ช…์‹œํ•œ๋‹ค. (p.69)
  • ์ฝ”๋“œ์— ์ฃผ์„์„ ์ถ”๊ฐ€ํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ์ด์œ ๋Š” ์ฝ”๋“œ ํ’ˆ์งˆ์ด ๋‚˜์˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ชจ๋“ˆ์„ ์งœ๊ณ  ๋ณด๋‹ˆ ์งœ์ž„์ƒˆ๊ฐ€ ์—‰๋ง์ด๊ณ  ์•Œ์•„๋จน๊ธฐ ์–ด๋ ต๋‹ค. ์ง€์ €๋ถ„ํ•œ ๋ชจ๋“ˆ์ด๋ผ๋Š” ์‚ฌ์‹ค์„ ์ž๊ฐํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์ž์‹ ์—๊ฒŒ ์ด๋ ‡๊ฒŒ ๋งํ•œ๋‹ค. “์ด๋Ÿฐ! ์ฃผ์„์„ ๋‹ฌ์•„์•ผ๊ฒ ๋‹ค!” ์•„๋‹ˆ๋‹ค! ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•ด์•ผ ํ•œ๋‹ค! (p.69)
  • ์ฃผ์ ˆ๊ฑฐ๋ฆฌ๋Š” ์ฃผ์„ : ํŠน๋ณ„ํ•œ ์ด์œ  ์—†์ด ์˜๋ฌด๊ฐ์œผ๋กœ ํ˜น์€ ํ”„๋กœ์„ธ์Šค์—์„œ ํ•˜๋ผ๊ณ  ํ•˜๋‹ˆ๊นŒ ๋งˆ์ง€๋ชปํ•ด ์ฃผ์„์„ ๋‹จ๋‹ค๋ฉด ์ „์ ์œผ๋กœ ์‹œ๊ฐ„๋‚ญ๋น„๋‹ค. ์ฃผ์„์„ ๋‹ฌ๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค๋ฉด ์ถฉ๋ถ„ํ•œ ์‹œ๊ฐ„์„ ๋“ค์—ฌ ์ตœ๊ณ ์˜ ์ฃผ์„์„ ๋‹ฌ๋„๋ก ๋…ธ๋ ฅํ•œ๋‹ค. (p.76)
  • ์˜๋ฌด์ ์œผ๋กœ ๋‹ค๋Š” ์ฃผ์„ : ๋ชจ๋“  ํ•จ์ˆ˜์— Javadocs๋ฅผ ๋‹ฌ๊ฑฐ๋‚˜ ๋ชจ๋“  ๋ณ€์ˆ˜์— ์ฃผ์„์„ ๋‹ฌ์•„์•ผ ํ•œ๋‹ค๋Š” ๊ทœ์น™์€ ์–ด๋ฆฌ์„๊ธฐ ๊ทธ์ง€์—†๋‹ค. ์ด๋Ÿฐ ์ฃผ์„์€ ์ฝ”๋“œ๋ฅผ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ค๋ฉฐ, ๊ฑฐ์ง“๋ง์„ ํผ๋œจ๋ฆฌ๊ณ , ํ˜ผ๋™๊ณผ ๋ฌด์งˆ์„œ๋ฅผ ์ดˆ๋ž˜ํ•œ๋‹ค. (p.80)
  • ์ด๋ ฅ์„ ๊ธฐ๋กํ•˜๋Š” ์ฃผ์„ : ์˜ˆ์ „์—๋Š” ๋ชจ๋“  ๋ชจ๋“ˆ ์ฒซ๋จธ๋ฆฌ์— ๋ณ€๊ฒฝ ์ด๋ ฅ์„ ๊ธฐ๋กํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๊ด€๋ก€๊ฐ€ ๋ฐ”๋žŒ์งํ–ˆ๋‹ค. ๋‹น์‹œ์—๋Š” ์†Œ์Šค ์ฝ”๋“œ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด ์—†์—ˆ์œผ๋‹ˆ๊นŒ. ํ•˜์ง€๋งŒ ์ด์ œ๋Š” ํ˜ผ๋ž€๋งŒ ๊ฐ€์ค‘ ํ•  ๋ฟ์ด๋‹ค. ์™„์ „ํžˆ ์ œ๊ฑฐํ•˜๋Š” ํŽธ์ด ์ข‹๋‹ค. (p.80)
  • ๋‹ซ๋Š” ๊ด„ํ˜ธ์— ๋‹ค๋Š” ์ฃผ์„ : ๋‹ซ๋Š” ๊ด„ํ˜ธ์— ์ฃผ์„์„ ๋‹ฌ์•„์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค๋ฉด ๋Œ€์‹ ์— ํ•จ์ˆ˜๋ฅผ ์ค„์ด๋ ค ์‹œ๋„ํ•˜์ž. (p.85)
  • HTML ์ฃผ์„ : ์†Œ์Šค ์ฝ”๋“œ์—์„œ HTML ์ฃผ์„์€ ํ˜์˜ค ๊ทธ ์ž์ฒด๋‹ค. ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ฝ์–ด๋ณด๋ฉด ๋ฌด์Šจ ๋ง์ธ์ง€ ์•Œ๋ฆฌ๋ผ. HTML ์ฃผ์„์€ (์ฃผ์„์„ ์ฝ๊ธฐ ์‰ฌ์›Œ์•ผ ํ•˜๋Š”) ํŽธ์ง‘๊ธฐ/IDE์—์„œ์กฐ์ฐจ ์ฝ๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค. (Javadocs์™€ ๊ฐ™์€) ๋„๊ตฌ๋กœ ์ฃผ์„์„ ๋ฝ‘์•„ ์›น ํŽ˜์ด์ง€์— ์˜ฌ๋ฆด ์ž‘์ •์ด๋ผ๋ฉด ์ฃผ์„์— HTML ํƒœ๊ทธ๋ฅผ ์‚ฝ์ž…ํ•ด์•ผ ํ•˜๋Š” ์ฑ…์ž„์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์•„๋‹ˆ๋ผ ๋„๊ตฌ๊ฐ€ ์ ธ์•ผํ•œ๋‹ค. (p.87)
  • ๋„ˆ๋ฌด ๋งŽ์€ ์ •๋ณด : ์ฃผ์„์—๋‹ค ํฅ๋ฏธ๋กœ์šด ์—ญ์‚ฌ๋‚˜ ๊ด€๋ จ ์—†๋Š” ์ •๋ณด๋ฅผ ์žฅํ™ฉํ•˜๊ฒŒ ๋Š˜์–ด๋†“์ง€ ๋งˆ๋ผ. (p.88)
  • ํ•จ์ˆ˜ ํ—ค๋” : ์งง์€ ํ•จ์ˆ˜๋Š” ๊ธด ์„ค๋ช…์ด ํ•„์š” ์—†๋‹ค. ์งง๊ณ  ํ•œ ๊ฐ€์ง€๋งŒ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ์ด๋ฆ„์„ ์ž˜ ๋ถ™์ธ ํ•จ์ˆ˜๊ฐ€ ์ฃผ์„์œผ๋กœ ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•œ ํ•จ์ˆ˜๋ณด๋‹ค ํ›จ์”ฌ ์ข‹๋‹ค. (p.89)

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

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

๋ฐ˜์‘ํ˜•