API
API 응답이 불안정할 때 날짜 필터부터 확인하자
API에서 날짜 기반 필터링을 사용할 때 응답 형식이 일관성 없게 나오는 문제를 다루는 방법입니다.
API의 날짜 필터가 제대로 작동하지 않으면, 요청마다 다른 응답이 나온다. 처음부터 완벽한 해결책을 찾으려다 보면 오히려 확인 시간이 길어진다.
핵심은 한 가지씩 차근차근 확인하는 것이다. 요청 파라미터부터 응답까지 전체 흐름을 추적해야 한다.
첫 번째 확인: 요청이 제대로 들어가는가
날짜 필터를 사용할 때는 요청 파라미터 형식이 중요하다. 서버에서 기대하는 날짜 형식(ISO 8601, Unix timestamp 등)과 클라이언트에서 보내는 형식이 다르면 아무리 해도 작동하지 않는다.
curl -i 'https://example.com/api/items?page=1&startDate=2024-01-01&endDate=2024-12-31'
API에 직접 curl로 요청을 보내보고 응답 코드와 body를 확인한다. 성공하면 200이 나오고, 파라미터 형식이 잘못되면 400이나 422가 나온다.
두 번째 확인: 응답 데이터가 예상과 일치하는가
요청이 성공했다고 해도 응답 데이터가 잘못 구성되어 있을 수 있다. 예를 들어 날짜가 문자열일 때도, 숫자일 때도 있을 수 있다.
같은 요청을 여러 번 보냈을 때 응답이 달라진다면, 시간대(timezone) 때문일 가능성이 높다. 또는 데이터베이스의 현재 상태에 따라 결과가 달라질 수 있다.
세 번째 확인: 인증이 제대로 되어 있는가
날짜 필터가 작동하지 않는 것처럼 보일 수 있지만, 사실은 인증 실패로 인해 다른 응답이 나오는 경우도 있다. 인증되지 않은 요청은 전혀 다른 데이터셋을 반환할 수 있다.
요청에 인증 토큰을 포함시켰는지, 토큰이 만료되지 않았는지 확인한다. 토큰이 있어도 유효성이 검증되지 않으면 기본 응답만 반환된다.
체크리스트
API 날짜 필터 문제를 다룰 때는 다음 순서로 확인한다:
- curl로 직접 요청을 보내본다
- 응답 코드(200, 400, 401 등)를 확인한다
- 응답 body의 형식과 데이터가 일치하는지 본다
- 같은 요청을 여러 번 보냈을 때 일관성이 있는지 확인한다
- 인증 토큰이 유효한지 검증한다
마지막에는 실제 화면이나 공개 URL까지 확인해야 작업이 끝난다. 날짜 필터가 정상적으로 작동하는 모습을 직접 눈으로 봐야 한다. 관련 기록을 짧게라도 남겨두면 다음 확인이 훨씬 빨라진다.