피드로 돌아가기
Dev.toBackend
원문 읽기
계층-컴포넌트 복합 모델을 통한 Clarity 시스템 설계 및 확장성 확보
Introduction To Systems Architecture
AI 요약
Context
소규모 프로젝트에서 간과하기 쉬운 아키텍처 설계를 정형화하여 복잡도 증가에 대비한 기반 마련. 단순 프레임워크 의존성을 탈피하여 컴포넌트 간 경계와 데이터 흐름을 명시적으로 정의한 설계 단계 수행.
Technical Solution
- Web, Business Logic, Data Layer로 구분된 Vertical Slice 구조를 통해 Separation of Concerns 구현
- 기능적 책임 단위인 Auth, Request Management, Comments, Attachments, Notifications를 Horizontal Component로 분리하여 모듈성 강화
- Blob Storage 배제를 위해 Attachments 컴포넌트와 File Storage를 분리 설계하여 Database 부하 최적화
- Auth 컴포넌트에 한정된 Cache Layer 도입을 통한 인증 요청의 Database I/O 감소
- Notification 컴포넌트를 인터페이스 수준에서 정의하여 추후 확장 가능성을 열어둔 Deferred Decision 전략 채택
- 모든 요청이 Web Layer의 Middleware를 거쳐 각 컴포넌트로 전달되는 단방향 데이터 흐름 설계
실천 포인트
1. 단순 기능 구현 전 Layer(수직)와 Component(수평) 관점을 동시에 적용한 시스템 맵 작성
2. Database 내 대용량 파일 저장 여부를 검토하고 File Storage 분리 설계 적용
3. 현재 구현하지 않더라도 향후 확장 예정인 기능을 Component Box로 명시하여 설계 누락 방지
4. 캐싱 전략 수립 시 전체 적용보다 병목이 예상되는 특정 컴포넌트(예: Auth)부터 단계적 도입