[Book] ํด๋ฆฐ์ฝ”๋“œ - 10์žฅ ํด๋ž˜์Šค

2021. 2. 7. 15:02ยท๐Ÿ“ Book/โœ Clean Code

10์žฅ ํด๋ž˜์Šค

 

1. ํด๋ž˜์Šค ์ฒด๊ณ„

ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜๋Š” ํ‘œ์ค€ ์ž๋ฐ” ๊ด€๋ก€์— ๋”ฐ๋ฅด๋ฉด ๊ฐ€์žฅ ๋จผ์ € ๋ณ€์ˆ˜ ๋ชฉ๋ก์ด ๋‚˜์˜ค๊ณ  ๋ณ€์ˆ˜ ๋ชฉ๋ก ๋‹ค์Œ์—๋Š” ๊ณต๊ฐœ ํ•จ์ˆ˜๊ฐ€ ๋‚˜์˜จ๋‹ค.

  • ๋ณ€์ˆ˜: ์ •์  ๊ณต๊ฐœ ์ƒ์ˆ˜ -> ์ •์  ๋น„๊ณต๊ฐœ ๋ณ€์ˆ˜ -> ๋น„๊ณต๊ฐœ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ -> ๊ณต๊ฐœ ๋ณ€์ˆ˜
  • ๋น„๊ณต๊ฐœ ํ•จ์ˆ˜๋Š” ์ž์‹ ์„ ํ˜ธ์ถœํ•˜๋Š” ๊ณต๊ฐœ ํ•จ์ˆ˜ ์งํ›„์— ๋„ฃ๋Š”๋‹ค.

์ฆ‰, ์ถ”์ƒํ™” ๋‹จ๊ณ„๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ๋‚ด๋ ค๊ฐ„๋‹ค.

 

1) ์บก์Аํ™”

๋ณ€์ˆ˜์™€ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜๋Š” ๊ฐ€๋Šฅํ•œ ๊ณต๊ฐœํ•˜์ง€ ์•Š๋Š” ํŽธ์ด ๋‚ซ์ง€๋งŒ ๋ฐ˜๋“œ์‹œ ์ˆจ๊ฒจ์•ผ ํ•œ๋‹ค๋Š” ๋ฒ•์น™๋„ ์—†๋‹ค.

๋•Œ๋กœ๋Š” protected๋กœ ์„ ์–ธํ•ด ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์— ์ ‘๊ทผ์„ ํ—ˆ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๊ทธ์ „์— ๋น„๊ณต๊ฐœ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•  ์˜จ๊ฐ– ๋ฐฉ๋ฒ•์„ ๊ฐ•๊ตฌํ•˜๊ณ  ์บก์Аํ™”๋ฅผ ํ‘ธ๋Š” ๊ฒฐ์ •์€ ์ตœํ›„์˜ ์ˆ˜๋‹จ์ด๋‹ค.

 

2. ํด๋ž˜์Šค๋Š” ์ž‘์•„์•ผ ํ•œ๋‹ค!

ํ•จ์ˆ˜์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํด๋ž˜์Šค ์„ค๊ณ„์˜ ๊ธฐ๋ณธ์€ '์ž‘๊ฒŒ'์ด๋‹ค.

ํฐ ํด๋ž˜์Šค ๋ช‡ ๊ฐœ๊ฐ€ ์•„๋‹ˆ๋ผ ์ž‘์€ ํด๋ž˜์Šค ์—ฌ๋Ÿฟ์œผ๋กœ ์ด๋ค„์ง„ ์‹œ์Šคํ…œ์ด ๋” ๋ฐ”๋žŒ์งํ•˜๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด ์–ผ๋งˆ๋‚˜ ์ž‘์•„์•ผ ํ•˜๋Š”๊ฐ€?

ํ•จ์ˆ˜๋Š” ๋ฌผ๋ฆฌ์ ์ธ ํ–‰ ์ˆ˜๋กœ ํฌ๊ธฐ๋ฅผ ์ธก์ •ํ–ˆ๋‹ค.

ํด๋ž˜์Šค๋Š” ๋งก์€ ์ฑ…์ž„์„ ์„ผ๋‹ค.

 

