Skip to content

Latest commit

Β 

History

History
29 lines (20 loc) Β· 1.65 KB

SRP.md

File metadata and controls

29 lines (20 loc) Β· 1.65 KB

단일 μ±…μž„ 원칙(SRP)

응집도 : λͺ¨λ“ˆ μš”μ†Œ κ°„μ˜ κΈ°λŠ₯적 μ—°κ΄€

이 μ±…μ—μ„œλŠ” λͺ¨λ“ˆμ΄λ‚˜ 클래슀의 변경을 μ•ΌκΈ°ν•˜λŠ” 응집λ ₯에 λŒ€ν•΄ 이야기함.

ν•œ ν΄λž˜μŠ€λŠ” 단 ν•œκ°€μ§€μ˜ λ³€κ²½ μ΄μœ λ§Œμ„ κ°€μ Έμ•Ό ν•œλ‹€.

각 μ±…μž„μ„ μ™œ λ³„λ„μ˜ 클래슀둜 λΆ„λ¦¬ν•΄μ•Όν• κΉŒ?

  • 각 μ±…μž„μ΄ λ³€κ²½μ˜ μΆ•(λ³€κ²½μ˜ 이유) 이기 λ•Œλ¬Έμ΄λ‹€.
  • μš”κ΅¬μ‚¬ν•­μ΄ 변경될 λ•Œ, 클래슀 μ•ˆμ—μ„œμ˜ μ±…μž„ 변경을 톡해 λͺ…백해진닀.

ν•œ ν΄λž˜μŠ€κ°€ ν•˜λ‚˜ μ΄μƒμ˜ μ±…μž„μ„ λ§‘λŠ”λ‹€λ©΄?

  • μ±…μž„λ“€μ΄ κ²°ν•©λ˜μ–΄, ν•œ μ±…μž„μ— λŒ€ν•œ 변경이 λ‹€λ₯Έ μ±…μž„μ„ μΆ©μ‘±μ‹œν‚€λŠ” λŠ₯λ ₯을 μ €ν•˜μ‹œν‚¬ 수 μžˆλ‹€.

  • 이런 μ’…λ₯˜μ˜ 결합은 λ³€κ²½ μ‹œ μ˜ˆμƒμΉ˜ λͺ»ν•œ λ°©μ‹μœΌλ‘œ 잘λͺ» λ™μž‘ν•˜λŠ” μ·¨μ•½ν•œ 섀계λ₯Ό μœ λ°œν•œλ‹€.

  • 이 예제의 경우 Rectangle은 ν•˜λ‚˜ μ΄μƒμ˜ μ±…μž„μ„ 가지고 μžˆλ‹€.

  • GeometricRectangle클래슀λ₯Ό μƒˆλ‘œ λ§Œλ“€μ–΄ μˆ˜ν•™μ μœΌλ‘œ κ³„μ‚°ν•΄μ•Όν•˜λŠ” μ±…μž„μ„ λΆ„λ¦¬ν•˜μž.

μ±…μž„μ΄λž€ 무엇인가?

  • SRP λ§₯λ½μ—μ„œ μ±…μž„μ€ 변경을 μœ„ν•œ 이유둜 μ •μ˜ν•œλ‹€.
  • λ§Œμ•½ 클래슀λ₯Ό λ³€κ²½ν•˜κΈ° μœ„ν•œ ν•œ 가지 μ΄μƒμ˜ 이유λ₯Ό 생각할 수 μžˆλ‹€λ©΄ κ·Έ ν΄λž˜μŠ€λŠ” ν•œκ°€μ§€ μ΄μƒμ˜ μ±…μž„μ„ 맑고 μžˆλŠ” 것.

λ³€κ²½μ˜ 좕은 변경이 μ‹€μ œλ‘œ 일어날 λ•Œλ§Œ λ³€κ²½μ˜ 좕이닀.

  • ν•˜μ§€λ§Œ 아무 증상이 μ—†λŠ”λ° 이 λ¬Έμ œμ— SRPλ‚˜ λ‹€λ₯Έ 원칙을 μ μš©ν•˜λŠ” 것은 ν˜„λͺ…ν•˜μ§€ μ•Šλ‹€.
  • 두 가지 μ±…μž„μœΌλ‘œ 인해 변경을 μœ λ°œν•˜μ§€ μ•ŠλŠ”λ° λΆ„λ¦¬ν•œλ‹€λ©΄? 였히렀 λΆˆν•„μš”ν•œ λ³΅μž‘μ„±μ„ μœ λ°œν•œλ‹€.