2.4 KiB
2.4 KiB
id, category, confidence_score, tags, last_reinforced
| id | category | confidence_score | tags | last_reinforced | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| P-REINFORCE-AUTO-OOPP-001 | 10_Wiki/💡 Topics/AI | 0.98 |
|
2026-04-20 |
Object-Oriented-Programming
📌 한 줄 통찰 (The Karpathy Summary)
"세상을 변수와 함수로 빚다: 현실의 사물을 '객체(Object)'라는 자율적인 단위로 모델링하고, 이들이 서로 메시지를 주고받으며 협업하게 함으로써 거대하고 복잡한 소프트웨어를 인간의 직관으로 통제 가능하게 만드는 설계 패러다임."
📖 구조화된 지식 (Synthesized Content)
객체 지향 프로그래밍(OOP)은 데이터와 그 데이터를 처리하는 함수를 하나의 단위(객체)로 묶어 처리하는 방식입니다.
- 4대 핵심 원칙 (A PIE):
- Abstraction (추상화): 불필요한 디테일을 숨기고 핵심 인터페이스만 노출. (Abstraction와 연결)
- Polymorphism (다형성): 하나의 인터페이스로 다양한 형태의 구현체 실행.
- Inheritance (상속): 부모의 속성을 물려받아 재사용 및 확장. (Efficiency와 연결)
- Encapsulation (캡슐화): 데이터와 기능을 하나로 묶고 외부 접근을 제한 (정보 은닉). (Modularity와 연결)
- 왜 중요한가?:
- 코드의 재사용성과 유지보수성을 극대화하여, 수십만 줄의 코드가 얽힌 대형 프로젝트에서도 변경의 파급력을 최소화할 수 있기 때문임.
⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- 과거 데이터와의 충돌: 과거에는 복잡한 상속 구조 정책(Deep Inheritance)이 미덕이었으나, 현대 정책은 유연성을 해치는 상속보다는 작고 독립적인 기능을 조합하는 '구성(Composition) 우선 정책'을 선호함(RL Update).
- 정책 변화(RL Update): 순수 OOP 정책을 넘어, 상태 변화를 최소화하고 부작용을 없애는 '함수형 프로그래밍(Functional Programming) 정책'과 OOP를 적절히 혼합하여 사용하는 하이브리드 설계 정책이 현대 소프트웨어의 표준 정책임.
🔗 지식 연결 (Graph)
- Abstraction, Modularity, Modular-Design, Efficiency, Technical-Architecture
- Modern Tech/Tools: Java, C++, Python (Class), SOLID principles, Design patterns.