ํด๋ž˜์Šค ์ด๋ฆ„์€ ํ•ด๋‹น ํด๋ž˜์Šค ์ฑ…์ž„์„ ๊ธฐ์ˆ ํ•˜๋Š”๋ฐ ์‹ค์ œ๋กœ ์ž‘๋ช…์€ ํด๋ž˜์Šค ํฌ๊ธฐ๋ฅผ ์ค„์ด๋Š” ์ฒซ ๋ฒˆ์งธ ๊ด€๋ฌธ์ด๋‹ค.

  • ๊ฐ„๊ฒฐํ•œ ์ด๋ฆ„์ด ๋– ์˜ค๋ฅด์ง€ ์•Š๋Š”๋‹ค๋ฉด ํด๋ž˜์Šค ํฌ๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ์ปค์„œ ๊ทธ๋ ‡๋‹ค.
  • ํด๋ž˜์Šค ์ด๋ฆ„์ด ๋ชจํ˜ธํ•˜๋‹ค๋ฉด ํด๋ž˜์Šค ์ฑ…์ž„์ด ๋„ˆ๋ฌด ๋งŽ์•„์„œ์ด๋‹ค.

 

1) ๋‹จ์ผ ์ฑ…์ž„ ์›์น™(Single Responsibility Principle)

๋‹จ์ผ ์ฑ…์ž„ ์›์น™์€ ํด๋ž˜์Šค๋‚˜ ๋ชจ๋“ˆ์„ ๋ณ€๊ฒฝํ•  ์ด์œ ๊ฐ€ ํ•˜๋‚˜, ๋‹จ ํ•˜๋‚˜๋ฟ์ด์–ด์•ผ ํ•œ๋‹ค๋Š” ์›์น™์ด๋‹ค.

๋ณ€๊ฒฝํ•  ์ด์œ ๋ฅผ ํŒŒ์•…ํ•˜๋ ค ์• ์“ฐ๋‹ค ๋ณด๋ฉด ์ฝ”๋“œ๋ฅผ ์ถ”์ƒํ™”ํ•˜๊ธฐ๋„ ์‰ฌ์›Œ์ง„๋‹ค.

 

2) ์‘์ง‘๋„

ํด๋ž˜์Šค๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ์ˆ˜๊ฐ€ ์ž‘์•„์•ผ ํ•˜๊ณ  ๊ฐ ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ๋Š” ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜ ์ด์ƒ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ๋ฉ”์„œ๋“œ๊ฐ€ ๋ณ€์ˆ˜๋ฅผ ๋” ๋งŽ์ด ์‚ฌ์šฉํ• ์ˆ˜๋ก ๋ฉ”์„œ๋“œ์™€ ํด๋ž˜์Šค๋Š” ์‘์ง‘๋„๊ฐ€ ๋” ๋†’๊ณ 

๋ชจ๋“  ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ๋ฉ”์„œ๋“œ๋งˆ๋‹ค ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค๋Š” ์‘์ง‘๋„๊ฐ€ ๊ฐ€์žฅ ๋†’๋‹ค.

 

์ผ๋ฐ˜์ ์œผ๋กœ ์ด์ฒ˜๋Ÿผ ์‘์ง‘๋„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ํด๋ž˜์Šค๋Š” ๊ฐ€๋Šฅํ•˜์ง€๋„ ๋ฐ”๋žŒ์งํ•˜์ง€๋„ ์•Š๋‹ค.

๊ทธ๋ ‡์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ์‘์ง‘๋„๊ฐ€ ๋†’์€ ํด๋ž˜์Šค๋ฅผ ์„ ํ˜ธํ•œ๋‹ค.

 

์‘์ง‘๋„๊ฐ€ ๋†’๋‹ค๋Š” ๋ง์€ ํด๋ž˜์Šค์— ์†ํ•œ ๋ฉ”์„œ๋“œ์™€ ๋ณ€์ˆ˜๊ฐ€ ์„œ๋กœ ์˜์กดํ•˜๋ฉฐ ๋…ผ๋ฆฌ์ ์ธ ๋‹จ์œ„๋กœ ๋ฌถ์ธ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

๋•Œ๋•Œ๋กœ ๋ช‡๋ช‡ ๋ฉ”์„œ๋“œ๋งŒ์ด ์‚ฌ์šฉํ•˜๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๊ฐ€ ์ƒ๊ธฐ๋Š”๋ฐ, ์ด๋Š” ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋กœ ์ชผ๊ฐœ์•ผ ํ•œ๋‹ค๋Š” ์‹ ํ˜ธ์ด๋‹ค.

 

3. ๋ณ€๊ฒฝํ•˜๊ธฐ ์‰ฌ์šด ํด๋ž˜์Šค

๋Œ€๋‹ค์ˆ˜ ์‹œ์Šคํ…œ์€ ์ง€์†์ ์ธ ๋ณ€๊ฒฝ์ด ๊ฐ€ํ•ด์ง„๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ญ”๊ฐ€ ๋ณ€๊ฒฝํ•  ๋•Œ๋งˆ๋‹ค ์‹œ์Šคํ…œ์ด ์˜๋„๋Œ€๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š์„ ์œ„ํ—˜์ด ๋”ฐ๋ฅธ๋‹ค.

