2.2 KiB
2.2 KiB
id, category, confidence_score, tags, last_reinforced
| id | category | confidence_score | tags | last_reinforced | ||||
|---|---|---|---|---|---|---|---|---|
| ARCH-PAT-001 | 10_Wiki/💡 Topics/AI | 1.0 |
|
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 프로젝트는 핵심 엔진과 개별 에이전트 스킬을 분리하는 '마이크로커널' 및 '이벤트 기반' 아키텍처를 하이브리드로 채택하여 높은 확장성을 확보함.