[Book] 클린 μ•„ν‚€ν…μ²˜

2022. 11. 26. 17:13Β·πŸ“ Book/✏ Clean Code

클린 μ•„ν‚€ν…μ²˜

 

클린 μ•„ν‚€ν…μ²˜

 

1. μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜μ˜ μ€‘μš”μ„±

μ†Œν”„νŠΈμ›¨μ–΄κ°€ μ œκ³΅ν•˜λŠ” κ°€μΉ˜ 쀑 κΈ°λŠ₯κ³Ό ꡬ쑰 쀑 보톡 κΈ°λŠ₯에 μ§‘μ€‘ν•˜μ§€λ§Œ, 클린 μ•„ν‚€ν…μ²˜λ₯Ό μ œμ•ˆν•œ 엉클 λ°₯은 ꡬ쑰가 μ€‘μš”ν•˜λ‹€κ³  λ§ν•œλ‹€.

 

μš°λ¦¬κ°€ 좔ꡬ해야 ν•˜λŠ” μ½”λ“œ κ΅¬μ‘°λŠ” 정리가 μ•ˆλκ±°λ‚˜ λ„ˆλ¬΄ κΉ”λ”ν•œ μ½”λ“œλ³΄λ‹€ λ§Žμ€ 것듀이 μžˆμ§€λ§Œ λ‚˜λ¦„μ˜ μ§ˆμ„œκ°€ μžˆμ–΄ μ •λ¦¬λœ 것이닀. κ·Έλ ‡λ‹€λ©΄ μ™œ 쒋은 μ•„ν‚€ν…μ²˜κ°€ μ™œ μ€‘μš”ν• κΉŒ? μ½”λ“œλ₯Ό 읽고 μ΄ν•΄ν•˜κ³  μˆ˜μ • 및 μΆ”κ°€ν•˜λŠ” μœ μ§€ 보수의 κ³Όμ •μ—μ„œ μˆ˜μ›”ν•˜κ²Œ μ§„ν–‰ν•˜κΈ° μœ„ν•΄μ„œλŠ” κΈ°λŠ₯κ³Ό λΉ„μŠ·ν•˜κ²Œ ꡬ쑰가 μ€‘μš”ν•˜λ‹€. κ΅¬μ‘°λŠ” κΈ°λŠ₯을 λ’·λ°›μΉ¨ν•˜κ³  더 μ‰½κ²Œ κ°œλ°œν•  수 있게 ν•΄ μ€€λ‹€.

 

ꡬ쑰가 μ’‹μ§€λ§Œ κΈ°λŠ₯이 λ‚˜μ˜λ©΄, μ§€κΈˆμ€ λΆ€μ‘±ν•˜μ§€λ§Œ μœ μ§€ 보수의 λΉ„μš©μ΄ 적게 λ“ λ‹€. ν•˜μ§€λ§Œ κ·Έ λ°˜λŒ€λŠ” λΉ„μš©μ΄ 많이 λ“ λ‹€.

 

2. 쒋은 μ•„ν‚€ν…μ²˜λ₯Ό κ΅¬μ„±ν•˜λŠ” 방법

1) μ•„ν‚€ν…μ²˜ 원칙

μ½”λ“œλ₯Ό μ‰½κ²Œ νŒŒμ•…ν•˜κ³ , μ‰½κ²Œ λ³€κ²½ν•  수 있게 λ•λŠ” κ·œμΉ™μ΄λ‹€.

  • νŒ¨λŸ¬λ‹€μž„
  • 섀계 원칙(SOLID)
  •  μ»΄ν¬λ„ŒνŠΈ 응집성 원칙
  • μ»΄ν¬λ„ŒνŠΈ κ²°ν•© 원칙

 

2) μ•„ν‚€ν…μ²˜ νŒ¨ν„΄

쒋은 μ•„ν‚€ν…μ²˜λ₯Ό 작기 μœ„ν•œ λ ˆμ‹œν”Όλ‘œ κ·Έ 원칙듀을 따라 ν•˜κΈ°λ§Œ 해도 쒋은 ꡬ쑰λ₯Ό κ°€μ§ˆ 수 μžˆλ‹€.

  • κ³„μΈ΅ν˜• μ•„ν‚€ν…μ²˜
    • νŠΉμ§•: 전톡적인 μˆ˜ν‰μ  계측화
    • μž₯점: ꡬ쑰 λ‹¨μˆœ, 처음 μ‹œμž‘ν•  λ•Œ 적합, λ³΄νŽΈμ μ΄λΌμ„œ λͺ¨λ‘κ°€ μ΅μˆ™ν•¨
    • 단점: 업무 도메인에 λŒ€ν•΄ 아무것도 말해 μ£Όμ§€ μ•ŠμŒ, μ†Œν”„νŠΈμ›¨μ–΄κ°€ 컀지고 λ³΅μž‘ν•΄μ§€λ©΄ 쑰직화에 도움 μ•ˆ 됨, λ°μ΄ν„°λ² μ΄μŠ€ 주도 섀계 μœ λ„
  • 클린 μ•„ν‚€ν…μ²˜
    • νŠΉμ§•: 도메인이 쀑심(μ˜μ‘΄μ„± μ—­μ „ 이용)
    • μž₯점: κ·œμΉ™ λ‹¨μˆœ, 도메인이 μ„ΈλΆ€ 사항에 μ˜μ‘΄ν•˜μ§€ μ•ŠμŒ
    • 단점: κ³„μΈ΅ν˜•λ³΄λ‹€ νŒ¨ν‚€μ§€ ꡬ쑰가 볡작, λ ˆνΌλŸ°μŠ€κ°€ 적음

 

λ ˆμ‹œν”Ό(νŒ¨ν„΄) μ‚¬μš©λ²•μ€ λ‹€μŒκ³Ό κ°™λ‹€.

  1. 일단 λ ˆμ‹œν”Ό 따라 해보기
  2. 원칙듀을 ν•™μŠ΅ν•œ λ’€ λ‹€μ‹œ 따라 해보기
  3. 각자의 ν”„λ‘œμ νŠΈμ— μ μš©ν•΄ 보기
  4. κ³ λ―Όλ˜λŠ” 지점듀은 원칙에 맞게 λ²—μ–΄λ‚˜μ§€ μ•ŠλŠ” μ„ μ—μ„œ νƒ€ν˜‘ν•˜λ©° μ μš©ν•΄ 보기

 

3. 클린 μ•„ν‚€ν…μ²˜

클린 μ•„ν‚€ν…μ²˜λž€ 엉클 λ°₯이 쒋은 μ•„ν‚€ν…μ²˜μ˜ 곡톡 점을 합쳐 λ‚˜μ˜¨ 것이닀.

  • ν—₯사고날 + BCE(Boundary-Control Entity) + DCI(Data, Context and Interaction)

 

클린 μ•„ν‚€ν…μ²˜ λ‹€μ΄μ–΄κ·Έλž¨

 

클린 μ•„ν‚€ν…μ²˜ λ‹€μ΄μ–΄κ·Έλž¨μ˜ 핡심은 λ‹€μŒκ³Ό κ°™λ‹€.

  • μ€‘μš”λ„μ— 따라 계측을 λ‚˜λˆˆλ‹€.
  • μ˜μ‘΄μ„±μ˜ λ°©ν–₯은 항상 μ™Όμͺ½μ΄μ§€λ§Œ, λ‹€ν˜•μ„±μ„ μ΄μš©ν•΄ λ°”λ€” 수 μžˆλ‹€.
μ €μž‘μžν‘œμ‹œ (μƒˆμ°½μ—΄λ¦Ό)
'πŸ“ Book/✏ Clean Code' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [Book] ν΄λ¦°μ½”λ“œ - 14μž₯ 점진적인 κ°œμ„ 
  • [Book] ν΄λ¦°μ½”λ“œ - 13μž₯ λ™μ‹œμ„±
  • [Book] ν΄λ¦°μ½”λ“œ - 12μž₯ μ°½λ°œμ„±
  • [Book] ν΄λ¦°μ½”λ“œ - 11μž₯ μ‹œμŠ€ν…œ
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] 클린 μ•„ν‚€ν…μ²˜
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”