시스템 아키텍처를 설계할 때는 다음 사항도 고려해야 합니다.
• 확장성: 서비스 사용자 수가 많아지고, 데이터가 방대해지며, 더 많은 기능이 추가되었을 때도 이를 지원할 수 있는지
• 유지 보수성: 버그 수정, 디버깅, 성능 개선 작업이 얼마나 수월할지
• 신뢰성: 시스템이 중단 없이 안정적으로 동작할 수 있는지, 문제가 발생하더라도 기능을 지속적으로 유지할 수 있는지
• 지연 시간: 아키텍처가 시스템의 응답 시간과 성능에 미치는 영향은 어떤지
상위 수준의 시스템을 설계하는 일은 아키텍처를 명확하게 선택하는 것에서 시작됩니다. 다시 말해 여러 아키텍처 옵션 중 현재 구현해야 하는 시스템 요구 사항에 가장 적합한 아키텍처를 골라야 하는 것입니다. 설계 단계에서 주요 아키텍처 구조(예 모놀리식, 마이크로서비스 등)를 선택할 때 그 이유와 적합성을 분명하게 정의하고, 해당 선택이 시스템 목표와 일치하는지 확인하는 데 중점을 두어야 합니다. 이제 데이터 흐름으로 넘어가 볼까요?