API 엔드포인트 오류 해결과 교훈

jeongmuyamette·2025년 1월 23일

TIL

목록 보기
33/72
post-thumbnail

API 엔드포인트 오류 해결과 교훈

📌 문제 상황

공공데이터 포털의 로또 판매점 API를 호출하는 과정에서 "등록되지 않은 서비스입니다" 라는 400 에러가 발생했다.

🔍 원인 분석

동일한 API를 사용했음에도 이전에는 잘 작동했던 코드가 갑자기 작동하지 않는 현상이 발생했다. 문제의 원인을 비교 분석한 결과:

1. API 엔드포인트 경로 차이

// 정상 작동하는 경로
"/15086355/v1/uddi:ef7ca84b-c2bc-404a-9743-85752073b61b"

// 오류가 발생한 경로
"/15086355/v1/uddi:ef7ca84b-c2bc-404a-9743-85752073b61b_api"  // _api 추가

2. 쿼리 파라미터 구성 차이

// 정상 작동하는 파라미터
"?page=1&perPage=10&serviceKey=[인증키]"

// 오류가 발생한 파라미터
"?page=1&perPage=1000&type=json&serviceKey=[인증키]"

✅ 해결 방법

  1. API 엔드포인트에서 잘못 추가된 _api 제거
  2. 쿼리 파라미터를 단순화:
    • perPage 값을 1000에서 10으로 수정
    • 불필요한 type=json 파라미터 제거

💡 교훈

1. API 문서 준수의 중요성

  • API 문서에 명시된 정확한 엔드포인트를 사용해야 함
  • 임의로 경로나 파라미터를 수정하지 말 것

2. 변경 관리의 중요성

  • 잘 작동하는 코드의 구성을 함부로 변경하지 않기
  • 변경이 필요한 경우 단계적으로 테스트하며 진행

3. 디버깅 접근 방법

  • 이전 작동 버전과 현재 버전의 차이점 비교
  • 한 번에 한 가지씩 수정하며 테스트

🎯 실무 적용 포인트

  1. API 호출 시 엔드포인트 URL을 상수로 관리하여 실수 방지
  2. API 호출 테스트 케이스를 문서화하여 참조
  3. 변경 사항 적용 전 백업 코드 보관

📚 참고 자료

  • 공공데이터 포털 API 문서
  • Swift URLSession 공식 문서

이러한 경험을 통해 API 통신에서의 세세한 부분까지 신경 써야 함을 배웠고, 문제 해결 과정에서의 체계적인 접근 방법의 중요성을 깨달았다.

0개의 댓글