Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SOLID #14

Closed
5 tasks done
Glsme opened this issue Dec 20, 2022 · 5 comments
Closed
5 tasks done

SOLID #14

Glsme opened this issue Dec 20, 2022 · 5 comments
Labels
Architecture λ””μžμΈνŒ¨ν„΄, μ•„ν‚€ν…μ²˜

Comments

@Glsme
Copy link
Contributor

Glsme commented Dec 20, 2022

πŸ—“οΈ 마감일

2023.01.29

πŸ’ μ°Έμ—¬μž

  • 김도이
  • μœ€μ—¬μ§„
  • 홍석쀀
  • 이주영
  • 이재용

⚠️ λ§ˆμ§€λ§‰μœΌλ‘œ λ‹΅λ³€ 단 μ‚¬λžŒμ΄ 이슈 close ν•˜κ³  λ¦¬λ“œλ―Έμ— ν•­λͺ© μ—…λ°μ΄νŠΈ ν•΄μ£Όμ„Έμš”.

@Glsme Glsme added the Architecture λ””μžμΈνŒ¨ν„΄, μ•„ν‚€ν…μ²˜ label Dec 20, 2022
@Yun-YeoJin
Copy link
Contributor

ν”„λ‘œκ·Έλž˜λ¨Έκ°€ μ‹œκ°„μ΄ μ§€λ‚˜λ„ μœ μ§€ λ³΄μˆ˜μ™€ ν™•μž₯이 μ‰¬μš΄ μ‹œμŠ€ν…œμ„ λ§Œλ“€κ³ μž ν•  λ•Œ 이 원칙듀을 ν•¨κ»˜ μ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
SOLID 원칙듀은 μ†Œν”„νŠΈμ›¨μ–΄ μž‘μ—…μ—μ„œ ν”„λ‘œκ·Έλž˜λ¨Έκ°€ μ†ŒμŠ€ μ½”λ“œκ°€ 읽기 쉽고 ν™•μž₯ν•˜κΈ° μ‰½κ²Œ 될 λ•ŒκΉŒμ§€ μ†Œν”„νŠΈμ›¨μ–΄ μ†ŒμŠ€ μ½”λ“œλ₯Ό λ¦¬νŽ™ν† λ§ ν•˜μ—¬ μ½”λ“œ λƒ„μƒˆ(μ½”λ“œμ—μ„œ 더 μ‹¬μ˜€ν•œ 문제λ₯Ό μΌμœΌν‚¬ κ°€λŠ₯성이 μžˆλŠ” μ½”λ“œμ˜ νŠΉμ§•)λ₯Ό μ œκ±°ν•˜κΈ° μœ„ν•΄ μ μš©ν•  수 μžˆλŠ” μ§€μΉ¨μž…λ‹ˆλ‹€!

즉, 객체 섀계에 ν•„μš”ν•œ 5가지 μ›μΉ™μœΌλ‘œμ¨ μœ μ§€λ³΄μˆ˜κ°€ 쉽고, μœ μ—°ν•˜κ³ , ν™•μž₯이 μ‰¬μš΄ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λ§Œλ“€κΈ° μœ„ν•œ μˆ˜λ‹¨

1. SRP (Single Responsibility) - 단일 μ±…μž„ 원칙

  • ν΄λž˜μŠ€λŠ” 단 ν•œ 개의 μ±…μž„(κΈ°λŠ₯)을 κ°€μ Έμ•Ό ν•©λ‹ˆλ‹€.
  • 클래슀λ₯Ό λ³€κ²½ν•˜λŠ” μ΄μœ λŠ” 단 ν•˜λ‚˜μ—¬μ•Ό ν•©λ‹ˆλ‹€.
  • 이λ₯Ό 지킀지 μ•ŠμœΌλ©΄, ν•œ μ±…μž„μ˜ 변경에 μ˜ν•΄ λ‹€λ₯Έ μ±…μž„κ³Ό κ΄€λ ¨λœ μ½”λ“œμ— 영ν–₯을 λ―ΈμΉ  수 μžˆμŠ΅λ‹ˆλ‹€.
    β†’ μ΄λ ‡κ²Œ 되면 μœ μ§€λ³΄μˆ˜κ°€ 맀우 λΉ„νš¨μœ¨μ μ΄κ²Œ λ©λ‹ˆλ‹€ γ… .γ… 
    β†’ (μƒˆλ‘œμš΄ μš”κ΅¬μ‚¬ν•­μ΄λ‚˜ ν”„λ‘œκ·Έλž¨ 변경에 μ˜ν•΄ 클래슀 λ‚΄λΆ€μ˜ λ™μž‘λ“€μ΄ μ—°μ‡„μ μœΌλ‘œ λ³€κ²½λ˜μ–΄μ•Ό ν•˜λ©΄, μœ μ§€λ³΄μˆ˜κ°€ λΉ„νš¨μœ¨μ μ΄κ²Œ λ˜λ―€λ‘œ, κΈ°λŠ₯을 잘게 μͺΌκ°œμ–΄ λΆ„λ¦¬μ‹œν‚¬ ν•„μš”κ°€ μžˆμŠ΅λ‹ˆλ‹€!)

