Files
2nd/10_Wiki/Topics/AI/Software-Architecture-Patterns.md
T

30 lines
2.2 KiB
Markdown

---
id: ARCH-PAT-001
category: "[[10_Wiki/💡 Topics/AI]]"
confidence_score: 1.0
tags: [software-engineering, architecture, design-patterns, system-design]
last_reinforced: 2026-04-26
---
# [[Software Architecture Patterns (소프트웨어 아키텍처 패턴)]]
## 📌 한 줄 통찰 (The Karpathy Summary)
> "복잡한 시스템의 구조를 정형화된 틀로 관리하여 변경에 강한 지도를 그려라" — 소프트웨어 시스템의 기본 구조와 구성 요소 간의 상호작용 방식을 정의한 검증된 설계 청사진.
## 📖 구조화된 지식 (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):** 핵심 코어와 확장 기능을 분리하여 동적인 기능 확장이 가능하게 함.
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- **과거 데이터와의 충돌:** 모든 기능을 하나에 담던 모놀리식(Monolithic) 아키텍처에서, 분산 처리와 유연성을 중시하는 MSA 및 서버리스 환경으로 패러다임이 이동.
- **정책 변화:** Antigravity 프로젝트는 핵심 엔진과 개별 에이전트 스킬을 분리하는 '마이크로커널' 및 '이벤트 기반' 아키텍처를 하이브리드로 채택하여 높은 확장성을 확보함.
## 🔗 지식 연결 (Graph)
- [[Domain-Driven-Design]], [[Separation-of-Concerns]], [[Microservices]], [[Design-Patterns]]
- **Raw Source:** [[10_Wiki/Topics/AI/Software-Architecture-Patterns.md]]