๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ฑ…/CleanCode

โœจ Clean Code 1์žฅ: ๊นจ๋—ํ•œ ์ฝ”๋“œ

๐Ÿ˜ก ๋‚˜์œ ์ฝ”๋“œ๋กœ ์ธํ•œ ๋ฌธ์ œ์ 

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

๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์˜ ์ฑ…์ž„

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

๐Ÿ›€๐Ÿป ๊นจ๋—ํ•œ ์ฝ”๋“œ๋ž€?

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

โœ๏ธ ๊นจ๋—ํ•œ ์ฝ”๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ์ž‘์„ฑํ• ๊นŒ?

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

๐Ÿ‘Š๐Ÿป ์šฐ๋ฆฌ๋Š” ์ €์ž๋‹ค.

  • Javadoc์—์„œ @author ํ•„๋“œ๋Š” ์ €์ž๋ฅผ ์†Œ๊ฐœํ•œ๋‹ค. ์ฆ‰, ๋…์ž์™€ ์ž˜ ์†Œํ†ตํ•  ์ฑ…์ž„๋„ ์žˆ๋‹ค.
  • ๋ณด์ด์Šค์นด์šฐํŠธ ๊ทœ์น™ (์บ ํ”„์žฅ์€ ์ฒ˜์Œ ์™”์„ ๋•Œ๋ณด๋‹ค ๋” ๊นจ๋—ํ•˜๊ฒŒ ํ•ด๋†“๊ณ  ๋– ๋‚˜๋ผ)
    ์ฆ‰, ์ฒดํฌ์•„์›ƒํ•  ๋•Œ๋ณด๋‹ค ์ข€ ๋” ๊นจ๋—ํ•œ ์ฝ”๋“œ๋ฅผ ์ฒดํฌ์ธํ•œ๋‹ค๋ฉด ์ฝ”๋“œ๋Š” ์ ˆ๋Œ€ ๋‚˜๋น ์ง€์ง€ ์•Š๋Š”๋‹ค.

๐Ÿ—ฃ ๋Š๋‚€์ 

๋ญ๋“ ์ง€ ๊ณผํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

ํด๋ฆฐ ์ฝ”๋“œ๋ฅผ ์ง€ํ‚ค๋Š” ๊ฒƒ์€ ์ข‹์ง€๋งŒ, ๊ณผ๋„ํ•˜๊ฒŒ ํ•  ํ•„์š”๋Š” ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

์ฆ‰, ๋„ˆ๋ฌด ์—„๊ฒฉํ•  ํ•„์š”๋Š” ์—†๋‹ค.

ํ‰์†Œ์— ์˜์‹์ ์œผ๋กœ ์—ฐ์Šตํ•ด์„œ ์Šต๊ด€์„ ๋“ค์ด์ž.