한국관광공사 Open API(TourAPI)는 공공데이터포털에서 KorService2(국문 관광정보) 활용 신청을 하고 인증키(serviceKey)를 발급받아 사용합니다. 전국 관광지·맛집·숙소·축제 데이터를 키워드나 지역으로 검색할 수 있습니다.
호출 예제: https://apis.data.go.kr/B551011/KorService2/searchKeyword2?serviceKey=발급키&keyword=경복궁 — 주소창에 입력하면 제목(title)·주소(addr1)·좌표(mapx, mapy)가 담긴 JSON 응답이 돌아옵니다.
같은 URL을 HTML/JS의 fetch로 호출하면 CORS 에러가 납니다. API가 고장난 것이 아니라 브라우저의 동일 출처 정책이 다른 출처(apis.data.go.kr)로의 직접 요청을 막는 것입니다. 브라우저에서 CORS를 끄는 것은 내 컴퓨터에서만 통하고 실제 사용자에게는 적용되지 않습니다.
인증키를 프론트 코드에 두면 누구나 F12로 볼 수 있어 도용·한도 소진으로 이어집니다. 해결책은 브라우저와 관광공사 서버 사이에 내 서버(프록시)를 두는 것입니다. 서버 간 호출은 CORS와 무관하고 키는 서버에만 남습니다. 이 서버를 올리는 과정이 배포입니다.
확장 아이디어: 혼잡도 예측(TatsCnctrRateService)·지역 방문자(DataLabService)와 조합한 한적한 여행지 추천, 무장애 정보(KorWithService2)·오디오 가이드(Odii)로 만드는 배리어프리 여행, 반려동물 동반(KorPetTourService2)·캠핑장(GoCamping) 코스, 둘레길(Durunubi) 오디오 해설, SNS 언급량(AreaTarResDemService) 기반 여행지 큐레이션.
{ "items": [
{ "title": "경복궁", "addr1": "서울 종로구...", "mapx": 126.97, "mapy": 37.57 }
] }
https://apis.data.go.kr/B551011/KorService2/searchKeyword2?serviceKey=발급키&keyword=경복궁&...