Clean Code

์ฃผ์š” ๋‚ด์šฉ

์žŠ์œผ๋ฉด ์•ˆ๋˜๋Š” ๊ฒƒ ์œ„์ฃผ๋กœ

๊ฐ€๋…์„ฑ

  • private ๋ฉ”์„œ๋“œ -> ์ˆœ์„œ์— ๋งž๊ฒŒ ์ฝํž ์ˆ˜ ์žˆ๊ฒŒ ๋ฐฐ์น˜

  • ์นด๋ฉœ์ผ€์ด์Šค

  • ์ž๋ฐ” ์ปจ๋ฒค์…˜

  • ๋ฉ”์„œ๋“œ๋Š” ํ•˜๋‚˜์˜ ๊ธฐ๋Šฅ๋งŒ

  • ์ค‘๋ณต ์ง€์–‘ -> ๋ฉ”์„œ๋“œํ™”

  • ๋ฉ”์„œ๋“œํ™” -> ํด๋ž˜์Šคํ™”

  • ํ•„๋“œ๋Š” ์—ฐ๊ด€๋œ ๋‚ด์šฉ์œผ๋กœ ๊ธฐ์ˆ  -> ๋‚ด๋ถ€์‘์ง‘๋„ ๋†’๊ฒŒ, ํด๋ž˜์Šค๊ฐ„ ๊ฒฐํ•ฉ๋„ ๋‚ฎ๊ฒŒ

SOLID

  • SRP : ๋‹จ์ผ์ฑ…์ž„์›์น™

    • ํ•œ ํด๋ž˜์Šค๋Š” ํ•˜๋‚˜์˜ ์ฑ…์ž„์„ ๊ฐ€์ ธ์•ผํ•œ๋‹ค.

    • ์ฆ‰, ์ˆ˜์ •์‚ฌํ•ญ์ด ๋ฐœ์ƒ์‹œ ํ•œํด๋ž˜์Šค๋‚ด์—์„œ ์ฑ…์ž„์„ ์ ธ์•ผํ•˜๊ณ , ๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์—†์–ด์•ผ ํ•œ๋‹ค

  • OCP : ๊ฐœ๋ฐฉํ์‡„์›์น™

    • ํ™•์žฅ์—๋Š” ์—ด๋ ค์žˆ๊ณ , ๋ณ€๊ฒฝ/์ˆ˜์ •์—๋Š” ๋‹ซํ˜€ ์žˆ์–ด์•ผํ•œ๋‹ค.

  • LSP : ๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™

    • ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฐ์ฒด๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์ •ํ™•์„ฑ์„ ๊นจ๋œจ๋ฆฌ์ง€ ์•Š์œผ๋ฉด์„œ ํ•˜์œ„ ํƒ€์ž…์˜ ์ธ์Šคํ„ด์Šค๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์–ด์•ผํ•œ๋‹ค.

    • ๋‹คํ˜•์„ฑ, ์ถ”์ƒํ™”๋“ฑ๊ณผ ๊ด€๋ จ

  • ISP : ์ธํ„ฐํŽ˜์ด์Šค ๋ถ„๋ฆฌ ์›์น™

    • ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ชจ๋“ˆํ™”

    • ์ž˜๊ฒŒ ๋ถ„๋ฆฌํ•˜์—ฌ ์—ฌ๋Ÿฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ implement ํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์Šคํ…œ์œผ๋กœ ๊ตฌ์ถ•

  • DIP : ์˜์กด๊ด€๊ณ„ ์—ญ์ „ ์›์น™

    • ์ถ”์ƒํ™”๋œ ํ‹€(์ธํ„ฐํŽ˜์ด์Šค)์— ์˜์กดํ•ด์•ผํ•จ. ๊ตฌํ˜„์ฒด์— ์˜์กดํ•ด์„œ๋Š” ์•ˆ๋จ

    • ๊ณ ์ˆ˜์ค€ ๋ชจ๋“ˆ๊ณผ ์ €์ˆ˜์ค€ ๋ชจ๋“ˆ์—์„œ ๊ณ ์ˆ˜์ค€ -> ์ €์ˆ˜์ค€์„ ์˜์กดํ•˜๋Š”๊ฒŒ ํ๋ฆ„์ƒ ๋งž์œผ๋‚˜ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์˜์กด์„ฑ์ด ์˜ฌ๋ผ๊ฐ€์—ฌ ํ™•์žฅ์„ฑ์ด ๋–จ์–ด์ง

    • ๊ณ ์ˆ˜์ค€์—์„œ ์ธํ„ฐํŽ˜์ด์Šค ๋“ฑ ์ถ”์ƒํ™” ์ œ๊ณต -> ์ €์ˆ˜์ค€์—์„œ ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„ํ•˜์—ฌ ํ™•์žฅ์„ฑ์„ ๊ฐ–๋„๋ก ์œ ์—ฐํ•œ ์„ค๊ณ„๋ฅผ ํ•˜๊ธฐ ์œ„ํ•œ ์›์น™

DRY

  • Don't Repeat Yourself : ๋ฐ˜๋ณต์„ ์ตœ์†Œํ™”.์ค‘๋ณต ์ œ๊ฑฐ

KISS

Last updated