Files
2nd/10_Wiki/Topics/Principles-of-Architecture.md
T

2.4 KiB

id, category, confidence_score, tags, last_reinforced
id category confidence_score tags last_reinforced
P-REINFORCE-AUTO-PARC-001 10_Wiki/💡 Topics/AI 0.95
auto-reinforced
software-architecture
principles
quality-attributes
design
2026-04-20

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)