28 lines
1.8 KiB
Markdown
28 lines
1.8 KiB
Markdown
---
|
|
id: P-REINFORCE-AI-LOOSE-COUPLING
|
|
category: "10_Wiki/💡 Topics/AI"
|
|
confidence_score: 0.99
|
|
tags: [SoftwareEngineering, Architecture, LooseCoupling, Flexibility]
|
|
last_reinforced: 2026-04-20
|
|
---
|
|
|
|
# [[Loose-Coupling]] (느슨한 결합)
|
|
|
|
## 📌 한 줄 통찰 (The Karpathy Summary)
|
|
> "부품 하나를 갈아 끼운다고 전체 기계가 멈추지 않게 하는 격리 수단." 구성 요소들이 서로의 내부 구현을 알지 못하게 하고 표준화된 인터페이스로만 소통하게 하여, 독립적인 변경과 확장을 가능하게 하는 설계의 핵심 미덕이다.
|
|
|
|
## 📖 구조화된 지식 (Synthesized Content)
|
|
- **Opposite**: **Tight Coupling** (한 곳을 고치면 사방에서 에러가 나는 스파게티 코드).
|
|
- **Core Techniques**:
|
|
- **Interface-based Programming**: 구체 클래스가 아닌 설계도(Interface)에 보고함.
|
|
- **Event-Driven**: 메시지를 던져두고 누가 받을지는 신경 쓰지 않음.
|
|
- **Dependency Injection**: 필요한 도구를 스스로 만들지 않고 외부에서 공급받음.
|
|
- **Benefit**: **Parallel Development**(팀 간 독립 작업 가능), **Testability**(가짜 객체로 대체 용이), **Maintenance**(수정 범위 국소화).
|
|
|
|
## ⚠️ 모순 및 업데이트 (RL Update)
|
|
- 느슨한 결합을 추구하다 보면 코드의 가독성이 떨어지고(인터페이스를 따라 여러 파일을 뒤져야 함), 시스템 전체의 흐름을 한눈에 파악하기 힘든 '간접화의 저주'에 빠질 수 있다. 로직이 아주 단순하다면 과도한 격리보다는 적절한 결합이 생산성에 더 나을 수 있다는 실용주의적 균형이 필요하다.
|
|
|
|
## 🔗 지식 연결 (Graph)
|
|
- Related: [[Dependency-Injection]] , Inversion-of-Control (IoC)
|
|
- Fundamental: [[Modular-Programming]]
|