피드로 돌아가기
Dev.toBackend
원문 읽기
컴포넌트와 레이어의 복합 설계를 통한 시스템 확장성 확보
Introduction To Systems Architecture
AI 요약
Context
초기 단계의 소규모 프로젝트에서도 명시적 아키텍처 설계가 부재할 경우 잠재적 기술 부채가 발생함. 프레임워크에 의존한 암묵적 구조에서 벗어나 명확한 경계와 데이터 흐름 정의의 필요성 대두.
Technical Solution
- Vertical Slice 방식의 Layered Architecture를 적용하여 HTTP 처리-비즈니스 로직-데이터 접근의 관심사 분리
- Horizontal Grouping 기반의 Component 설계를 통해 인증, 요청 관리, 알림 등 기능적 책임 단위 정의
- DB Blob 저장 방식 대신 별도의 File Storage를 도입하여 데이터베이스 부하 경감 및 저장소 효율성 증대
- Auth 컴포넌트 전용 Cache 레이어를 배치하여 인증 요청 시 발생하는 DB I/O 병목 현상 최소화
- Event-driven 구조의 Notifications 컴포넌트를 설계 단계에 포함시켜 향후 확장 지점 명시 및 개발 범위 제어
실천 포인트
- 시스템 다이어그램 작성 시 클래스 단위가 아닌 컴포넌트와 외부 의존성 중심으로 매핑할 것 - 데이터 저장 전략 수립 시 데이터 성격에 따라 RDB와 File Storage를 명확히 분리할 것 - 현재 구현하지 않더라도 미래 확장성이 필요한 기능은 컴포넌트로 정의하여 인터페이스 경계 확보할 것 - 아키텍처 다이어그램과 텍스트 설명의 논리적 일치 여부를 통해 설계 완성도 검증할 것
태그