두잇트립 개발기(1)

dev Oct 22, 2017

문득 아이디어가 떠오르면 머릿속에 저장해놨다가 시간 날 때 만들어봐야겠다고 생각한다. 그렇게 시간이 지나면 까먹는 것도 있고, 시장조사를 해보면 내가 생각했던 아이디어를 잘 가다듬어 이미 출시한 서비스가 있었다. 그리고 개발을 진행하다가 레퍼지토리에만 올려두고 서비스를 출시하지 못한 것도 있다. 이것저것 따지다 보니 생각만 있고 결과가 없었다. 그래서 다음에 생각나는 아이디어는 생각을 줄이고 행동으로 실천하자고 마음먹었다.

그렇게 여름쯤 아이디어가 하나 떠올랐다. 7월부터 국내선 비행기를 많이 접했는데 두 가지 의문이 생겼다. 첫 번째, 비행기를 탈 때 가져가는 내 짐이 공항의 보안검색대나 항공사의 규정을 통과할 수 있는가? 였다. 두 번째, 사람들은 이런 정보를 매번 인터넷에서 검색하는 걸까? 였다. 인터넷에 찾아보니 각종 커뮤니티나 지식인에 수하물 통과 관련 질문이 많이 올라와 있었고, 그 정보를 제공할 수 있는 서비스가 있으면 좋겠다고 생각했다. 교통안전공단에서 제공하는 수하물 검색 서비스가 있었지만, 모바일에서 접근성이 떨어지고 불편한 느낌이었다. 그래서 모바일 애플리케이션으로 서비스하자고 생각했다.

만들기 전에 수하물 데이터를 어떻게 구할 것인지 생각해봤다. 생각해보니 통계청이나 공공데이터 포털에 API가 있을 것 같았다. 그런데 찾아보니 없었다. 난감했다. 데이터를 어떻게 하지? 생각하다가 사용자가 등록하는 데이터로 서비스를 운영하는 건 어떨까? 생각했다. 데이터가 많이 모이는게 관건이겠지만 일단 만들자고 생각하며 서비스 시나리오를 정의해봤다.

대충 서비스 시나리오를 정의해보면 다음과 같다.

  1. 사용자가 OO 공항에서 OO 항공사를 이용했을 때 OO 물품은 통과/불통과 됐다는 정보를 앱에 등록한다.
  2. 1번의 정보가 저장될 때마다 서버는 OO 물품의 통과 확률을 OO 공항, OO 항공사별로 업데이트한다.
  3. 사용자는 물품의 통과 확률을 공항, 항공사 별로 검색할 수 있다.

서비스 시나리오를 보면 알겠지만, 앱 사용자가 수하물 정보를 등록해야 검색 기능에서 정확한 데이터를 얻을 수 있다. 애초에 아무도 등록을 하지 않으면 검색 기능을 사용하지도 못한다. 아무도 등록해주지 않을 거 같았지만, 위에서 마음먹은 것처럼 일단 진행했다. 그리고 두 가지 기능을 간단하게 정의했는데 다음과 같다.

  1. 수하물 등록 기능(자신이 들고 갔던 수하물 정보를 공항, 항공사별로 등록해서 공유하는 기능. 수하물 검색 기능 통계에 반영)
  2. 수하물 검색 기능(수하물 등록 기능을 통해 사용자들의 경험을 통계로 내고 통과 확률을 사용자들에게 제공)

스프링으로 백엔드 API부터 만들었다. 백엔드 같은 경우에는 원래 주된 업무이기 때문에 큰 문제가 없었다. 그리고 공항 정보나 항공사 정보는 파이썬으로 크롤링했다. 파이썬 크롤링 또한 많이 했었기 때문에 문제는 없었다. 안드로이드는 익숙하지 않아서 어떻게 구성할지 고민을 많이 했는데 결국에는 android-boilerplate, android-mvp-architecture 등을 참고해서 구성하고 개발했다. 그리고 예전에는 HTTP Client로 okhttp를 사용했었던 거 같은데 요즘에는 Retrofit, Volley 등을 사용하는 추세인 거 같았다. 나는 Retrofit을 적용했다. 처음에는 안드로이드 버전만 출시할 예정이었기 때문에 액티비티 2~3개만 빨리 만들고 개발자 계정을 등록했다. 아래에는 그때 당시 구성했던 액티비티의 모습이다.

첫 번째로 수하물 검색 화면이다. 단순하게 검색만 할 수 있게 만들었다. 두 번째로 수하물 검색 결과 화면이다. OO 공항에서 보조배터리가 휴대/위탁으로 반입할 수 있는지에 대한 검색 결과이다. 세 번째로 수하물 등록 화면이다. 사용자가 여행이나 출장 시에 들고 갔던 수하물 정보를 등록할 수 있는 화면이다. 지금은 bottom navigation view로 구성이 되어있지만, 그때 당시에는 drawerlayout로 구성되어 있었다.

그렇게 일단 출시하자는 생각으로 만든 두잇트립을 플레이스토어에 출시했다. 지금은 두잇트립이지만 그 때 당시에는 수하물 검색(Luggage Checker)였다.

이 글을 보는 사람들은 한 번씩 다운받아주면 감사하겠다!

[두잇트립 안드로이드 다운로드](https://goo.gl/xHpBnL" target="_blank)

[두잇트립 아이폰 다운로드](https://goo.gl/7Fz5AN" target="_blank)

다음 글에는 기존의 안드로이드 버전을 서비스하면서 겪은 생각과 개선점, 두잇트립 아이폰 버전 개발에 대한 내용을 작성할 예정이다.

cherrypick

체리픽이라는 단어 본연의 뜻은 안 좋은 의미이지만 저는 트렌디하고 많은 기술을 공부하고 내 거로 만들자는 뜻을 가지고 사용하고 있습니다.