๊นจ๋—ํ•œ ์‹œ์Šคํ…œ์€ ํด๋ž˜์Šค๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ์ •๋ฆฌํ•ด ๋ณ€๊ฒฝ์— ์ˆ˜๋ฐ˜ํ•˜๋Š” ์œ„ํ—˜์„ ๋‚ฎ์ถ˜๋‹ค.

 

์ƒˆ ๊ธฐ๋Šฅ์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด ๊ธฐ๋Šฅ์„ ๋ณ€๊ฒฝํ•  ๋•Œ ๊ฑด๋“œ๋ฆด ์ฝ”๋“œ๊ฐ€ ์ตœ์†Œ์ธ ์‹œ์Šคํ…œ ๊ตฌ์กฐ๊ฐ€ ๋ฐ”๋žŒ์งํ•˜๋‹ค.

์ด์ƒ์ ์ธ ์‹œ์Šคํ…œ์ด๋ผ๋ฉด ์ƒˆ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ๋•Œ ์‹œ์Šคํ…œ์„ ํ™•์žฅํ•  ๋ฟ ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

1) ๋ณ€๊ฒฝ์œผ๋กœ๋ถ€ํ„ฐ ๊ฒฉ๋ฆฌ

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—” ๊ตฌ์ฒด์ ์ธ ํด๋ž˜์Šค์™€ ์ถ”์ƒ ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค.

๊ตฌ์ฒด์ ์ธ ํด๋ž˜์Šค๋Š” ์ƒ์„ธํ•œ ๊ตฌํ˜„(์ฝ”๋“œ)์„ ํฌํ•จํ•˜์—ฌ ์ถ”์ƒ ํด๋ž˜์Šค๋Š” ๊ฐœ๋…๋งŒ ํฌํ•จํ•œ๋‹ค.

 

์ƒ์„ธํ•œ ๊ตฌํ˜„์— ์˜์กดํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ํด๋ž˜์Šค๋Š” ๊ตฌํ˜„์ด ๋ฐ”๋€Œ๋ฉด ์œ„ํ—˜์— ๋น ์ง„๋‹ค.

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ์ธํ„ฐํŽ˜์ด์Šค์™€ ์ถ”์ƒ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ด ๊ตฌํ˜„์ด ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ๊ฒฉ๋ฆฌํ•œ๋‹ค.

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)
'๐Ÿ“ Book/โœ Clean Code' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Book] ํด๋ฆฐ์ฝ”๋“œ - 12์žฅ ์ฐฝ๋ฐœ์„ฑ
  • [Book] ํด๋ฆฐ์ฝ”๋“œ - 11์žฅ ์‹œ์Šคํ…œ
  • [Book] ํด๋ฆฐ์ฝ”๋“œ - 9์žฅ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ
  • [Book] ํด๋ฆฐ์ฝ”๋“œ - 8์žฅ ๊ฒฝ๊ณ„
Blxxming
Blxxming
CS ์ง€์‹๊ณผ ๊ณต๋ถ€ํ•˜๋‹ค ๋ฐฐ์šด ๊ฒƒ, ๊ฒฝํ—˜ํ•œ ๊ฒƒ ๋“ฑ์„ ๊ธฐ๋กํ•˜๋Š” ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.
  • Blxxming
    ๐Ÿ’ก๋ฒˆ๋œฉ๐Ÿ’ก
    Blxxming
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • ๊ณต์ง€์‚ฌํ•ญ

    • Tech Interview
    • ๐Ÿ“š Tech (246)
      • ๐Ÿ“ Computer Science (96)
        • โœ OS (12)
        • โœ Network & Web (10)
        • โœ Database (11)
        • โœ Data Structure (6)
        • โœ Algorithm (40)
        • โœ Design Pattern (9)
        • โœ Cloud Computing (3)
        • โœ (5)
      • ๐Ÿ“ Language (73)
        • โœ Language (6)
        • โœ C & C++ (11)
        • โœ C# (19)
        • โœ JAVA (37)
      • ๐Ÿ“ Game (43)
        • โœ Computer Graphics (2)
        • โœ Unity (14)
        • โœ Unreal (26)
        • โœ (1)
      • ๐Ÿ“ Book (34)
        • โœ Effective (3)
        • โœ Game Server (16)
        • โœ Clean Code (14)
        • โœ (1)
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
Blxxming
[Book] ํด๋ฆฐ์ฝ”๋“œ - 10์žฅ ํด๋ž˜์Šค
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”