brunch

You can make anything
by writing

C.S.Lewis

by 허윤희 Jul 20. 2021

그대의 여정에 날씨요정이 되줄게

[코드스테이츠PMB 07] API 활용하여 기능 만들어보기



'아 제발, 날씨 좀 어떻게 해봐'



내 친구 중에는 성격이 아주 꼼꼼한 친구가 있다. 그녀는 여행을 갈 때도 모든 여행 일정을 미리 정해두고 예약을 해야 마음이 안정되는 스타일이었다. 한 번은 그녀가 3주간 유럽 여행을 갔던 적이 있었다. 그녀는 행복한 상상을 하며, 최적의 동선과 완벽에 가까운 효율적인 루트로 일정을 짜고 미리 액티비티를 예약해두었다. 그런데 막상 여행을 떠나자 날씨 변동 때문에 본인이 꿈꾸던 여행을 하지 못했다. 에펠타워 앞 공원에서 와인 피크닉을 즐기려던 꿈과 스위스에서 패러글라이딩을 하고 싶어 하던 계획은 비가 와서 실패했고, 다른 일정과 변동을 하기 어려워 결국 그녀는 크게 낙담하고 포기할 수밖에 없었다.


한편, 나는 그녀와 다르게 꼭 가고 싶은 곳의 정보를 미리 알아두고, 여행 일이 다가오길 기다렸다가 날씨를 보고 일정을 결정하는 편이다. 날씨가 화창하면 자연경관을 보러 가거나 야경이나 액티비티를 즐기고, 비가 오는 날에는 쇼핑이나 미술관에 간다. 그런데 하루 이틀의 짧은 여행(Trip) 아닌 장기간 여행(Travel)을 할 때는 여행 중에 다음 목적지와 날씨에 맞는 활동을 찾아보는 일이 너무 번거로웠다. 뿐만 아니라, 여행 중에 다음 목적지와 활동을 찾아보고 계획하는 시간이 현재의 여행지를 더 즐기지 못한다는 점에서 아깝다고 느껴졌다. 




ps. 여러분 요즘 답답하고 꿉꿉하죠? 
이번 블로깅은 이 동영상을 틀어놓고 멋들어진 분위기에서 보시길 바라요.


피렌체 두오모 성당 앞에서, 콘트라베이스 최준혁_이탈리아여행 중 거리연주가들과 함께 즉흥연주_Autumn leaves







mission

오픈 API로 기능 1가지 기획하기
1. 문제 정의
2. 설루션 정의
3. API 활용 방안
4. 비즈니스 모델과 기대 효과



잠깐! API 란?


API는 Application Programming Interface로, 프로그램 간 커뮤니케이션을 담당하는 기능을 한다. 이 API를 활용하면, 다른 기업/개발자가 이미 멋지게 만들어놓은 기술을 활용할 수 있다.


예를 들어 날씨를 확인하려면 다음의 과정을 거쳐야 한다.


1. 웹브라우저 실행

2. 사이트 주소 입력

3. 지역 및 날짜 입력

4. 날씨 확인


그런데 개발을 하다 보니 많은 기술들에서 중복되는 기능(여기서는 날씨 정보가 필요한 상황)을 필요로 했던 것이다. 개발자와 기업들은 모두가 각각 날씨 정보를 불러오는 기능을 개발하는 것보다, 이미 잘 만들어진 기술을 API로 공유하고 서로 사용할 수 있도록 하여 보다 효율적이고 확장성이 큰 생태계를 만들게 된다. 


날씨 정보 API를 이용한다는 것은 다음과 같이 작동한다고 볼 수 있다. 


1. 프로그램에서 해당 API에 날짜/지역 정보를 전달

2. 해당 API에서 날씨정보를 응답





설루션 정의 및 API 활용 방안



'날씨 정보를 반영한 여행 내비게이션'


