2.5 KiB
2.5 KiB
id, category, confidence_score, tags, last_reinforced
| id | category | confidence_score | tags | last_reinforced | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| CS-OOP-001 | 10_Wiki/💡 Topics/AI | 1.0 |
|
2026-04-26 |
Object-Oriented Programming (OOP, 객체 지향 프로그래밍)
📌 한 줄 통찰 (The Karpathy Summary)
"데이터와 행위를 하나의 '객체'라는 유기체로 묶고, 이들의 소통과 연합으로 거대하고 견고한 소프트웨어 제국을 건설하라" — 프로그램을 단순히 명령어의 나열이 아닌 독립된 단위인 '객체'들의 집합으로 파악하여 유연성과 재사용성을 극대화하는 프로그래밍 패러다임.
📖 구조화된 지식 (Synthesized Content)
- 추출된 패턴: "Modular Autonomy and Interface-based Contract" — 내부의 구현 상세는 감추고(Encapsulation), 공통 기능은 물려받으며(Inheritance), 동일한 메시지에도 각자 다르게 반응(Polymorphism)하게 함으로써 코드 간의 결합도를 낮추고 변화에 강한 구조를 만드는 패턴.
- 4대 핵심 원칙:
- Encapsulation (캡슐화): 데이터와 함수를 하나로 묶고 외부 접근을 제한하여 무결성 보호.
- Inheritance (상속): 기존 클래스의 기능을 물려받아 재사용 및 확장.
- Polymorphism (다형성): 하나의 인터페이스로 여러 타입의 객체를 다룰 수 있는 능력.
- Abstraction (추상화): 복잡한 내부 로직은 숨기고 핵심 인터페이스만 노출.
- 의의: 대규모 협업 프로젝트에서 코드의 가독성과 유지보수성을 보장하는 현대 소프트웨어 공학의 가장 강력한 지배적 패러다임.
⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- 과거 데이터와의 충돌: 상속이 만능이라는 믿음에서 벗어나, 과도한 상속 깊이가 코드를 더 복잡하게 만드는 문제를 해결하기 위해 '상속보다는 합성(Composition over Inheritance)'을 지향하는 실무적 지침이 정립됨.
- 정책 변화: Antigravity 프로젝트의 모든 에이전트 스킬과 데이터 핸들러는 SOLID 원칙을 준수하는 OOP 아키텍처로 설계되어 있어, 새로운 기능 추가 시 기존 코드의 수정 없이 확장이 가능함.
🔗 지식 연결 (Graph)
- Iterative-Development-Models, Microservices-Architecture,_system-Design-for-AI-Scale, Design-Patterns-in-AI
- Raw Source: 10_Wiki/Topics/AI/Object-Oriented-Programming.md