πŸ€” SOLIDλŠ” 객체지ν–₯ μ›μΉ™μΌκΉŒ 더 넓은 ν”„λ‘œκ·Έλž˜λ° μ›μΉ™μΌκΉŒ

0

OOP

λͺ©λ‘ 보기
1/1

가끔 책을 읽닀보면 'SOLIDλŠ” 객체지ν–₯ 원칙일 뿐만 μ•„λ‹ˆλΌ 더 넓은 ν”„λ‘œκ·Έλž˜λ° 원칙이닀.'λΌλŠ” 말이 κ½€ 자주 λ‚˜μ˜¨λ‹€. SOLID에 λŒ€ν•΄ μ„€λͺ…을 ν•˜λŠ” 뢀뢄이 μžˆμ„ λ•Œλ©΄ 항상 λ‚˜μ˜€λŠ” λ“―ν•˜λ‹€. 이 말은 νƒ€λ‹Ήν• κΉŒ? 이 μ£Όμ œλŠ” κ½€ ν₯λ―Έλ‘­κ³ , 의견이 갈릴 수 μžˆλ‹€. κ²°λ‘ λΆ€ν„° λ§ν•˜μžλ©΄:

  • SOLIDλŠ” μ›λž˜ 객체지ν–₯(Object-Oriented Programming, OOP)의 섀계 μ›μΉ™μœΌλ‘œ μΆœλ°œν–ˆμ§€λ§Œ, 더 넓은 λ²”μœ„μ—μ„œ 해석될 수 μžˆλ‹€.

