--- title: 시스템 아키텍처와 관심사 분리 ([[Separation of Concerns]]) category: Software [[Architecture]] tags: [Architecture, SoC, Modular Design, Design Pattern] created: 2026-04-20 --- # 시스템 아키텍처와 관심사 분리 (SoC) ## 🎯 개요 (Overview) 복잡한 소프트웨어 시스템을 역할별로 구분된 독립적인 모듈로 나누어, 유지보수성과 확장성을 극대화하는 설계 철학입니다. ## 🚀 계층구조 예시 (Layering Example) 1. **[[Logic]] Engine**: 순수 비즈니스 로직 및 규칙 수행 (예: `gameWorker.js`) 2. **[[State]] Manager**: 데이터의 중앙 집중 처리 (예: `TetrisGame.jsx`) 3. **View Layer**: 사용자 인터페이스 표현 및 렌더링 (예: React Components) ## 💡 레슨 런 (Lesson Learned) > [!IMPORTANT] > **"코드의 경계가 명확할 때 시스템은 비로소 건강해진다."** > 기능을 추가할 때 기존 코드를 수정하기보다 새로운 모듈을 덧붙일 수 있는 구조를 고민해야 합니다. ## 🔗 연결된 지식 - [[WebWorker_Performance]] - [[Single_Source_of_Truth]]