λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
TIL

03/11(μ›”) 내일배움캠프 Java 53일차 TIL - SOLID

by 감자개발꾼 2024. 3. 12.

 

πŸ“–  μ˜€λŠ˜μ˜ ν•™μŠ΅ ν‚€μ›Œλ“œ

  • SOLID

 

πŸ₯”  SOLID(객체지ν–₯ 섀계원칙)

  • 단일 μ±…μž„ 원칙 (Single Responsibiity Principle - SRP)
  • 개방-폐쇄 원칙 (Open/Closed Principle - OCP)
  • λ¦¬μŠ€μ½”ν”„ μΉ˜ν™˜ 원칙 (Liskov Substitution Principle - LSP)
  • μΈν„°νŽ˜μ΄μŠ€ 뢄리 원칙 (Interface Segregaion Principle - ISP)
  • 의쑴 μ—­μ „ 원칙 (Dependency Inversion Principle - DIP)

 

 

πŸ₯”  λ‹¨μΌ μ±…μž„ 원칙 (SRP)

: 이 원칙은 ν΄λž˜μŠ€λ‚˜ λͺ¨λ“ˆμ€ ν•˜λ‚˜μ˜ μ±…μž„λ§Œ κ°€μ Έμ•Ό ν•œλ‹€λŠ” 것을 κ°•μ‘°ν•©λ‹ˆλ‹€.

: 즉, ν΄λž˜μŠ€κ°€ λ³€κ²½λ˜μ–΄μ•Ό ν•˜λŠ” μ΄μœ λŠ” ν•΄λ‹Ή ν΄λž˜μŠ€κ°€ λ‹΄λ‹Ήν•˜λŠ” μ±…μž„ λ•Œλ¬Έμ΄μ–΄μ•Ό ν•©λ‹ˆλ‹€.

: μ΄λŠ” μ½”λ“œμ˜ 응집성을 높이고 μœ μ§€λ³΄μˆ˜λ₯Ό μ‰½κ²Œ λ§Œλ“€μ–΄μ€λ‹ˆλ‹€.

 

πŸ₯”  κ°œλ°©-폐쇄 원칙 (OCP)

: μ†Œν”„νŠΈμ›¨μ–΄ μ—”ν‹°ν‹°λŠ” ν™•μž₯에 λŒ€ν•΄ μ—΄λ € μžˆμ–΄μ•Ό ν•˜κ³ , 변경에 λŒ€ν•΄μ„œλŠ” λ‹«ν˜€ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.

: μ΄λŠ” μƒˆλ‘œμš΄ κΈ°λŠ₯이 μΆ”κ°€λ˜λ”λΌλ„ 기쑴의 μ½”λ“œλ₯Ό λ³€κ²½ν•˜μ§€ μ•Šκ³  ν™•μž₯ν•  수 μžˆλ„λ‘ ν•˜λŠ” μ›μΉ™μž…λ‹ˆλ‹€.

: 주둜 μΈν„°νŽ˜μ΄μŠ€μ™€ 좔상화λ₯Ό 톡해 이λ₯Ό λ‹¬μ„±ν•©λ‹ˆλ‹€.

 

πŸ₯”  λ¦¬μŠ€μ½”ν”„ μΉ˜ν™˜ 원칙 (LSP)

: 이 원칙은 상속 κ΄€κ³„μ—μ„œ ν•˜μœ„ ν΄λž˜μŠ€λŠ” μƒμœ„ 클래슀λ₯Ό λŒ€μ²΄ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€λŠ” 것을 κ°•μ‘°ν•©λ‹ˆλ‹€.

: 즉, μ½”λ“œμ—μ„œ λΆ€λͺ¨ 클래슀λ₯Ό μ‚¬μš©ν•˜λŠ” 곳에 μžμ‹ 클래슀λ₯Ό λŒ€μ‹  μ‚¬μš©ν•΄λ„ λ¬Έμ œκ°€ μ—†μ–΄μ•Ό ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.

 

πŸ₯”  μΈν„°νŽ˜μ΄μŠ€ 뢄리 원칙 (ISP)

: ν΄λΌμ΄μ–ΈνŠΈλŠ” μžμ‹ μ΄ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” λ©”μ„œλ“œμ— μ˜μ‘΄ν•˜μ§€ μ•Šμ•„μ•Ό ν•©λ‹ˆλ‹€.

: 큰 μΈν„°νŽ˜μ΄μŠ€λŠ” μ—¬λŸ¬ ν΄λΌμ΄μ–ΈνŠΈλ“€μ΄ λ‹€μ–‘ν•œ κΈ°λŠ₯에 μ˜μ‘΄ν•˜κ²Œ λ§Œλ“€κΈ°λ³΄λ‹€,

: μž‘μ€ μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ‚˜λˆ„μ–΄ 각 ν΄λΌμ΄μ–ΈνŠΈκ°€ ν•„μš”λ‘œ ν•˜λŠ” λΆ€λΆ„λ§Œ μ‚¬μš©ν•˜λ„λ‘ ν•˜λŠ” 것이 이 μ›μΉ™μ˜ ν•΅μ‹¬μž…λ‹ˆλ‹€.

 

πŸ₯”  μ˜μ‘΄ μ—­μ „ 원칙 (DIP)

: κ³ μˆ˜μ€€ λͺ¨λ“ˆμ€ μ €μˆ˜μ€€ λͺ¨λ“ˆμ— μ˜μ‘΄ν•΄μ„œλŠ” μ•ˆλ˜λ©°, μ–‘μͺ½ λͺ¨λ‘ 좔상화에 μ˜μ‘΄ν•΄μ•Ό ν•©λ‹ˆλ‹€.

: μ΄λŠ” μ˜μ‘΄μ„± μ£Όμž…κ³Ό 관련이 있으며, 객체 κ°„μ˜ 결합을 쀄여 μ‹œμŠ€ν…œμ„ 더 μœ μ—°ν•˜κ³  ν™•μž₯ κ°€λŠ₯ν•˜κ²Œ λ§Œλ“­λ‹ˆλ‹€.

 

 

πŸ“š  μ˜€λŠ˜μ˜ 회고

SOLID 원칙 λΏŒμ…”λ²„λ €