네이버 API를 이용한 지오코딩(Geocoding)
by Kim
목차
제가 운영중인 네이버 블로그에서 가장 질문이 많은 글이라 다시 정리해서 올려보았습니다. 해당 글을 작성하게 된 배경은 아파트 실거래가 예측 프로젝트 진행 중 아파트의 가격과 각종 편의시설 및 주요 시설들의 관계(예 : 역세권)를 거리 기반으로 엮기 위해서 위도, 경도 좌표가 필요했습니다.
0. Geocoding이란?
지오코딩(geocoding)은 주소를 위도, 경도로 바꾸는 작업입니다.
이 글에서는 도로명주소를 순서대로 입력하면 해당 주소의 정보를 json형태로 받아서 정보 내에서 위도와 경도 데이터만 뽑아서 저장하는 코드를 다루고 있습니다.
각종 지오코딩 프로그램, 구글 API, KAKAO MAP API도 있지만 속도 문제 및 비용 문제로 인해 네이버의 지도 API를 사용하게 되었습니다. KAKAO MAP API에 대해 일 30만회 무료기 때문에 횟수 측면에서 더 낫다는 질문 댓글이 있었는데 실제 프로젝트 진행중에 카카오쪽을 이용했을 때 지오코딩 횟수가 1만회가 넘어가는 순간 이유를 모른채 끊기는 경우가 발생하여 포기하게 되었습니다.
네이버 지도 API는 네이버 클라우드 플랫폼에서 사용권한을 얻을 수 있습니다.
1. 네이버 클라우드 플랫폼(NAVER Cloud Platform)
네이버 클라우드 플랫폼은 네이버에서 제공하는 서비스로 저장소, 데이터 분석, 데이터베이스 등 다양한 IT 서비스들이 있습니다. 서비스들 중 지도 API를 사용할건데 월 300만건 무료 사용이 가능하기 때문에 개인 프로젝트시에 활용하기 좋습니다. 공공데이터를 받을 때 인증키를 발급받아야 했던것처럼 네이버에서도 인증키를 발급받아야하기 때문에 홈페이지로 들어가보도록 하겠습니다.
인증키 발급
네이버 클라우드 플랫폼 메인 화면입니다. 여기서 맨 오른쪽 Console 버튼을 눌러서 이동합니다.
현재 본인이 이용중인 서비스들을 등록하고 확인할 수 있는 콘솔 페이지입니다. 좌측 배너에 있는 Product & Services
를 누르면 뜨는 창에서 AI·NAVER API
를 누릅시다. AWS에서는 원하는 서비스를 검색창에서 검색해서 찾아볼 수 있어 직관적이었는데 이 부분이 아쉽네요.
키 발급을 받기 위해 Application 등록 버튼
을 눌러줍시다.
실제 애플리케이션에 사용할 것은 아니기 때문에 임의의 값을 입력해주고 Service 선택에서 Geocoding
을 선택해주시고 등록을 하시면 됩니다. 등록 후 인증 정보 버튼을 누르면 아래와 같은 창을 볼 수 있는데 ID와 Secret에 있는 텍스트를 저장해둡시다. 이 값들을 이용해 네이버 API에 접속하여 정보를 얻어올 수 있습니다.
2. Geocoding 실행
Python으로 위도 경도를 받는 코드는 다른 분의 블로그에서 참고를 하였습니다. 도움을 많이 받은 글이기 때문에 글씨를 클릭하면 바로 보실 수 있습니다.
이 블로그에 있는 코드를 그대로 실행했을 때 주소를 못 찾는 경우 에러 처리가 제대로 되지 않아서 문제가 되는 부분만 수정하여 python 스크립트를 올립니다.
예제 파일을 따로 첨부하지 않았으며 코드를 각자 사용환경에 맞춰 바꿀 필요가 있기 때문에 python에 익숙하지 않으신 분들은 사용하기 어려울 수 있습니다.
Subscribe via RSS