2. OCP (Open-Closed) - 개방-폐쇄 원칙

  • ν™•μž₯μ—λŠ” μ—΄λ €μžˆμ–΄μ•Ό ν•˜κ³ , λ³€κ²½μ—λŠ” λ‹«ν˜€ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.
  • 즉, 기쑴의 μ½”λ“œλ₯Ό λ³€κ²½ν•˜μ§€ μ•Šκ³  κΈ°λŠ₯을 μˆ˜μ •ν•˜κ±°λ‚˜ μΆ”κ°€ν•  수 μžˆλ„λ‘ 섀계해야 ν•œλ‹€λŠ” λ§μž…λ‹ˆλ‹€.
  • μ–΄λ–€ λͺ¨λ“ˆμ˜ κΈ°λŠ₯을 ν•˜λ‚˜ μˆ˜μ •ν•  λ•Œ, κ·Έ λͺ¨λ“ˆμ„ μ΄μš©ν•˜λŠ” λ‹€λ₯Έ λͺ¨λ“ˆλ“€ μ—­μ‹œ 쀄쀄이 고쳐야 ν•œλ‹€λ©΄ μœ μ§€λ³΄μˆ˜κ°€ λ³΅μž‘ν•  κ²ƒμž…λ‹ˆλ‹€.
  • λ”°λΌμ„œ 개방 폐쇄 원칙을 잘 μ μš©ν•˜μ—¬ κΈ°μ‘΄ μ½”λ“œλ₯Ό λ³€κ²½ν•˜μ§€ μ•Šμ•„λ„ κΈ°λŠ₯을 μƒˆλ‘­κ²Œ λ§Œλ“€κ±°λ‚˜ λ³€κ²½ν•  수 μžˆλ„λ‘ ν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • 그렇지 μ•ŠμœΌλ©΄ 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ˜ κ°€μž₯ 큰 μž₯점인 μœ μ—°μ„±, μž¬μ‚¬μš©μ„±, μœ μ§€λ³΄μˆ˜μ„± 등을 λͺ¨λ‘ μžƒμ–΄λ²„λ¦¬λŠ” μ…ˆ

3. LSP (Liskov Substitution) - λ¦¬μŠ€μ½”ν”„ μΉ˜ν™˜ 원칙

  • ν•˜μœ„ νƒ€μž… κ°μ²΄λŠ” μƒμœ„ νƒ€μž… κ°μ²΄μ—μ„œ κ°€λŠ₯ν•œ ν–‰μœ„λ₯Ό μˆ˜ν–‰ν•  수 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. 즉, μƒμœ„ νƒ€μž… 객체λ₯Ό ν•˜μœ„ νƒ€μž… 객체둜 μΉ˜ν™˜ν•΄λ„ μ •μƒμ μœΌλ‘œ λ™μž‘ν•΄μ•Ό ν•œλ‹€λŠ” λ§μž…λ‹ˆλ‹€!
  • μƒμ†κ΄€κ³„μ—μ„œλŠ” κΌ­ μΌλ°˜ν™” 관계가 성립해야 ν•œλ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€.
  • 상속관계가 μ•„λ‹Œ ν΄λž˜μŠ€λ“€μ„ μƒμ†κ΄€κ³„λ‘œ μ„€μ •ν•˜λ©΄, 이 원칙이 μœ„λ°°λ©λ‹ˆλ‹€.
  • ❌ λ¦¬μŠ€μ½”ν”„ μΉ˜ν™˜ 원칙을 지킀지 μ•ŠμœΌλ©΄ 개방 폐쇄 원칙을 μœ„λ°˜ν•˜κ²Œ λ˜λŠ” κ²ƒμž…λ‹ˆλ‹€. κΈ°λŠ₯ ν™•μž₯을 μœ„ν•΄ 기쑴의 μ½”λ“œλ₯Ό μ—¬λŸ¬ 번 μˆ˜μ •ν•΄μ•Ό ν•  것이닀.
  • λ”°λΌμ„œ 상속 관계λ₯Ό 잘 μ •μ˜ν•˜μ—¬ LSP 원칙이 μœ„λ°°λ˜μ§€ μ•Šλ„λ‘ 섀계해야 ν•©λ‹ˆλ‹€!

