less than 1 minute read

어떤 에러?

Next.js를 이용해 공공데이터 포털의 API를 사용해서 웹 서비스를 만드는 중이었다.

해당 API에 요청을 보내 data를 뽑아오려고 했고,

발급받은 API KEY를 넣어 요청을 보냈지만

SERVICE_KEY_IS_NOT_REGISTERED_ERROR;

위와 같은 오류를 뱉어냈다.

어떻게 해결?

도대체 왜 그런것인가, 여러가지 시도를 해보았다.

두 가지로 문제를 예상할 수 있었는데,

  1. 서비스 값이 틀린 경우 → 말 그대로 서비스 값을 잘못 넣은 경우다. API KEY를 발급 받고 동기화까지 1시간까지 소요될 수도 있는데, 1시간이 지났는데도 안됐을 경우에는
  2. API KEY의 Encoding 문제인 경우 → 이건 1번과도 겹칠 수 있는건데, 애초에 API KEY는 Encoding된 값을 부여받는다. 하지만 어찌된 영문인지, 해당 KEY를 넣으면 위와 같은 오류를 뱉어냈고, encodeURI() method를 이용해 한번 더 encoding 한 KEY를 넣어주니 정상적으로 data를 받아왔다.
const url = "API KEY";
const res = encodeURI(url);
console.log(res);
// 해당 값을 KEY값으로 서버 요청

KEY값이 올바르지 않다고 하면, 앞으로 Encoding에 문제가 없는지

확인해보도록 하자.

encodeURI() method는 해석 불가한 (한글 등) text를 encoding 해주고,

encodeURIComponent() method는 그 외 (= 등)의 text도 encoding 해준다.

Updated: