TL;DR — 항목별 실패 메시지를 자유 문자열로 저장했는데, 외부 API 예외 메시지에 업스트림 응답 본문이 통째로 들어 있었다. 이 값이 인증 없는 조회 응답에 그대로 실렸다. 규칙을 문서로 적는 대신, 위반이 컴파일과 테스트에서 실패하도록 타입과 검사로 강제했다.
error_message에 서버 경로·호스트·업스트림 응답 본문이 그대로 들어간다String으로 받는 API가 있었고, 거기에 예외 메시지를 그대로 넣고 있었다400 Bad Request: "<응답 본문>" 형태라 업스트림 본문이 통째로 들어 있다(URL은 안 들어가지만 본문은 들어간다는 걸 실측으로 확인했다)오류를 enum으로만 정의하고, 각 코드에 노출 등급(응답 노출 / 로그 전용)을 부여했다. 그리고 세 겹으로 강제한다.