๐Ÿ“š/Clean Code(ํด๋ฆฐ ์ฝ”๋“œ)

[ํด๋ฆฐ์ฝ”๋“œ ์Šคํ„ฐ๋””] 4์žฅ. ์ฃผ์„

z_ero 2025. 5. 1. 02:26

4์žฅ. ์ฃผ์„

๐Ÿงพ ์ฃผ์„์€ ‘ํ•„์š”์•…’์ด๋‹ค

์ฃผ์„์€ ์ข‹์€ ์ฝ”๋“œ์˜ ๋Œ€์ฒด์žฌ๊ฐ€ ์•„๋‹ˆ๋‹ค.
์ฃผ์„์ด ๋งŽ๋‹ค๋Š” ๊ฑด, ์–ด์ฉŒ๋ฉด ์ฝ”๋“œ๋งŒ์œผ๋กœ๋Š” ์˜๋„๊ฐ€ ์ž˜ ์ „๋‹ฌ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ์‹ ํ˜ธ์ผ ์ˆ˜๋„ ์žˆ๋‹ค.

๋ฌผ๋ก  ์ฃผ์„์ด ํ•ญ์ƒ ๋‚˜์˜๋‹ค๋Š” ๋œป์€ ์•„๋‹ˆ๋‹ค.  ํ•„์š”ํ•œ ๊ฒฝ์šฐ๋„ ๋ถ„๋ช…ํžˆ ์žˆ๋‹ค.


๋‹ค๋งŒ ์ด ์žฅ์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ๊ฐ•์กฐํ•œ๋‹ค:

“์ฃผ์„์€ ์‹คํŒจ์˜ ์ง•ํ›„๋‹ค.”


์กฐ๊ธˆ ๊ณผ๊ฐํ•œ ํ‘œํ˜„์ด์ง€๋งŒ, ๊ทธ๋งŒํผ ‘์ฃผ์„ ์—†์ด๋„ ์ถฉ๋ถ„ํžˆ ์ฝํžˆ๋Š” ์ฝ”๋“œ’๋ฅผ ์ง€ํ–ฅํ•˜์ž๋Š” ๋ฉ”์‹œ์ง€๋กœ ๋ฐ›์•„๋“ค์ด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.
์ฃผ์„์„ ๋‹ฌ๊ธฐ ์ „, “ํ˜น์‹œ ์ฝ”๋“œ ์ž์ฒด๋กœ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜๋Š” ์—†์„๊นŒ?” ํ•˜๊ณ  ํ•œ ๋ฒˆ์ฏค ๋˜๋Œ์•„๋ณด๋Š” ์Šต๊ด€์ด ํ•„์š”ํ•˜๋‹ค๋Š” ์ด์•ผ๊ธฐ๋‹ค.


โŒ ๋‚˜์œ ์ฃผ์„ vs โœ… ์ข‹์€ ์ฃผ์„

โŒ ๋‚˜์œ ์ฃผ์„

  • ์ฝ”๋“œ๋ฅผ ๋ณด์™„ํ•˜๋ ค๋Š” ๋ณ€๋ช…์šฉ ์ฃผ์„
  • ๋„ˆ๋ฌด ์˜ค๋ž˜๋ผ์„œ ์‚ฌ์‹ค๊ณผ ์–ด๊ธ‹๋‚œ ์ฃผ์„
  • ์ค‘๋ณต๋˜๊ฑฐ๋‚˜ ์˜๋ฏธ ์—†๋Š” ์„ค๋ช…
  • ์ฃผ์„์œผ๋กœ ์ฒ˜๋ฆฌํ•ด๋ฒ„๋ฆฐ ์ฃฝ์€ ์ฝ”๋“œ
  • ๋„ˆ๋ฌด ์žฅํ™ฉํ•˜๊ฑฐ๋‚˜ ๋ชจํ˜ธํ•œ ํ‘œํ˜„

โœ… ์ข‹์€ ์ฃผ์„

  • ๋ฒ•์ , ๋ผ์ด์„ ์Šค ๊ด€๋ จ ์„ค๋ช…
  • ์ •๊ทœ์‹, ๋‚ ์งœ ํฌ๋งท ๋“ฑ ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ํ‘œํ˜„ ์„ค๋ช…
  • ๊ตฌํ˜„ ๋ฐฉ์‹์— ๋Œ€ํ•œ ๊ฒฐ์ • ์˜๋„ ๊ณต์œ 
  • ๊ฒฝ๊ณ ์„ฑ ์•ˆ๋‚ด, ํ…Œ์ŠคํŠธ ์กฐ๊ฑด, // TODO ์ฃผ์„ ๋“ฑ


๐Ÿ’ฅ ์ฃผ์„์ด ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ์ด์œ 

  • ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์ฝ”๋“œ๋งŒ ๋ฐ”๋€Œ๊ณ  ์ฃผ์„์€ ๋ฐฉ์น˜๋˜๊ธฐ ์‰ฝ๋‹ค
  • ์ž˜๋ชป๋œ ์ฃผ์„์€ ์—†๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ์œ„ํ—˜ํ•˜๋‹ค
  • IDE, ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ์žˆ๋Š” ์ง€๊ธˆ์€ “์ฃผ์„ ์ด๋ ฅ”๋„ ๋ถˆํ•„์š”ํ•˜๋‹ค

์ง„์‹ค์€ ์ฝ”๋“œ์— ์žˆ๋‹ค.
์ฝ”๋“œ๋งŒ์ด ์ž๊ธฐ ์ผ์„ ์ง„์‹ค๋˜๊ฒŒ ๋งํ•œ๋‹ค.


๐Ÿ›  ์ฃผ์„๋ณด๋‹ค ๋” ์ข‹์€ ์„ ํƒ: ์ฝ”๋“œ๋กœ ๋งํ•˜์ž

์ฃผ์„์„ ๋‹ฌ๊ธฐ ์ „์— ์ด๋ ‡๊ฒŒ ์ƒ๊ฐํ•ด๋ณด์ž.
“์ด๊ฑธ ํ•จ์ˆ˜๋กœ ๋นผ๊ฑฐ๋‚˜, ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ๋ฐ”๊พธ๋ฉด ์„ค๋ช… ์—†์ด๋„ ์•Œ ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ?”

๐Ÿ’ฌ ์˜ˆ์‹œ 1: ์กฐ๊ฑด๋ฌธ ์„ค๋ช…์„ ํ•จ์ˆ˜๋กœ ๋ฐ”๊พธ๊ธฐ

// ์ง์›์ด ๋ณต์ง€ ํ˜œํƒ ๋Œ€์ƒ์ธ์ง€ ํ™•์ธ if ((employee.flags & HOURLY_FLAG) && (employee.age > 65))


→ ์ด๋ ‡๊ฒŒ ๋ฐ”๊พธ๋ฉด ์ฃผ์„์ด ํ•„์š” ์—†๋‹ค:

if (employee.isEligibleForFullBenefits())

 

๐Ÿ’ฌ ์˜ˆ์‹œ 2: ๊ณ„์‚ฐ ์ฃผ์„ ๋Œ€์‹  ๋ณ€์ˆ˜๋กœ ๋ถ„๋ฆฌ

// ๊ธฐ๋ณธ ๊ธ‰์—ฌ + ์ˆ˜๋‹น - ์„ธ๊ธˆ double salary = (basePay + bonus) - tax;

 

→ ๋” ์ฝ๊ธฐ ์‰ฌ์šด ๋ฐฉ์‹:

double grossIncome = basePay + bonus; double salary = grossIncome - tax;


๐Ÿงน ๊ทธ๋ฐ–์— ํ”ผํ•ด์•ผ ํ•  ์ฃผ์„ ์Šต๊ด€

  • ์ฃผ์„์œผ๋กœ ์ฒ˜๋ฆฌ๋œ ์ฝ”๋“œ → ์ง€์šฐ๊ณ  Git์— ๋งก๊ธฐ์ž
  • ๋‹ซ๋Š” ๊ด„ํ˜ธ ์˜† ์ฃผ์„ → ํ•จ์ˆ˜๊ฐ€ ๋„ˆ๋ฌด ํฌ๋‹ค๋Š” ์‹ ํ˜ธ์ผ ์ˆ˜ ์žˆ์Œ
  • ๋ฐฐ๋„ˆ์ฒ˜๋Ÿผ ์ค„ ๊ธ‹๋Š” ์ฃผ์„ → ํ•„์š”์—†์Œ1
  • ์˜๋ฏธ ์—†๋Š” Javadoc (/** the name */) → ํ•„์š”์—†์Œ2
  • ์ „์—ญ ์‹œ์Šคํ…œ ์„ค๋ช…์„ ํŠน์ • ํ•จ์ˆ˜ ์ฃผ์„์— → ํ˜ผ๋ž€๋งŒ ์คŒ

โœ๏ธ ๋งˆ๋ฌด๋ฆฌํ•˜๋ฉฐ

“์ฃผ์„์€ ์‹คํŒจ๋ฅผ ๋งŒํšŒํ•˜๋Š” ์ˆ˜๋‹จ์ด์ง€, ์ž๋ž‘ํ•  ๊ฒŒ ์•„๋‹ˆ๋‹ค.” 



์กฐ๊ธˆ ๊ฐ•ํ•˜๊ฒŒ ๋“ค๋ฆด ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์ด ๋ง์˜ ํ•ต์‹ฌ์€ “์ฝ”๋“œ ์ž์ฒด๊ฐ€ ๋งํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ตณ์ด ์ฃผ์„์— ์˜์กดํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค”๋Š” ๋œป์ด๋‹ค.

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

 

์กฐ๊ธˆ์”ฉ ๊ฐœ์„ ํ•ด๋‚˜๊ฐ€๋ฉฐ ์ฃผ์„ ์—†์ด๋„ ์˜๋„๊ฐ€ ๋ณด์ด๋Š” ์ฝ”๋“œ๋ฅผ ๋งŒ๋“œ๋Š” ์Šต๊ด€์„ ๊ฐ€์ ธ๋ด์•ผ๊ฒ ๋‹ค๐Ÿ‘Š

๋ฐ˜์‘ํ˜•