37 lines
2.6 KiB
Markdown
37 lines
2.6 KiB
Markdown
---
|
|
id: P-REINFORCE-AUTO-PARC-001
|
|
category: "10_Wiki/💡 Topics/AI"
|
|
confidence_score: 0.95
|
|
tags: [auto-reinforced, software-architecture, principles, quality-attributes, design]
|
|
last_reinforced: 2026-04-20
|
|
---
|
|
|
|
# [[Principles-of-Architecture|Principles-of-Architecture]]
|
|
|
|
## 📌 한 줄 통찰 (The Karpathy Summary)
|
|
> "지속 가능한 복잡성을 위한 약속: 시스템이 커져도 무너지지 않도록, 구성 요소 간의 결합을 끊고 소통 방식을 표준화하는 거시적 설계 원칙."
|
|
|
|
## 📖 구조화된 지식 (Synthesized Content)
|
|
소프트웨어 아키텍처 원칙(Principles of Architecture)은 복잡한 시스템을 효율적으로 구축하고 유지보수하기 위해 지켜야 할 기본 지침입니다.
|
|
|
|
1. **가장 핵심적인 3대 원칙**:
|
|
* **Separation of Concerns (관심사 분리)**: 핵심 로직, 데이터 접근, UI 처리를 명확히 분리하여 한 부분의 변화가 전체를 흔들지 않게 함.
|
|
* **Abstraction (추상화)**: 구현의 세부 사항을 감추고 인터페이스만 노출하여 시스템간 결합도를 낮춤.
|
|
* **Modularity (모듈화)**: 독립적으로 재사용 가능한 단위로 시스템을 쪼개어 확장성 확보.
|
|
2. **품질 속성 (Quality Attributes)**:
|
|
* **Scalability**: 늘어나는 부하에 대응할 수 있는가?
|
|
* **Resilience**: 장애 시 복구 가능한가?
|
|
* **Maintainability**: 읽기 쉽고 고치기 쉬운가?
|
|
3. **설계 접근법**:
|
|
* Monolithic vs Microservices: 비즈니스 규모와 팀 구조에 따른 선택.
|
|
* Layered Architecture: 계층별 역할 분담을 통한 구조적 통제.
|
|
|
|
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
|
|
- **과거 데이터와의 충돌**: 과거에는 '완벽한 미리 설계(Upfront Design)'를 권장했으나, 현대 아키텍처는 비즈니스 변화에 유연하게 대응하는 '진화적 아키텍처(Evolutionary Architecture)'와 'Agile 설계'를 지지함.
|
|
- **정책 변화(RL Update)**: 클라우드 네이티브 환경으로의 전환 정책에 따라, 모든 시스템 아키텍처는 '장애를 가정하고 설계(Design for Failure)'해야 한다는 안정성 최우선 정책이 글로벌 표준이 됨.
|
|
|
|
## 🔗 지식 연결 (Graph)
|
|
- [[Object-Oriented-Design-Patterns|Object-Oriented-Design-Patterns]], [[Software-Design-Principles|Software-Design-Principles]], [[Polymorphism-in-Engine-Architecture|Polymorphism-in-Engine-Architecture]], [[Complexity Theory|Complexity Theory]], System Thinking
|
|
- **Modern Tech/Tools**: Kubernetes, Docker, AWS Well-Architected Framework.
|
|
---
|