πŸ“˜ν΄λ¦°μ½”λ“œ (2022.02.09) - 클래슀 (1)

μ‹ μœ€μ² Β·2022λ…„ 2μ›” 9일
0

ν΄λ¦°μ½”λ“œ

λͺ©λ‘ 보기
17/22

DAY 20

였늘 읽은 λ²”μœ„

10μž₯ 클래슀 ~p185

πŸ˜ƒ μ±…μ—μ„œ κΈ°μ–΅ν•˜κ³  싢은 λ‚΄μš©μ„ μ¨λ³΄μ„Έμš”.

  • ν΄λž˜μŠ€λŠ” μž‘μ•„μ•Όν•œλ‹€

    • ν•¨μˆ˜κ³Ό λ§ˆμ°¬κ°€μ§€κ³  ν΄λž˜μŠ€λ„ μž‘κ²Œ λ§Œλ“€μ–΄μ•Όν•œλ‹€.
    • ν•¨μˆ˜λŠ” 물리적 ν–‰μˆ˜λ₯Ό μž‘κ²Œλ§Œλ“€μ—ˆμ§€λ§Œ, ν΄λž˜μŠ€λŠ” 'μ±…μž„'을 μž‘κ²Œ λ§Œλ“€μ–΄μ•Όν•œλ‹€.
    • 클래슀의 μž‘λͺ…이 κΈΈκ±°λ‚˜ λͺ¨ν˜Έν•˜λ©΄ 클래슀의 μ±…μž„μ΄ λ§Žλ‹€λŠ” 것이닀.
      'if', 'and', 'or', 'but'등을 μ‚¬μš©ν•˜μ§€ μ•Šλ„λ‘ ν•˜μž.
  • 단일 μ±…μž„ 원칙

    • 단일 μ±…μž„ 원칙(SRP)λŠ” ν΄λž˜μŠ€λ‚˜ λͺ¨λ“ˆμ„ λ³€κ²½ν•  이유(μ±…μž„)κ°€ 단 ν•˜λ‚˜λΏμ΄μ–΄μ•Ό ν•œλ‹€λŠ” 원칙이닀.
    • μ±…μž„, 즉 λ³€κ²½ν•  이유λ₯Ό νŒŒμ•…ν•˜λ € μ• μ“°λ‹€ 보면 μ½”λ“œλ₯Ό μΆ”μƒν™”ν•˜κΈ° μ‰¬μ›Œμ§„λ‹€.
    • 'κΉ¨λ—ν•˜κ³  체계적인 μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μž‘μ„±ν•˜λ €λŠ” 것'보닀 'μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μž˜λŒμ•„κ°€κ²Œ ν•˜λ €λŠ” νƒœλ„'λŠ” λ¬Όλ‘  μ€‘μš”ν•˜κ³  μ˜¬λ°”λ₯Έ νƒœλ„μ΄λ‹€.
      ν•˜μ§€λ§Œ 잘 λŒμ•„κ°€λŠ” μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λ§Œλ“€μ—ˆλ‹€κ³  일을 끝났닀 μ—¬κΈ°λ©΄ λ¬Έμ œκ°€ 생긴닀.
    • 잘 λŒμ•„κ°€λŠ” μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λ§Œλ“€λ©΄ λ‹€μŒμœΌλ‘œ 체계적이고 κΉ¨λ—ν•˜κ²Œ λ¦¬νŽ™ν† λ§ν•˜μž.
  • 큰 λ‹€λͺ©μ  ν΄λž˜μŠ€λ³΄λ‹€ μž‘κ³  체계적인 ν΄λž˜μŠ€κ°€ 더 λ°”λžŒμ§ν•˜λ‹€!

  • 응집도(Cohesion)

    • ν΄λž˜μŠ€λŠ” μΈμŠ€ν„΄μŠ€ λ³€μˆ˜ μˆ˜κ°€ μž‘μ•„μ•Όν•˜κ³  각 λ©”μ„œλ“œλŠ” 클래슀 μΈμŠ€ν„΄μŠ€ λ³€μˆ˜λ₯Ό ν•˜λ‚˜ 이상 μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.
    • λ©”μ„œλ“œκ°€ μ‚¬μš©ν•˜λŠ” 클래슀의 μΈμŠ€ν„΄μŠ€ λ³€μˆ˜ μˆ˜κ°€ μ‘μ§‘λ„μ˜ 척도이닀.
    • 응집도가 높은 것은 λ°”λžŒμ§ν•˜μ§€ μ•Šλ‹€. 응집도가 높을 수둝 클래슀의 λ©”μ†Œλ“œμ™€ λ³€μˆ˜κ°€ μ„œλ‘œ μ˜μ‘΄ν•˜λ©° 논리적인 λ‹¨μœ„λ‘œ 묢이기 λ•Œλ¬Έμ΄λ‹€.
    • 'ν•¨μˆ˜λ₯Ό μž‘κ²Œ, λ§€κ°œλ³€μˆ˜λ₯Ό 적게'λΌλŠ” κ·œμΉ™μ„ λ”°λ₯΄λ©΄ λͺ‡λͺ‡ λ©”μ„œλ“œλ§Œμ΄ μ‚¬μš©ν•˜λŠ” μΈμŠ€ν„΄μŠ€ λ³€μˆ˜κ°€ λ§Žμ•„μ§€κ³  μ΄λŠ” μƒˆλ‘œμš΄ 클래슀둜 μͺΌκ°œμ•Ό ν•œλ‹€λŠ” μ‹ ν˜Έμ΄λ‹€.
      -> 즉 ν•œ μ±…μž„μ„ κ°€μ§„ μž‘μ€ 클래슀둜 λ‚˜λ‰  수 μžˆλŠ” λ°”λžŒμ§ν•œ λ°©ν–₯이닀.
  • 응집도λ₯Ό μœ μ§€ν•˜λ©΄ μž‘μ€ 클래슀 μ—¬λŸΏμ΄ λ‚˜μ˜¨λ‹€.

    • 큰 ν•¨μˆ˜λ₯Ό μͺΌκ°œκ³  μΈμŠ€ν„΄μŠ€ λ³€μˆ˜λ₯Ό λ§Œλ“€λ‹€λ³΄λ©΄ 각자 μ„œλ‘œ λ‹€λ₯Έ μΈμŠ€ν„΄μŠ€ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜κ²Œ 되고 응집λ ₯은 μ•½ν•΄μ§„λ‹€.
    • μ•½ν•΄μ§„ 응집λ ₯을 μ„œλ‘œ λ‹€λ₯Έ 클래슀둜 λΆ„λ¦¬ν•˜λ©΄ 응집λ ₯은 λ†’μ•„μ§€κ³  ν΄λž˜μŠ€λŠ” μž‘μ•„μ§„λ‹€.
    • 즉, 큰 ν•¨μˆ˜λ₯Ό μž‘μ€ ν•¨μˆ˜λ‘œ μͺΌκ°œλ‹€λ³΄λ©΄ μž‘μ€ 클래슀둜 λ‚˜λ‰  수 있고 점점 체계적인 ꡬ쑰가 μž‘νžŒλ‹€.

