1.7 KiB
1.7 KiB
id, category, confidence_score, tags, last_reinforced
| id | category | confidence_score | tags | last_reinforced | ||||
|---|---|---|---|---|---|---|---|---|
| P-REINFORCE-AI-ISP | 10_Wiki/💡 Topics/AI | 0.99 |
|
2026-04-20 |
Interface-Segregation-Principle (인터페이스 분리 원칙)
📌 한 줄 통찰 (The Karpathy Summary)
"쓰지도 않는 기능이 담긴 거대한 리모컨은 필요 없다." 자신이 사용하지 않는 메서드에 의존하도록 강제해서는 안 되며, 인터페이스는 구체적이고 작게 쪼개져야 한다는 원칙이다.
📖 구조화된 지식 (Synthesized Content)
- The Core Problem: 하나의 거대한 인터페이스(Fat Interface)를 여러 클래스가 상속하면, 어떤 클래스는 필요 없는 기능까지 구현(보통 빈 메서드로 방치)해야 하는 문제가 생김.
- The Solution: 클라이언트 전용 인터페이스로 쪼갠다. (예:
SmartDevice대신Printer,Scanner,Fax인터페이스로 분리) - Result: 특정 기능의 요구사항이 바뀌어도, 그 기능을 쓰지 않는 다른 클래스들은 전혀 영향(재컴파일 등)을 받지 않는다.
⚠️ 모순 및 업데이트 (RL Update)
- 인터페이스를 너무 잘게 쪼개면 인터페이스 수가 폭발하여 관리가 힘들어지는 트레이드오프가 있다. 따라서 '응집도'와 '클라이언트의 필요' 사이에서 균형을 잡아야 한다. 타입스크립트와 같은 현대 언어에서는 인터페이스 상속과 교차 타입(
&)을 활용해 필요한 기능만 유연하게 조합하는 방식으로 ISP를 스마트하게 적용한다.
🔗 지식 연결 (Graph)
- Related: SOLID-Principles , Single-Responsibility-Principle (SRP)
- Technique: Role-Interface