feat: Knowledge Gardening Milestone 470 (Batch #24 - 40% Achieved)

This commit is contained in:
Antigravity Agent
2026-04-26 20:15:33 +09:00
parent a9eab9356b
commit 64a46f2c1d
27 changed files with 675 additions and 57 deletions
@@ -1,29 +1,30 @@
---
id: ARCH-PAT-001
id: SYS-ARCH-PAT-001
category: "[[10_Wiki/💡 Topics/AI]]"
confidence_score: 1.0
tags: [software-engineering, architecture, design-patterns, system-design]
tags: [systems, architecture, software-engineering, design-patterns, microservices, layered-architecture, event-driven, scalability]
last_reinforced: 2026-04-26
---
# [[Software Architecture Patterns (소프트웨어 아키텍처 패턴)]]
## 📌 한 줄 통찰 (The Karpathy Summary)
> "복잡한 시스템의 구조를 정형화된 틀로 관리하여 변경에 강한 지도를 그려라" — 소프트웨어 시스템의 기본 구조와 구성 요소 간의 상호작용 방식을 정의한 검증된 설계 청사진.
> "코드를 작성하기 전에 지식과 기능의 '지도(Map)'를 먼저 그려라. 올바른 패턴 선택은 복잡성이라는 파도 앞에서 시스템을 지탱하는 가장 견고한 닻이 된다" — 소프트웨어 시스템의 구조적 문제를 해결하기 위해 반복적으로 사용되는 검증된 설계 원칙과 골격.
## 📖 구조화된 지식 (Synthesized Content)
- **추출된 패턴:** 시스템의 요구사항과 제약 조건에 따라 구성 요소들을 배치하고 통신 방식을 결정하여, 유지보수성, 확장성, 성능을 최적화하는 구조 설계 패턴.
- **주요 패턴:**
- **Layered (N-tier) Architecture:** 기능을 관심사에 따라 계층별로 분리 (예: Presentation, Business, Data layers). 가장 보편적임.
- **Microservices Architecture (MSA):** 시스템을 독립적으로 배포 가능한 작은 서비스 단위로 분해하여 유연성 극대화.
- **Event-Driven Architecture:** 상태 변화(Event)를 발행/구독(Pub/Sub) 모델로 처리하여 시스템 간 결합도를 낮춤.
- **Hexagonal (Ports & Adapters):** 핵심 비즈니스 로직을 외부 기술(DB, UI)로부터 독립시켜 테스트와 교체가 용이하게 설계.
- **Microkernel (Plug-in):** 핵심 코어와 확장 기능을 분리하여 동적인 기능 확장이 가능하게 함.
- **추출된 패턴:** "Separation of Concerns and Structural Modularity" — 시스템의 책임을 명확히 분리하여 변경의 파급 효과를 최소화하고, 특정 요구사항(확장성, 성능, 배포 속도 등)에 최적화된 컴포넌트 간 배치 방식을 결정하는 패턴.
- **주요 아키텍처 패턴:**
- **Layered (N-tier):** 역할을 수평으로 분리 (UI-Business-Data). 가장 범용적이고 단순함.
- **Event-driven:** 비동기 이벤트를 통해 통신. 높은 확장성과 유연성 제공.
- **Microservices:** 비즈니스 단위로 서비스를 완전히 쪼개어 독립적 배포와 확장이 가능하게 함.
- **Microkernel (Plugin):** 핵심 코어에 기능을 추가/제거할 수 있는 플러그인 구조. 확장성 우수.
- **Hexagonal (Ports & Adapters):** 핵심 로직을 외부 환경(DB, UI 등)으로부터 고립시켜 테스트 용이성 극대화.
- **의의:** 개발팀이 동일한 설계 언어를 공유하게 하며, 초기 결정이 향후 시스템의 생존 여부와 비용에 결정적인 영향을 미치는 '소프트웨어의 뼈대' 구축 과정.
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- **과거 데이터와의 충돌:** 모든 기능을 하나에 담던 모놀리식(Monolithic) 아키텍처에서, 분산 처리와 유연성을 중시하는 MSA 및 서버리스 환경으로 패러다임이 이동.
- **정책 변화:** Antigravity 프로젝트는 핵심 엔진과 개별 에이전트 스킬을 분리하는 '마이크로커널' 및 '이벤트 기반' 아키텍처를 하이브리드로 채택하여 높은 확장성을 확보함.
- **과거 데이터와의 충돌:** "무조건 마이크로서비스가 최고다"라는 유행에서 벗어나, 시스템의 규모와 팀의 역량에 맞춰 단순한 모놀리식(Monolithic)이나 모듈형 모놀리식(Modular Monolith)이 더 효율적일 수 있다는 실용주의적 접근이 다시 강조되고 있음.
- **정책 변화:** Antigravity 프로젝트는 핵심 에이전트 엔진은 마이크로커널 패턴으로 설계하여 기능을 유연하게 확장하고, 전체 서비스 배포는 독립성을 위해 마이크로서비스 지향적 패턴을 준수함.
## 🔗 지식 연결 (Graph)
- [[Domain-Driven-Design]], [[Separation-of-Concerns]], [[Microservices]], [[Design-Patterns]]
- [[Service-oriented-Architecture]], [[Microservices-Foundations]], [[Scalability-in-AI-Systems]], [[API-Design-Principles]]
- **Raw Source:** [[10_Wiki/Topics/AI/Software-Architecture-Patterns.md]]