AI VIDEO BRIEFING
네이버 지도 API를 GPTs에 연동하기: 인증 키 두 개 문제를 자체 서버로 우회하는 방법
GPTs는 인증 키를 하나만 받기 때문에 헤더가 두 개인 네이버 지도 API를 직접 붙일 수 없다. 익스프레스로 중계 서버를 만들어 길찾기 기능을 연동하고 인증 키까지 안전하게 감추는 과정을 단계별로 따라간다.

핵심 메시지
쉽게 이해하기
영상은 완성된 결과를 먼저 보여주며 시작한다. GPTs 앱에 두 대학 사이의 거리를 물으면 배포해둔 서버를 호출해 약 15.6킬로미터, 29분, 택시 요금 2만 원 남짓이라는 답이 돌아온다. 실시간 교통 상황까지 반영한 값이다. 발표자는 이 기능을 요청하는 댓글이 오래전부터 많았지만 그동안 답하지 못했던 이유가 따로 있었다고 말한다.
이유는 인증 방식이다. 네이버 클라우드 콘솔에서 애플리케이션을 등록하면 클라이언트 아이디와 클라이언트 시크릿 두 개의 값이 발급되고, API를 부를 때 두 값을 모두 헤더에 실어야 한다. 그런데 GPTs의 액션 설정은 인증 키를 하나만 받는다. 헤더가 두 개 이상이면 만들 수가 없다. 게다가 키를 GPTs 쪽에 직접 적어 넣는 방식은 그 자체로 좋은 습관이 아니라는 점도 함께 짚는다.
그래서 구조를 한 겹 늘린다. GPTs가 부르는 대상을 네이버가 아니라 내가 만든 서버로 바꾸고, 그 서버 안에 네이버 지도를 호출하는 코드를 넣는다. GPTs 입장에서는 인증 키가 하나뿐인 평범한 서버를 부르는 것이고, 두 개의 키는 서버 안에 숨는다. 발표자는 인증 키가 두 개 이상인 API를 붙일 때는 반드시 이렇게 자기 서버를 먼저 배포하라고 권한다.
실습은 익스프레스 프로젝트를 만드는 것에서 출발한다. 터미널에서 폴더를 만들고 패키지를 초기화한 뒤 익스프레스를 설치하고, api 폴더 안에 진입 파일을 만들어 루트 경로에 접속하면 문구가 뜨는 최소한의 서버를 띄운다. 배포 설정 파일을 추가하고 버셀 명령으로 로컬에서 실행하면 로컬호스트 3000번 포트에서 서버가 뜨는 것을 확인할 수 있다. 발표자는 문서에 적힌 예제 코드가 잘 될 때도 있고 안 될 때도 있어, 포트를 고정하지 않고 열려 있는 포트를 쓰도록 바꾼 코드를 깃허브에 올려두었다고 덧붙인다.
다음은 실제 호출부다. 네이버 길찾기 API는 출발지와 목적지, 그리고 탐색 옵션 세 가지를 파라미터로 받는다. 옵션에 따라 실시간 최단 경로를 줄지 최적 경로를 줄지가 갈린다. 서버에 별도의 경로를 하나 열어두고 사용자가 그 경로로 요청하면, 쿼리 파라미터에서 출발지와 목적지를 꺼내고 환경 변수에서 인증 키를 읽어 액시오스로 네이버를 호출한 뒤 응답을 돌려준다. 호출 실패에 대비한 오류 처리도 함께 넣는다.
테스트는 로컬 서버를 켜둔 채 새 터미널에서 위도와 경도를 넣어 요청해보는 방식이다. 길찾기에 성공했다는 응답과 함께 거리와 소요 시간 정보가 돌아오고, 서버 쪽 터미널에도 호출이 정상적으로 처리됐다는 로그가 찍힌다. 여기까지가 1부다. 이 서버를 실제로 배포해 GPTs 안에서 부르는 과정은 2부로 이어진다.
주요 인사이트
- 플랫폼의 제약이 오히려 더 나은 설계를 강제하는 사례다. GPTs가 키를 하나만 받는 탓에 서버를 한 겹 두게 되는데, 그 결과 인증 키가 외부에 노출되지 않는 구조가 자연스럽게 만들어진다.
- 발표자는 난이도가 있다는 점을 숨기지 않고 여러 번 예고한다. 그러면서도 일단 한 번 끝까지 만들어 성공해보면 거기서 생기는 이해가 분명히 있다며, 완벽한 이해보다 완주를 권한다.
- 설정 화면에서 서비스 환경 URL을 등록하는 단계는 건너뛰어도 된다는 안내처럼, 문서대로 따라 하다 막히기 쉬운 지점을 미리 짚어주는 대목이 많다. 실습형 영상에서 이런 예외 처리가 완주율을 좌우한다.
- 인증 키를 코드에 직접 쓰지 않고 환경 변수 파일에서 불러오도록 별도 패키지를 설치하는 대목은 사소해 보이지만, 이 프로젝트를 남에게 공유하거나 저장소에 올릴 때 곧바로 문제가 되는 부분이다.
- 결국 이 영상이 가르치는 것은 지도 연동 자체가 아니라 패턴이다. GPTs에 붙이고 싶은 외부 API가 인증 구조 때문에 막힐 때 중계 서버를 세우는 방법은 다른 서비스에도 그대로 적용된다.
자주 묻는 질문
왜 네이버 지도를 GPTs에 바로 연결할 수 없나?
네이버 지도 API는 클라이언트 아이디와 클라이언트 시크릿이라는 두 개의 인증 값을 헤더에 실어야 한다. 반면 GPTs의 액션 설정은 인증 키를 하나만 받도록 되어 있어서, 헤더가 두 개 이상 필요한 API는 그대로 등록할 수 없다.
중계 서버를 두면 무엇이 달라지나?
GPTs는 내가 배포한 서버 주소 하나만 호출하고, 두 개의 인증 키는 서버 안쪽에서만 쓰인다. 키 개수 제한을 피할 수 있을 뿐 아니라 키가 GPTs 설정에 노출되지 않아 더 안전하다. 발표자는 인증 값이 두 개 이상인 API라면 이 방식을 권한다.
어떤 도구를 쓰는가?
코드는 VS 코드에서 작성하고, 서버는 노드 환경의 익스프레스 패키지로 만든다. 외부 API 호출에는 액시오스를 쓰고, 인증 키는 환경 변수 파일에서 읽어오는 패키지를 따로 설치한다. 배포와 로컬 실행에는 버셀을 사용하며 깃허브 계정으로 로그인할 수 있다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