4. ISP (Interface Segregation) - μΈν„°νŽ˜μ΄μŠ€ 뢄리 원칙

  • ν΄λΌμ΄μ–ΈνŠΈλŠ” μžμ‹ μ΄ μ‚¬μš©ν•˜λŠ” λ©”μ„œλ“œμ—λ§Œ μ˜μ‘΄ν•΄μ•Ό ν•œλ‹€λŠ” μ›μΉ™μž…λ‹ˆλ‹€.
  • ν•œ ν΄λž˜μŠ€λŠ” μžμ‹ μ΄ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” μΈν„°νŽ˜μ΄μŠ€λŠ” κ΅¬ν˜„ν•˜μ§€ μ•Šμ•„μ•Ό ν•©λ‹ˆλ‹€.
  • μΈν„°νŽ˜μ΄μŠ€λŠ” ν•΄λ‹Ή μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜λŠ” ν΄λΌμ΄μ–ΈνŠΈλ₯Ό κΈ°μ€€μœΌλ‘œ 잘게 λΆ„λ¦¬λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.
  • 🟒 νŠΉμ • ν΄λΌμ΄μ–ΈνŠΈλ₯Ό μœ„ν•œ μΈν„°νŽ˜μ΄μŠ€ μ—¬λŸ¬ κ°œκ°€ λ²”μš© μΈν„°νŽ˜μ΄μŠ€ ν•˜λ‚˜λ³΄λ‹€ λ‚«λ‹€.
  • ν΄λΌμ΄μ–ΈνŠΈκ°€ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” μΈν„°νŽ˜μ΄μŠ€μ— 변경이 λ°œμƒν•˜λ”λΌλ„ 영ν–₯을 받지 μ•Šλ„λ‘ λ§Œλ“€μ–΄μ•Ό ν•˜λŠ” 것이 ν•΅μ‹¬μž…λ‹ˆλ‹€.

5. DIP (Dependency Inversion) - 의쑴 μ—­μ „ 원칙

  • 의쑴 관계λ₯Ό 맺을 λ•Œ, λ³€ν•˜κΈ° μ‰¬μš΄ 것(ꡬ체적)λ³΄λ‹€λŠ” λ³€ν•˜κΈ° μ–΄λ €μš΄ 것(좔상적)에 μ˜μ‘΄ν•΄μ•Ό ν•©λ‹ˆλ‹€.β†’ κ΅¬μ²΄ν™”λœ ν΄λž˜μŠ€μ— μ˜μ‘΄ν•˜κΈ°λ³΄λ‹€λŠ” 좔상적인 ν΄λž˜μŠ€λ‚˜ μΈν„°νŽ˜μ΄μŠ€μ— μ˜μ‘΄ν•΄μ•Ό ν•œλ‹€λŠ” 뜻!
  • μ €μˆ˜μ€€ λͺ¨λ“ˆμ΄ κ³ μˆ˜μ€€ λͺ¨λ“ˆμ—μ„œ μ •μ˜ν•œ 좔상 νƒ€μž…μ— μ˜μ‘΄ν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • μ €μˆ˜μ€€ λͺ¨λ“ˆμ΄ λ³€κ²½λ˜μ–΄λ„ κ³ μˆ˜μ€€ λͺ¨λ“ˆμ€ 변경이 ν•„μš” μ—†λŠ” ν˜•νƒœκ°€ 이상적인 ν˜•νƒœμž…λ‹ˆλ‹€.

@Glsme
Copy link
Contributor Author

Glsme commented Jan 29, 2023

SOLID 원칙

객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ° μ‹œ μ§€μΌœμ•Ό ν•  SRP, OCP, LSP, ISP, DIP 원칙을 μ •λ¦¬ν•œ μš©μ–΄μ΄λ‹€.



S: Single Responsibility Principle

  • 단일 μ±…μž„ 원칙
  • ν΄λž˜μŠ€λ‚˜ ν•¨μˆ˜λ₯Ό 섀계할 λ•Œ 각 λ‹¨μœ„λ“€μ€ 단 ν•˜λ‚˜μ˜ μ±…μž„λ§Œμ„ κ°€μ Έμ•Ό ν•œλ‹€.


O: Open - Close Principle

  • 개방 폐쇄 원칙
  • ν™•μž₯μ—λŠ” μ—΄λ €μžˆμœΌλ‚˜, λ³€κ²½μ—λŠ” λ‹«ν˜€μžˆμ–΄μ•Ό ν•œλ‹€.


L: Liskov Substitution Principle

  • λ¦¬μŠ€μ½”ν”„ μΉ˜ν™˜ 원칙
  • μžμ‹ 객체가 λΆ€λͺ¨ 객체의 λ™μž‘μ„ μ œν•œν•΄μ„  μ•ˆλœλ‹€.
  • μ‹€μ œλ‘œ LSPλ₯Ό μ ˆλŒ€μ μœΌλ‘œ μ§€ν‚€λ©΄μ„œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜κΈ°μ—” μ–΄λ ΅λ‹€.


I: Interface Segregation Principle

  • μΈν„°νŽ˜μ΄μŠ€ 뢄리 원칙
  • μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” μΈν„°νŽ˜μ΄μŠ€λŠ” κ΅¬ν˜„ν•˜λ©΄ μ•ˆλœλ‹€.


D: Dependency Inversion Principle

  • μ˜μ‘΄μ„± μ—­μ „ 원칙
  • μƒμœ„ λͺ¨λ“ˆμ€ ν•˜μœ„ λͺ¨λ“ˆμ— μ˜μ‘΄ν•΄μ„  μ•ˆλœλ‹€.

@LeeJoobang
Copy link

SOLID