앞서 여행 스타일이 다른 친구와 내가 공통적으로 겪은 문제는 '여행 중 날씨의 변화에 따른 일정 무산과 변동'이었다. 그렇다면 반대로 날씨 정보를 반영하여 일정을 추천받을 수 있다면 어떨까? 마치 내비게이션이 실시간 교통정보를 반영하여 최적의 경로를 찾아주는 것처럼 말이다.


목적지를 정할 때, 일차적으로는 사용자가 원하는 기준(교통편/소요 이동시간/머무는 기간/숙박 가격 등)으로 적합한 여행지들을 가려낼 수 있다. 그렇게 추려진 여행지들의 날씨 정보와 조건들을 보여준다면, 여행자는 자신의 니즈에 적합한 목적지를 정할 수 있을 것이다. 


더욱이 사용자에게 머무는 날짜(요일) 정보를 받아온다면, 날씨와 관광명소의 운영 정책에 맞게 해당 여행지에 대해 추천 일정 가이드와 교통 및 숙박 정보를 줄 수도 있을 것이다. 이러한 기능들을 바탕으로 여행자는 여행 일정을 짜는 것에 있어서 이전보다 훨씬 시간과 에너지를 절약할 수 있다. 


이 기능을 구현하기 위해서 필요한 정보에는 도시별 날씨 정보와 교통・숙박 정보, 관광명소・액티비티 운영 정보가 있다. 필요한 정보들을 고려하여 해당 기능을 제공하는 API를 찾아보았다.



1. 실시간 도시별 날씨 정보


Openweathermap API (도시별 날씨 정보) : 

https://openweathermap.org/api/one-call-api

Yahoo weather API (안드로이드용 무료 날씨 정보) :

https://www.survivingwithandroid.com/android-weather-app-tutorial-step-by/



2. 교통편・숙박 정보


스카이스캐너 API (항공권 검색) :

https://sky scanner.github.io/slate/?_ga=1.104705984.172843296.1446781555#api-documentation

익스피디아  API (숙박, 항공 정보 제공 및 예약) :

https://developers.expediagroup.com/supply/lodging/docs/

Citymapper API (도시 내 공공교통 길안내 제공) : 

https://citymapper.com/enterprise



3. 관광명소・액티비티 정보 (운영 시간 및 휴일, 가격 등)


카카오 지도 (로컬 정보 제공) :

https://developers.kakao.com/product/map

Google Place API (로컬 정보 제공) :

https://developers.google.com/maps/documentation/places/web-service/overview

호텔 베드 API (숙박, 액티비티 정보 제공 및 예약) :

https://developer.hotelbeds.com/

티켓마스터 API (콘서트와 스포츠 행사 정보 및 티켓 예매) :

https://developer.ticketmaster.com/products-and-docs/apis/getting-started/






비즈니스 모델과 기대 효과


비즈니스 모델

기대효과


사용자(여행자) : 날씨를 고려한 여행 일정 가이드 + 간편한 예약

교통・항공/숙박 시설 : 고객 유입 + 잔여 좌석/객실 소진

관광명소, 식당, 액티비티 업체 : 고객 확보 + 날씨에 따른 비즈니스 개선 제안(안정적 매출 확보)

설루션 : 관련 업체들의 중개 수수료 + 날씨별 관광 데이터






마무리하며,


- 놀랍게도 반나절만에 구상한 아이디어. 가장 빠르게 끝낸 과제였다. 발등에 불 떨어진 스프린터.


- API를 잘 활용한다면 MVP를 만들고 가설을 검증하는 단계를 빠르게 빌드업할 수 있을 것이다. 그러나 API에만 의존하는 것은 바람직하지 못하다


- 여행이 너무 가고 싶다. 지금은 마스크 없이 광장 그늘에 누워 핑거푸드 곁들인 와인에 필독도서를 읽을 수만 있어도 너무 행복할 것 같다. 


버킷리스트. 날씨 요정과 포르투 노을을 보자



▾ 기능별로 다양한 API를 찾아볼 수 있는 사이트


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari