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

[ํด๋ฆฐ์ฝ”๋“œ ์Šคํ„ฐ๋””] 1&2์žฅ. ํด๋ฆฐ ์ฝ”๋“œ์™€ ์˜๋ฏธ ์žˆ๋Š” ์ด๋ฆ„

z_ero 2025. 4. 30. 23:23


๊ฐœ๋ฐœ์„ ๊ณต๋ถ€ํ•˜๋‹ค ๋ณด๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋งˆ์ฃผํ•˜๊ฒŒ ๋˜๋Š” ๊ฐœ๋…, ํด๋ฆฐ ์ฝ”๋“œ. ๊ทธ์ค‘์—์„œ๋„ ใ€ŽClean Codeใ€๋ผ๋Š” ์ฑ…์ด ๊ฐ€์žฅ ์œ ๋ช…ํ•˜๋‹ค.

์ด๋ฒˆ์— ์ข‹์€ ๊ธฐํšŒ๋กœ ํด๋ฆฐ์ฝ”๋“œ ์Šคํ„ฐ๋””๋ฅผ ์ง„ํ–‰ํ•˜๊ฒŒ ๋๋‹ค.



๊ฐ ์žฅ์˜ ๋‚ด์šฉ์„ ๋ธ”๋กœ๊ทธ์— ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•ด๋ณผ ์˜ˆ์ •์ด๊ณ , ์˜ค๋Š˜์€ 1์žฅ๊ณผ 2์žฅ์˜ ๋‚ด์šฉ์„ ํ•จ๊ป˜ ๋‹ค๋ค„๋ณด์ž.


1์žฅ. ๊นจ๋—ํ•œ ์ฝ”๋“œ

๐Ÿงผ ๊นจ๋—ํ•œ ์ฝ”๋“œ๋ž€?

ํด๋ฆฐ ์ฝ”๋“œ๋ฅผ ์งœ์•ผ ํ•œ๋‹ค๋Š” ๋ง์„ ์šฐ๋ฆฌ๋Š” ์ •๋ง ์ˆ˜๋„ ์—†์ด ๋“ฃ๋Š”๋‹ค.
๊ทธ๋Ÿฐ๋ฐ ์™œ ๊ทธ๋ž˜์•ผ ํ• ๊นŒ? ์–ด๋–ป๊ฒŒ ์งœ๋Š” ๊ฒŒ ํด๋ฆฐ ์ฝ”๋“œ์ผ๊นŒ?

๊นจ๋—ํ•œ ์ฝ”๋“œ๊ฐ€ ์™œ ํ•„์š”ํ•œ์ง€๋Š” ์‚ฌ์‹ค ๋‹ค๋“ค ํ•œ ๋ฒˆ์ฏค ๊ฒช์–ด๋ดค์„ ๊ฑฐ๋‹ค.

“ํ•œ ์ค„๋งŒ ๊ณ ์น˜๋ฉด ๋  ์ค„ ์•Œ์•˜๋Š”๋ฐ, ๋ชจ๋“ˆ ์ˆ˜๋ฐฑ ๊ฐœ๋ฅผ ๊ฑด๋“œ๋ฆฌ๊ฒŒ ๋์–ด์š”…”
“์ฝ”๋“œ ์ˆ˜์ •ํ•  ๋•Œ๋งˆ๋‹ค ์—‰๋šฑํ•œ ๋ฐ์„œ ๋ฒ„๊ทธ๊ฐ€ ๋‚˜์š”…”


์ฑ…์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ๋งํ•œ๋‹ค.

๊ธฐํ•œ์„ ๋งž์ถ”๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€, ์ฝ”๋“œ๋ฅผ ๊นจ๋—ํ•˜๊ฒŒ ์งœ๋Š” ๊ฒƒ๋ฟ์ด๋‹ค.
๋‚˜์œ ์ฝ”๋“œ๋Š” ๊ฒฐ๊ตญ ์†๋„๋ฅผ ๋А๋ฆฌ๊ฒŒ ํ•œ๋‹ค.


์ค‘์š”ํ•œ ๊ฑด, ์ด๊ฑธ ๋‹จ์ˆœํ•œ ๊ธฐ์ˆ  ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ ‘์ „๋ฌธ๊ฐ€๋กœ์„œ์˜ ํƒœ๋„’๋กœ ๋ณธ๋‹ค๋Š” ์ ์ด๋‹ค.


๊ฐœ๋ฐœ์ž๋„ ์˜์‚ฌ์ฒ˜๋Ÿผ ์ „๋ฌธ์„ฑ์„ ๊ฐ–์ถ˜ ์ฑ…์ž„ ์žˆ๋Š” ์ง์—…์ธ์ด๋ผ๋Š” ๋œป์ด๋‹ค.
ํ™˜์ž๊ฐ€ ์‹œ๊ฐ„ ์—†๋‹ค๊ณ  ์ˆ˜์ˆ  ์ „์— ์† ์”ป์ง€ ๋ง๋ผ๊ณ  ํ•ด๋„, ์˜์‚ฌ๋Š” ์ ˆ๋Œ€ ๊ทธ ๋ง์„ ๋”ฐ๋ฅด์ง€ ์•Š๋Š”๋‹ค.
๊ทธ๊ฒŒ ํ™˜์ž๋ฅผ ์œ„ํ•œ ๊ธธ์ด๊ณ , ์ž์‹ ์ด ์ง€์ผœ์•ผ ํ•  ์›์น™์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


๊ฐœ๋ฐœ์ž๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค.
๊ธฐํ•œ์— ์ซ“๊ธด๋‹ค๊ณ  ํ•ด์„œ ๋‚˜์œ ์ฝ”๋“œ๋ฅผ ๊ทธ๋Œ€๋กœ ๋‘๋ฉด ์•ˆ ๋œ๋‹ค.
์ข‹์€ ์ฝ”๋“œ๋ฅผ ์ง€ํ‚ค๋Š” ์ผ์€ ๊ฒฐ๊ตญ ์šฐ๋ฆฌ ๋ชซ์ด๋‹ค.


๐Ÿง  ๊นจ๋—ํ•œ ์ฝ”๋“œ๋Š” ์–ด๋–ค ์ฝ”๋“œ์ผ๊นŒ?

์ฑ…์—์„œ๋Š” ์—ฌ๋Ÿฌ ์œ ๋ช… ๊ฐœ๋ฐœ์ž๋“ค์˜ ์ƒ๊ฐ์„ ์ธ์šฉํ•ด ์ด๋ ‡๊ฒŒ ์ •๋ฆฌํ•œ๋‹ค.

  • ์ž˜ ์ฝํžˆ๋Š” ์ฝ”๋“œ: ๋งˆ์น˜ ์ž˜ ์“ด ๋ฌธ์žฅ์ฒ˜๋Ÿผ
  • ํ•˜๋‚˜์˜ ์ฑ…์ž„๋งŒ ๊ฐ€์ง„ ์ฝ”๋“œ: ๊ฐ ํ•จ์ˆ˜์™€ ํด๋ž˜์Šค๊ฐ€ ‘๋”ฑ ํ•˜๋‚˜’์˜ ์ผ์„ ํ•จ
  • ์ฃผ์˜ ๊นŠ๊ฒŒ ์งœ์ธ ์ฝ”๋“œ: ๊ดœํžˆ ์†๋Œ€๊ธฐ ์‹ซ์„ ์ •๋„๋กœ ์™„์„ฑ๋„๊ฐ€ ๋†’์€ ์ฝ”๋“œ
  • ์ฝ๋Š” ์‚ฌ๋žŒ์„ ๋ฐฐ๋ คํ•œ ์ฝ”๋“œ: ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ  ๊ณ ์น  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ

๊ฒฐ๊ตญ ๊นจ๋—ํ•œ ์ฝ”๋“œ๋Š” ‘์ฝ๋Š” ์‚ฌ๋žŒ์„ ์œ„ํ•ด ์“ด ์ฝ”๋“œ’๋‹ค.
์šฐ๋ฆฌ๋Š” ์ฝ”๋“œ์˜ ์ €์ž๋‹ˆ๊นŒ, ๋…์ž๋ฅผ ์œ„ํ•œ ์ฑ…์ž„๋„ ์žˆ๋‹ค๋Š” ์–˜๊ธฐ๋‹ค.


2์žฅ. ์˜๋ฏธ ์žˆ๋Š” ์ด๋ฆ„

๊นจ๋—ํ•œ ์ฝ”๋“œ์˜ ์ฒซ๊ฑธ์Œ์€ ๋ฐ”๋กœ ์ด๋ฆ„ ์ง“๊ธฐ์—์„œ ์‹œ์ž‘๋œ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ํด๋ž˜์Šค, ํŒŒ์ผ ๋“ฑ ๊ฑฐ์˜ ๋ชจ๋“  ๊ฒƒ์— ์ด๋ฆ„์„ ๋ถ™์ธ๋‹ค.
์ด๋ฆ„ ํ•˜๋‚˜ ์ž˜ ์ง€์œผ๋ฉด ์ฝ”๋“œ ์ดํ•ด๋„ ์‰ฌ์›Œ์ง€๊ณ , ํ˜‘์—…ํ•  ๋•Œ ์„ค๋ช…ํ•  ์ผ๋„ ์ค„์–ด๋“ ๋‹ค!


โœ… ์ด๋ฆ„ ์ง“๋Š” ๊ธฐ๋ณธ ๊ทœ์น™

  • ์˜๋„๋ฅผ ๋ถ„๋ช…ํžˆ ๋“œ๋Ÿฌ๋‚ด๋ผ
    int d; → int elapsedTimeInDays;
    → ์ฃผ์„ ์—†์ด๋„ ๋ฌด์Šจ ๋œป์ธ์ง€ ์•Œ ์ˆ˜ ์žˆ๋„๋ก!
  • ํ•จ์ถ•์ ์ธ ํ‘œํ˜„์€ ํ”ผํ•˜๋ผ
    getThem() → getFlaggedCells()
    → ๋ฌด์Šจ ๊ฑธ ๊ฐ€์ ธ์˜ค๋Š”์ง€, ๋ˆ„๊ตฌ๋ฅผ ์œ„ํ•œ ํ•จ์ˆ˜์ธ์ง€ ๋ถ„๋ช…ํ•˜๊ฒŒ!
  • ๊ทธ๋ฆ‡๋œ ์ •๋ณด๋Š” ์ฃผ์ง€ ๋งˆ๋ผ
    accountList๊ฐ€ ์‹ค์ œ๋กœ List๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด?
    → accountGroup, accounts ๋“ฑ ๋” ์ •ํ™•ํ•œ ํ‘œํ˜„ ์‚ฌ์šฉํ•˜๊ธฐ
  • ์˜๋ฏธ ์—†๋Š” ๊ตฌ๋ถ„์€ ํ”ผํ•˜๋ผ
    getActiveAccount(), getActiveAccounts(), getActiveAccountInfo()
    → ํ—ท๊ฐˆ๋ฆฌ๊ธฐ๋งŒ ํ•˜๊ณ  ์ •๋ณด๋Š” ์—†์Œ
  • ๋ฐœ์Œ ๊ฐ€๋Šฅํ•œ ์ด๋ฆ„์„ ์จ๋ผ
    genymdhms → generationTimestamp
    → ์ฝ”๋“œ๋„ ๋ง์ฒ˜๋Ÿผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ฝํ˜€์•ผ ํ•œ๋‹ค
  • ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•œ ์ด๋ฆ„์„ ์จ๋ผ
    MAX_CLASSES_PER_STUDENT๋Š” grep์— ์ž˜ ์žกํžˆ์ง€๋งŒ 7์€ ์•„๋‹ˆ๋‹ค


๐Ÿ‘Ž ์ด๋Ÿฐ ๋„ค์ด๋ฐ์€ ํ”ผํ•˜์ž

  • a1, a2์ฒ˜๋Ÿผ ์—ฐ์†๋œ ์ˆซ์ž ๋ถ™์ด๊ธฐ
  • Info, Data, Object, Variable, Table ๊ฐ™์€ ๋ถˆ์šฉ์–ด ์“ฐ๊ธฐ
  • e, l, O์ฒ˜๋Ÿผ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋‹จ์ผ ๋ฌธ์ž
  • HolyHandGrenade() ๊ฐ™์€ ๊ธฐ๋ฐœํ•˜์ง€๋งŒ ์˜๋ฏธ ์—†๋Š” ์ด๋ฆ„

๐Ÿ” ์ผ๊ด€์„ฑ๊ณผ ๋งฅ๋ฝ๋„ ์ค‘์š”ํ•˜๋‹ค

  • get, fetch, retrieve๋ฅผ ํด๋ž˜์Šค๋งˆ๋‹ค ๋‹ค๋ฅด๊ฒŒ ์“ฐ๋ฉด ํ—ท๊ฐˆ๋ฆผ
  • ์ปจํŠธ๋กค๋Ÿฌ๋Š” Controller, ๋งค๋‹ˆ์ €๋Š” Manager์ฒ˜๋Ÿผ ํ†ต์ผ์„ฑ ์žˆ๊ฒŒ
  • Address, PostalAddress์ฒ˜๋Ÿผ ๋ถˆ๋ช…ํ™•ํ•œ ์ด๋ฆ„๋ณด๋‹ค ๋” ๊ตฌ์ฒด์ ์œผ๋กœ!


๊ทธ๋ฆฌ๊ณ  ๋ฌด์—‡๋ณด๋‹ค ์ค‘์š”ํ•œ ๊ฑด, ์ด๋ฆ„์ด ๋งฅ๋ฝ ์†์—์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๋Š” ๊ฒƒ.

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


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

๊นจ๋—ํ•œ ์ฝ”๋“œ๋Š” ๊ฒฐ๊ตญ ์ฝ๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ, ์˜๋„๊ฐ€ ๋ช…ํ™•ํ•˜๊ฒŒ ๋“œ๋Ÿฌ๋‚˜๋Š” ์ฝ”๋“œ๋‹ค.

์ด๋ฆ„์„ ์ž˜ ์ง“๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ์ฝ”๋“œ ์ „์ฒด๊ฐ€ ๊น”๋”ํ•ด์ง€๊ณ , ํ˜‘์—…์ด ์‰ฌ์›Œ์ง€๊ณ , ๋ฒ„๊ทธ๊ฐ€ ์ค„์–ด๋“ ๋‹ค.

๋‹น์žฅ์€ ๊ท€์ฐฎ์•„ ๋ณด์—ฌ๋„, ๊ฒฐ๊ตญ์€ ๊ฐ€์žฅ ๋น ๋ฅด๊ณ  ์•ˆ์ „ํ•œ ๊ธธ์ด๋ผ๋Š” ๊ฑธ ๊ธฐ์–ตํ•˜๋ฉฐ ๋‚˜๋„ ๋” ๋‚˜์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด ๊ณ„์†ํ•ด์„œ ๋…ธ๋ ฅํ•ด์•ผ๊ฒ ๋‹ค.

๋ฐ˜์‘ํ˜•