SOLIDλž€? 객체 지ν–₯ ν”„λ‘œκ·Έλž¨ 및 μ„€κ³„μ˜ 닀섯가지 κΈ°λ³Έ 원칙

  1. S(SRP - 단일 μ±…μž„ 원칙)
  • λͺ¨λ“  ν΄λž˜μŠ€λŠ” ν•˜λ‚˜μ˜ μ±…μž„λ§Œ 가지며, ν΄λž˜μŠ€λŠ” κ·Έ μ±…μž„μ„ μ™„μ „νžˆ μΊ‘μŠν™”ν•œλ‹€.
  1. O(OCP - 개방 폐쇄 원칙)
  • μ†Œν”„νŠΈμ›¨μ–΄ 개체(클래슀, λͺ¨λ“ˆ, ν•¨μˆ˜ λ“±)λŠ” ν™•μž₯에 λŒ€ν•΄ μ—΄λ € μžˆμ–΄μ•Ό ν•˜κ³ , μˆ˜μ •μ— λŒ€ν•΄μ„œλŠ” λ‹«ν˜€ μžˆμ–΄μ•Ό ν•œλ‹€.
  • 객체가 변경될 λ•Œ ν•΄λ‹Ή 객체만 바꿔도 λ™μž‘μ΄ 잘되면 OCPλ₯Ό 자 지킨 것이라 ν•  수 있음.
  1. L(LSP - λ¦¬μŠ€μ½”ν”„ μΉ˜ν™˜ 원칙)
  • ν”„λ‘œκ·Έλž¨μ˜ κ°μ²΄λŠ” ν”„λ‘œκ·Έλž¨μ˜ 정확성을 κΉ¨λœ¨λ¦¬μ§€ μ•ŠμœΌλ©΄μ„œ ν•˜μœ„ νƒ€μž…μ˜ μΈμŠ€ν„΄μŠ€λ‘œ λ°”κΏ€ 수 μžˆμ–΄μ•Ό ν•œλ‹€.
  • μ„œλΈŒ νƒ€μž…μ€ 상속받은 κΈ°λ³Ένƒ€μž…μœΌλ‘œ λŒ€μ²΄ κ°€λŠ₯ν•΄μ•Ό ν•œλ‹€.
  • μžμ‹ ν΄λž˜μŠ€λŠ” λΆ€λͺ¨ 클래슀의 λ™μž‘μ„ 바꾸지 μ•ŠλŠ”λ‹€.
  1. I(ISP - μΈν„°νŽ˜μ΄μŠ€ 뢄리 원칙)
  • ν΄λΌμ΄μ–ΈνŠΈκ°€ μžμ‹ μ΄ μ΄μš©ν•˜μ§€ μ•ŠλŠ” λ©”μ„œλ“œμ— μ˜μ‘΄ν•˜μ§€ μ•Šμ•„μ•Ό ν•œλ‹€λŠ” 원칙
  • 클래슀 λ‚΄μ—μ„œ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” μΈν„°νŽ˜μ΄μŠ€λŠ” κ΅¬ν˜„ν•˜μ§€ 말아야 ν•œλ‹€.
  1. D(DIP - μ˜μ‘΄κ΄€κ³„ μ—­μ „ 원칙)
  • μƒμœ„ 계측이 ν•˜μœ„ 계측에 μ˜μ‘΄ν•˜λŠ” 전톡적인 μ˜μ‘΄κ΄€κ³„λ₯Ό λ°˜μ „μ‹œν‚΄μœΌλ‘œμ¨ μƒμœ„ 계측이 ν•˜μœ„ κ³„μΈ΅μ˜ κ΅¬ν˜„μœΌλ‘œλΆ€ν„° λ…λ¦½λ˜κ²Œ ν•  수 μžˆλ‹€.
  • μƒμœ„ λͺ¨λ“ˆμ€ ν•˜μœ„ λͺ¨λ“ˆμ— μ˜μ‘΄ν•΄μ„œλŠ” μ•ˆλœλ‹€.

@heydoy
Copy link
Member

heydoy commented Jan 30, 2023

SOLID 원칙

SOLIDλŠ” 객체지ν–₯의 5가지 원칙을 의미

  1. Single Responsibility Principle λ‹¨μΌμ±…μž„ 원칙
  2. Open/Closed Principle 개방/폐쇄 원칙
  3. Liskov Substitution Principle λ¦¬μŠ€μ½”ν”„ μΉ˜ν™˜ 원칙
  4. Interface Segregation μΈν„°νŽ˜μ΄μŠ€ 뢄리
  5. Dependency Inversion μ˜μ‘΄μ„± μ—­μ „

Single Responsibility Principle

λͺ¨λ“  λͺ¨λ“ˆμ€ 단 ν•˜λ‚˜μ˜ μ±…μž„μ„ κ°€μ Έμ•Ό ν•œλ‹€λŠ” 것.

Open/Closed principle

extensionμ—λŠ” 개방, μˆ˜μ •μ—λŠ” 폐쇄

Liskov Substitution Principle

베이슀 ν΄λž˜μŠ€μ— ν¬μΈν„°λ‚˜ μ°Έμ‘°λ₯Ό μ‚¬μš©ν•˜λŠ” ν•¨μˆ˜λŠ” λ°˜λ“œμ‹œ νŒŒμƒλœ 클래슀의 객체λ₯Ό (μ•Œμ§€λͺ»ν•˜λ”라도) μ‚¬μš©ν•  수 μžˆμ–΄μ•Όν•œλ‹€.

Interface Segregation Principle (ISP)

ν΄λΌμ΄μ–ΈνŠΈλŠ” μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•˜μ§€ μ•Šμ•„μ•Όν•˜λŠ” 것. ν•˜λ‚˜μ˜ 큰 μΈν„°νŽ˜μ΄μŠ€λ³΄λ‹€, 각각 ν•˜λ‚˜μ˜ μž‘μ€ μ„œλΈŒλͺ¨λ“ˆμ„ μ œκ³΅ν•˜λŠ” λ©”μ„œλ“œ 그룹의 μž‘μ€ μΈν„°νŽ˜μ΄μŠ€κ°€ λ§Žμ€ 것이 더 μ„ ν˜Έλ¨.

