경험 중심 1인칭 답변
광고 백엔드처럼 트래픽이 급변하는 서비스에서 고가용성을 확보하려면 단일 장애점(SPOF) 제거가 가장 먼저라고 생각합니다. 로드밸런서, DB, 캐시 레이어 모두 단일 인스턴스 구성을 피하고 액티브-액티브 또는 액티브-패시브 이중화를 적용해야 합니다. 그 다음으로 중요한 것은 서킷 브레이커 패턴입니다. 하위 서비스 장애가 전체로 전파되지 않도록 타임아웃과 fallback 응답을 명확히 정의해야 합니다. 인턴 프로젝트에서 외부 API 의존 서비스를 만들었을 때 호출 실패 시 캐시된 이전 결과를 반환하는 방식으로 이 패턴을 적용했고, 장애 상황에서도 서비스가 멈추지 않는 것을 확인했습니다. 또한 배포 전략으로 블루-그린 또는 카나리 배포를 적용하면 롤백이 쉬워져 가용성이 높아집니다.
모니터링 알림을 응답 시간 기반으로 설정해두면 장애가 발생하기 전에 징후를 포착할 수 있습니다. 이 모든 것의 전제는 장애가 발생한다는 것을 가정하고 설계하는 것이라고 생각합니다.