πŸ™„μ˜€λŠ˜ 읽은 μ†Œκ°μ€? λ– μ˜€λ₯΄λŠ” 생각을 κ°€λ³κ²Œ μ μ–΄λ³΄μ„Έμš”

  • κΉ¨λ—ν•œ μ½”λ“œλ₯Ό μœ„ν•΄μ„œ ν•¨μˆ˜μ™€ ν΄λž˜μŠ€λŠ” λΉ„μŠ·ν•œ κ·œμΉ™μ„ κ°–κ³  μžˆλŠ”κ±° κ°™λ‹€. ν•˜λ‚˜μ˜ 역할을 ν•˜λŠ”κ²Œ μ€‘μš”ν•˜κ³  ν™•μ‹€ν•œ 의미λ₯Ό μ§€λ‹Œ 이름이 ν•„μš”ν•˜λ©° μž‘κ²Œ λ§Œλ“œλŠ” 것이 μ€‘μš”ν•˜λ‹€. μ™„μ „ ν•¨μˆ˜μ˜ κ·œμΉ™ μ•„λ‹Œκ°€? κ·Έλž˜μ„œ κ·ΈλŸ°μ§€ 이해가 μž˜λ˜μ—ˆλ‹€. μ½”λ“œλ₯Ό 보면 이해가 더 μ•ˆκ°€λŠ” 것 κ°™λ‹€.

  • 응집도λ₯Ό μ„€λͺ…ν•˜λŠ” λΆ€λΆ„μ—μ„œ 큰 ν•¨μˆ˜λ₯Ό λ‚˜λˆ„λŠ” 것이 μ–΄λ–€ λ°©μ‹μœΌλ‘œ μ½”λ“œλ₯Ό 체계화할 수 μžˆλŠ”μ§€ μ„€λͺ…ν•˜λŠ” 과정이 μΈμƒκΉŠμ—ˆλ‹€.

✏ μ†Œκ° 3쀄 μš”μ•½

  • ν΄λž˜μŠ€λ„ ν•œ μ—­ν• λ§Œ, μ •ν™•ν•œ μ΄λ¦„μœΌλ‘œ, μž‘κ²Œ λ§Œλ“€μž.
  • 큰 ν•¨μˆ˜λ₯Ό λ‚˜λˆ„λ©° 응집도λ₯Ό μœ μ§€ν•˜λ©΄ 체계적인 μ½”λ“œκ°€ λ§Œλ“€μ–΄μ§„λ‹€.
  • 잘 λŒμ•„κ°€λŠ” μ½”λ“œλ₯Ό μž‘μ„±ν–ˆλ‹€κ³  λ§ˆμŒμ„ 놓지말고 κΉ¨λ—ν•˜κ³  체계적인 μ½”λ“œλ‘œ μˆ˜μ •ν•˜μž.
profile
기본을 νƒ„νƒ„ν•˜κ²ŒπŸŒ³

0개의 λŒ“κΈ€