Dependency Inversion Principle

μƒμœ„λ ˆλ²¨ λͺ¨λ“ˆμ€ ν•˜μœ„λ ˆλ²¨ λͺ¨λ“ˆμ— μ˜μ‘΄ν•΄μ„œλŠ” μ•ˆλ˜λ©°, λ‘˜ λ‹€ 좔상화에 μ˜μ‘΄ν•΄μ•Όν•œλ‹€. μΆ”μƒν™”λŠ” 세뢀사항에 μ˜μ‘΄ν•˜λŠ” 것이 μ•„λ‹ˆλΌ, 세뢀사항이 좔상화에 μ˜μ‘΄ν•΄μ•Ό ν•œλ‹€.

@wodyddml2
Copy link

SRP(Single Responsiblity Principle) - 단일 μ±…μž„ 원칙

- ν΄λž˜μŠ€λ‚˜ ν•¨μˆ˜λ₯Ό 섀계할 λ•Œ, 각 λ‹¨μœ„λ“€μ€ 단 ν•˜λ‚˜μ˜ μ±…μž„ λ§Œμ„ κ°€μ Έμ•Ό ν•˜λŠ” 원칙
- ν•˜λ‚˜μ˜ ν΄λž˜μŠ€μ— ν•˜λ‚˜μ˜ μ±…μž„ λ§Œμ„ κ°€μ Έμ•Όν•œλ‹€.
    - ex) APIService, Repository

OCP(Open-Closed Principle) - 개방-νŒ¨μ‡„ 원칙

- 기쑴의 μ½”λ“œλŠ” λ³€κ²½ν•˜μ§€ μ•ŠμœΌλ©΄μ„œ(Closed), κΈ°λŠ₯을 μΆ”κ°€ν•  수 μžˆλ„λ‘(Open) 섀계
- 기쑴의 μ½”λ“œλ₯Ό λ³€κ²½ν•΄μ•Όν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— κΈ°λŠ₯ μΆ”κ°€λ§Œ ν•  수 μžˆλ„λ‘ 좔상화 μž‘μ—…μ΄ μ€‘μš”ν•˜λ‹€.

LSP(Liskov Substitution Principle) - λ¦¬μŠ€μ½”ν”„ μΉ˜ν™˜ 원칙

- λΆ€λͺ¨ 클래슀 μΈμŠ€ν„΄μŠ€λ‘œ λŒμ•„κ°€λŠ” 곳에, μžμ‹ 클래슀 μΈμŠ€ν„΄μŠ€λ₯Ό λ„£μ—ˆμ„ λ•Œ λ™μΌν•œ κ²°κ³Ό 값을 λ‚˜νƒ€λ‚΄μ•Ό ν•œλ‹€.

ISP(Interface Segregation Principle) - μΈν„°νŽ˜μ΄μŠ€ 뢄리 원칙

- μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” μΈν„°νŽ˜μ΄μŠ€λŠ” κ΅¬ν˜„ν•˜μ§€ λ§μ•„μ•Όν•œλ‹€.
    - ex) ν”„λ‘œν† μ½œ μ‚¬μš© μ‹œ

DIP(Dependency Inversion Principle) - μ˜μ‘΄κ΄€κ³„ μ—­μ „ 원칙

- μƒμœ„ λͺ¨λ“ˆμ€ ν•˜μœ„ λͺ¨λ“ˆμ— μ˜μ‘΄ν•΄μ„œλŠ” μ•ˆλ˜λ©°, 두 λͺ¨λ“ˆ λͺ¨λ‘ 좔상화에 μ˜μ‘΄ν•˜κ²Œ λ§Œλ“€μ–΄μ•Ό ν•œλ‹€.
    - 보톡 ν”„λ‘œν† μ½œ(좔상화)λ₯Ό λ§Œλ“€μ–΄ μ˜μ‘΄ν•˜κ²Œ ν•œλ‹€. 
    - 즉, 쀑간 닀리 μ—­ν• , μœ μ§€λ³΄μˆ˜ κ°œμ΄λ“

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Architecture λ””μžμΈνŒ¨ν„΄, μ•„ν‚€ν…μ²˜
Projects
None yet
Development

No branches or pull requests

5 participants