운영 항목마다 검증 상태를 같이 적었다. 실제로 실행해서 확인한 것과 일부러 실패시켜 재현한 것, 코드만 있는 것, 아직 남은 일은 서로 다른 단계니까.

이걸 구분하지 않으면 운영을 고려해서 만든 것이 운영으로 검증된 것처럼 읽힌다. 현재는 로컬 검증 단계고 공개 호스팅 운영은 시작 전이다.


외부 API가 실패했을 때

상황 처리
응답이 늦거나 서버 오류 정해진 횟수 안에서만 다시 시도
인증 오류, 잘못된 요청 다시 시도하지 않고 소스 실패로 처리
일부 소스만 실패 확인된 정보와 실패한 소스를 함께 반환
최신 조회 실패 허용 기간 안의 이전 응답이 있을 때만 경고와 함께 사용
지원 범위 밖 장애나 시설 없음으로 바꾸지 않고 범위 밖이라고 표시

최신 캐시 → 공공 API → 실패하면 허용 기간 안의 이전 응답 → 다른 소스로 확인 가능한 정보 → 부분 응답


캐시

캐시는 메모리가 기본이다. 혼자 도는 로컬 프로세스에 Redis부터 붙일 이유가 없었고, 여러 인스턴스로 늘어나면 그때 선택하면 된다.

같은 키로 동시에 요청이 몰리면 하나로 합쳐서 외부 API를 한 번만 부른다. 외부 API를 한꺼번에 두들기지 않도록 동시 호출 수도 묶어뒀다.


인증과 보안

인증은 환경마다 다르다. 로컬은 인증 없이 쓰고, 제한이 필요한 테스트에는 고정 토큰을, 공개 호스팅 요구가 생기면 표준 인증을 붙인다.


상태 점검과 지표

상태 점검은 실행 모드와 인증, 캐시, 공공 API 설정이 갖춰졌는지를 본다. 외부 API를 실제로 호출해보는 검사가 아니라 설정이 제대로 됐는지 보는 검사라는 한계도 같이 적어둔다.