πŸ“š 1. SOLID의 기원과 μ˜λ„

  • SOLID 원칙은 Robert C. Martin(아저씨 개발자, Uncle Bob)이 처음 μ •μ˜ν•œ 객체지ν–₯ 섀계 원칙이닀.
  • 주둜 클래슀, 객체, 상속, λ‹€ν˜•μ„± λ“± 객체지ν–₯의 핡심 κ°œλ…κ³Ό λ°€μ ‘ν•œ 관련이 μžˆλ‹€.
  • 초기 λͺ©μ μ€ 객체지ν–₯ μ–Έμ–΄(Java, C++, C# λ“±)μ—μ„œ μœ μ§€λ³΄μˆ˜ κ°€λŠ₯ν•˜κ³  ν™•μž₯ κ°€λŠ₯ν•œ 섀계λ₯Ό 돕기 μœ„ν•΄ λ“±μž₯ν–ˆλ‹€.

🌍 2. SOLIDλŠ” 객체지ν–₯에 κ΅­ν•œλ˜μ§€ μ•ŠλŠ”λ‹€?

μ΅œκ·Όμ—λŠ” λ§Žμ€ κ°œλ°œμžλ“€μ΄ SOLID 원칙을 더 넓은 ν”„λ‘œκ·Έλž˜λ° νŒ¨λŸ¬λ‹€μž„μ— μ μš©ν•œλ‹€. κ·Έ μ΄μœ λŠ”:

  1. ν”„λ‘œκ·Έλž˜λ° 메타 원칙

    • SOLID의 원칙듀은 객체지ν–₯ 언어뿐 μ•„λ‹ˆλΌ, ν•¨μˆ˜ν˜• μ–Έμ–΄, 절차적 μ–Έμ–΄ λ“± λ‹€μ–‘ν•œ νŒ¨λŸ¬λ‹€μž„μ—λ„ μ›μΉ™μ μœΌλ‘œ 적용될 수 μžˆλ‹€.
    • 예λ₯Ό λ“€μ–΄, "단일 μ±…μž„ 원칙(SRP)"μ΄λ‚˜ "개방-폐쇄 원칙(OCP)"은 ν•¨μˆ˜ν˜• μ–Έμ–΄λ‚˜ 슀크립트 μ–Έμ–΄μ—μ„œλ„ μΆ©λΆ„νžˆ μ˜λ―Έκ°€ μžˆλ‹€.
  2. μ˜μ‘΄μ„± 관리와 섀계 νŒ¨ν„΄μ˜ μ€‘μš”μ„±

    • SOLIDλŠ” μ–Έμ–΄μ˜ νŠΉμ§•λ³΄λ‹€ μ‹œμŠ€ν…œ 섀계와 μ½”λ“œ κ΄€λ¦¬μ˜ 핡심 원칙을 닀룬닀.
    • 즉, 객체지ν–₯ μ–Έμ–΄κ°€ μ•„λ‹ˆλ”λΌλ„ λͺ¨λ“ˆν™”, ν™•μž₯μ„±, μœ μ§€λ³΄μˆ˜μ„±μ΄λΌλŠ” ν‚€μ›Œλ“œλŠ” μ–΄λ–€ μ–Έμ–΄μ—μ„œλ„ μ€‘μš”ν•˜λ‹€.
  3. ν˜„λŒ€ μ†Œν”„νŠΈμ›¨μ–΄μ˜ λ³΅μž‘μ„±

    • λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ μ•„ν‚€ν…μ²˜, ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ° νŒ¨ν„΄, 도메인 주도 섀계(DDD) λ“±μ—μ„œλ„ SOLID 원칙이 μžμ—°μŠ€λŸ½κ²Œ λ…Ήμ•„λ“€μ–΄ μžˆλ‹€.

πŸ”‘ 3. 의견 차이의 이유

  • μ›μΉ™μ˜ 기원과 적용 λ²”μœ„: SOLIDκ°€ 객체지ν–₯μ—μ„œ μΆœλ°œν–ˆμ§€λ§Œ, κ·Έ 원칙 μžμ²΄λŠ” νŠΉμ • μ–Έμ–΄λ‚˜ νŒ¨λŸ¬λ‹€μž„μ—λ§Œ κ΅­ν•œλ˜μ§€ μ•ŠλŠ”λ‹€.
  • 관점 차이: μ–΄λ–€ μ‚¬λžŒμ€ "SOLIDλŠ” 객체지ν–₯의 핡심 원칙"이라고 μƒκ°ν•˜κ³ , λ‹€λ₯Έ μ‚¬λžŒμ€ "ν”„λ‘œκ·Έλž˜λ° μ „λ°˜μ˜ 섀계 원칙"이라고 λ³Έλ‹€.
  • μ‹€μ œ 적용 사둀: ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°(FP)μ—μ„œλ„ SOLID 원칙을 μ μš©ν•˜λŠ” κ²½μš°κ°€ λ§Žλ‹€.

🀝 4. 결둠

  1. μ—„λ°€ν•˜κ²Œ λ§ν•˜λ©΄:

    • SOLIDλŠ” 객체지ν–₯ 섀계 μ›μΉ™μœΌλ‘œ μΆœλ°œν–ˆμœΌλ©°, 객체지ν–₯ νŒ¨λŸ¬λ‹€μž„μ— κ°€μž₯ 잘 μ–΄μšΈλ¦°λ‹€.
  2. 더 λ„“κ²Œ 보면:

    • SOLID 원칙은 μ†Œν”„νŠΈμ›¨μ–΄ 섀계 일반 μ›μΉ™μœΌλ‘œ ν™•μž₯ κ°€λŠ₯ν•˜λ©°, λ‹€μ–‘ν•œ ν”„λ‘œκ·Έλž˜λ° νŒ¨λŸ¬λ‹€μž„μ—μ„œ 적용될 수 μžˆλ‹€.

πŸ“ 당신이 읽은 μ±…μ˜ 해석은 μœ νš¨ν•œκ°€?

κ·Έ 해석은 ν‹€λ¦° 말이 μ•„λ‹ˆλ‹€!

  • ν•΄λ‹Ή μ €μžλŠ” SOLID 원칙이 객체지ν–₯을 λ„˜μ–΄ 더 넓은 ν”„λ‘œκ·Έλž˜λ° 메타 μ›μΉ™μœΌλ‘œ 적용될 수 μžˆλ‹€κ³  μ£Όμž₯ν•œ 것이닀.
  • 이런 해석은 점점 더 λ§Žμ€ κ°œλ°œμžμ™€ 전문가듀이 λ™μ˜ν•˜κ³  μžˆλ‹€.

βœ… μ‹€μš©μ  λ‹΅λ³€:

  • 이둠적으둜: SOLIDλŠ” 객체지ν–₯ 섀계 원칙이닀.
  • μ‹€λ¬΄μ μœΌλ‘œ: SOLIDλŠ” λͺ¨λ“  ν”„λ‘œκ·Έλž˜λ° 섀계 원칙에 μ μš©ν•  수 μžˆλ‹€.

0개의 λŒ“κΈ€