이번에 개발한 것은 교통정보를 한대 모은 교통마스터이다. 수도권 버스와 전철, 그리고  부산의 전철시간표와 주요 광역시의 교통혼잡도 & 주유소 최저가 정보를 모았다. Oauth를 사용하였지만 이전 프로젝트와 달리 계정연동을 하지 않아도 일정 기능(경로검색이나 시간표)은 사용할 수 있게 했다. 하지만 음성인식의 한계상 계정 연동을 하여 미리 입력하는 것을 추천하였다.

 

일전에 이미 건강마스터 개발기 - sk Nugu 공모전 우수상를 개발한 관계로 개발하는 그래도 어려운 편은 아니었다. Oauth연동 같은 기본적인 코드는 이전 코드에서 가져온 것은 사실이다. 이 점은 개발기간을 단축하는데 큰 도움이 되었다. 

 

 - pre production

우선 이 아이디어를 생각하게 된 것은 대화를 하다가 나오게 되었다. 이전 아이디어도 그랬지만 교통정보의 개인화라는 아이디어가 나왔고 이를 해보게 되었다. 정말로 다행스러운 점은 일전에 이미 지하철지도를 개발해 본적이 있었다는 점이다. 

 

 

그래서 api의 기본적인 사용법은 알고 있었고, 개발할때 알았지만 api 키 같은것도 그대로 남겨져 있었다. 아무것도 모르고 개발을 시작하진 않았다. 물론 그때는 자바로 개발했지만 큰 틀에서 다른건 없었다.

 

프리 프로덕션을 하면서 생긴 문제는 역의 정보 데이터였다. 수도권과 부산 역 정보 데이터에는 여러 정보가 있는데 이건 공식 사이트에서 얻을 수 있었다. 이걸 db에 넣을까 하다가...그냥 json dictionary형태로 사용하기로 했다. 무식하지만, 나쁜 방법은 아닌듯 싶다. 

 

 - API 문제

가장 어려운 점은 공공 api만으로 개발한다는 점이었다. 공공 api의 경우 에러가 튀겨나오거나 필요한 데이터가 종종 빠져 있는 경우가 있다. 가령 경로검색만 해도 역의 노선을 제공하지 않거나, 실시간 도착의 경우 노선에 대한 정보가 특정 데이터를 분석하여  찾아야 하는 일이 있었다. 즉 일일히 데이터를 분석하여 표준화 해야 한다는 점이 있었다. 

 

가령 신분당선의 경우 열차의 특정 4자리가 1061같다던가. 1호선부터 9호선은 1001~1009이지만 다른 노선은 그렇지 않기 때문에 이 점을 유의해서 데이터를 분류해야 했다.

 

또 Api의 오류들이 있어서 사용하지 못한 api가 있었다. 거리api가 그 예시인데, gps 좌표를 보내면 걸리는 역과 시간 그리고 거리(요금)까지 나오지만 api의 경우 에러의 확률이 30%를 넘는 바람에 사용할 수 없었다. 여러번 요청해도 없는 노선으로 뜨는 바람에 실패. 

 

사용중인 api도 에러가 튀겨나오는 경우가 있었지만 다행이도 재귀로 이를 처리했다. 

 

이에 비해서 tmap api는 데이터가 이상있게 나오는 경우가 없어서 좋았다. 사용된 api는 이미지와 교통정보(혼잡도). 

 

 - API 문제

아무래도 백엔드 개발자인지라 뷰에는 좀 취약한 점이 있는데, 이번 프로젝트에서는 역 정보나 각종 정보를 입력해야 하는 부분이 있었다. 그래서 설정 페이지를 만드는게 꽤 긴시간을 소모했다. 특히 데이터 셋을 json으로 보내게 하는 부분은 외부 모듈을 사용해야 했는데, 사용법이 완전하게 나와있지 않아서 이 부분에서 시간이 걸렸다. 

 - 영상편집

혼자서 모든것을 해야 하니 영상도 혼자서 연출하고 시나리오를 만들었다. 

OrbitGirl Library(는 내가 만든 디자인 템플릿 폴더지만)를 사용했다. 

 

 

이건 3분짜리 ppt에 링크로 건 영상이다. 

 

 

2분짜리 영상. 이건 발표때 사용했다. 연습할때 계산을 해본 결과 최대 7분 50초 발표하고 남는 시간이 2분이었기 때문이다. 

 - 기획서

 

마지막 1주일 정도는 기획서를 만들었다. 총 20장 정도(표지나 그런거 합치면 25장)으로 왜 필요한지, 왜 만들었는지를 중점적으로 적고 어떤기능이 있는지를 마지막으로 넣었다. 대학교에서 PPT 제작 파트를 주로 해서 연출이나 시나리오는 어렵진 않았다. 그냥 일을 한다 정도. 이미 개발에서도 썼듯이 이걸 회사를 다니면서 해야 하는 관계로 늦은시간에 만들어야 하는게 문제긴 했다. 

 

기획서는 다른 디자인 양식을 적용하여 만들었다. 군청색 계열로. 

파일은 아래에 있다. 

 

TheUmbrellaForAutumnRain_final_Plan.pptx
7.73MB

 

 - 발표

 

16명의 1차 통과가 결정된 메일을 받고 나서 발표용 기획서를 만들어야 했다. 기존 ppt에서 뺄건 빼고 설명으로 압축할 부분은 압축하고... 이런 과정을 거쳐서 실제로는 16페이지인 발표 기획서가 만들어졌다. ppt제작 파트에서 놀았던지라 발표는 평균이하인데, 여러번 연습하기 그래도 나아졌다. 그리고 계속 해보 결과는 7분 30초 정도로 할 수 있다는 결과. 즉 기존 영상을 2분 정도의 만들어야 한다는 의미이기도 했다. 

 

TheUmbrellaForAutumnRain_final_Plan_speech_10min.pptx
7.76MB

 

일본에 살고 있었던 관계로 이번에도 휴가를 내고 발표를 하러 갔다. 

 

발표는 신한은행이 있는 빌딩에서 했다. 저번과 달리 모여서 발표를 하는게 아니고 심사위원들 6명 정도 앞에서 발표를 하는 형식이었다. 일전에는 기획부분 개발부분이 있었기 때문에 기획를 모두가 듣게 하기 위해서 한번에 모여서 하루 날 잡고 했지만 이번에는 개별 팀이 로테이션 하면서 발표를 하였다. 

 

때문에 오전에는 준비하다가 오후에 가서 발표만 하고 오면 되었다. 

 

발표는 10분 안에 꼭 마쳐야 하고(영상포함), 질답시간은 5분이라고 했지만 질답시간은 심사위원들이 하는 거라서 시간제한이 없다고 보면 되었다. 이번에는 1차합격팀 모두가 수상을 하는게 아니라서 다소 긴장을 하지 않을수 없었다. 특히 개인적인 입장(국비, 비행기 값)을 생각하면 2차에서 탈락하면 그대로 아무것도 아닌 것도 있는지라 

 

 - 최종 발표 & 시상식

 

최종 발표 결과는 10명안에 들었고 장려상을 수상하게 되었다. 주식회사단위로 5개 팀이 참가를 하는 것도 있고, 아무래도 개인이 하는 한계도 있다고 생각되었다. 

 

시상식으로 인해서 비행기표를 다시 예매해야 했는데, 도쿄->ICN행이 너무 비싼 관계로(20만이 넘었다. 편도만) 도쿄에서 대구로 간 다음에 대구에서 무궁화를 타고 서울로 올라오기로 했다. 당시 시간표는 다음과 같았다.

 

20:25 -> 23:10 도쿄 -> 대구
00:00 -> 3:30 대구에서 존버...    
4:00 -> 8:30 동대구 -> (중간에 잠) 서울
9:00-> 10:00 서울역 -> 집(에서 잠 보충)
13:30 -> 19:00 을지로 수상 및 부트캠프  

3:30(기상)

7:30 ->10:30

ICN -> 도쿄

잠이 보충될 거 같지 않은 강행군이다. 이렇게 자주와도 되는 이유는 마침 퇴사 직전이라 일본짐을 한국으로 같이 이동을 해야하는 일도 겹쳤다.

 

역시 회사들이 많았다. 자기 핵심 컨텐츠를 가진 회사엔 이기기는 힘든게 사실이다. 

 

시상식 이후 Boot camp와 더불어 제작한 사람들 끼리 식사도 하는 자리도 가졌다.

 

 - 일정

일정은 다음과 같이 개발을 하였다. 구글 드라이브의 스프레드 시트의 엑셀을 복사한거라 스타일이 이상할 수 있다. 

2019 내용 내용2
2 2 22 구체적인 기획의도 듣음 상용서버
개발서버
서버관리
27 기존 nodejs 로직 수정과 각종 사전 api 정리
28 로직과 링크 수정
3  

프로젝트 이름: 가을비 (The Umbrella for Autumn Rain)

2
3
4

api request 모듈 제작, chatbot oauth 사용 안하는 부분 코드 제작

챗봇 제작들어감, oauth& 부분 초반 완성
5

JSON 형태로 저장 연구, 카카오맵 좌표 얻기 해결, 나머지 api 정리

6 내 정보 등록 뷰단 제작
7

내 정보 등록 뷰단 로직 제작, 백단 받기, 챗봇 oauth status 로직 변경,

8
9
10
11
12 서버 테스트 시작, 버그수정 지하철 역 entity 완성(자동)

help, support, bus, 실시간 지하철, 혼잡도, 주유소가격(oauth), 등 단위 테스트

13

actionName 문제 해결과 수정, playkit에 action 입력, Oauth연동 테스트 후 확인

14
15 PPT 제작, 디자인 설계, 내용 정리
16
17
18 등록할 메타데이터 정리
19 oauth 테스트 시작
20 버그수정
21 버그수정 및 설계 추가기능 구현, 5대도시 구와 좌표입력
22

인천지하철 json 데이터 구현, 부산지하철 api,상하행선 기능 추가, 부산지하철 api, 인천지하철 api

석유제품 구분 추가
23 로직수정
24 PPT제작(60%)
25

Intent 데이터 추가 & 맵핑. Action 파트 종합 Mapping, gcloud deploy 테스트 성공

26 지하철 시간표를 제외한 전 과정 텍스트 입력 테스트 완료

* 교통상황 기능추가, 주유소 지도이메일 에러 부분 해결 찾기

27

지하철 시간표 테스트 & 로직 수정, 시간로직 필요. PPT 제작

28

이메일 지도 표시 문제 해결 (tmap으로 수정), 자잘한 버그, PPT에 많은 수정(90%), 서버연동 테스트 성공

29 서버 시간 동기화, 텍스트 랜덤화,

열차, 시간 조합 텍스트 조합 수정 , 종합정보 주유에서 교통정보로 수정, 출력 텍스트 자연스럽게

30

외선 내선 문제, 자잘한 버그, 이메일 글자오류, 실 서버 연동 확인

연동성공
31 호선일치 문제 해결,외선내선 문제 해결 퀄리티업 intent
4 1 인텐트를 더 간편하게(역 시간표 문제, 혼잡도 기능추가 음성 빼기
2 역 이름 이상하게 나오는 버그 수정(실시간 ), 지하철 루트 기능 추가
영상제작 완료
3 영상 1차 수정(이상한 자막 음악등) api 불안정으로 다른 api 변경
API 오류시 재귀로 부르는 형태 로 수정
4 퀄리티 체크 PPT 논조 수정 (교통에 맞게), 영상 음악 교체
5 퀄리티 체크 PPT수정
노선 상행 하행 설명 페이지 추가, 입력방법 추가
퀄리티 백엔드 체크
6
7
8
9 버그수정 & 그림수정
10
11 1차 합격 발표
12 개발환경 재구축
13 영상 2분으로 수정 PPT일부 수정 & 연습
14 내부 코드 수정(퀄리티)
역 루트시 환승역 라인 추가 안내 종합정보 안내에 날씨 추가
버그 수정(시간표 계정연동시 중복) 부산시간 버그수정
인텐트 퀄리티 업
15 인텐트 퀄리티 업
16 PPT논조 수정, 일부 오류 수정 PPT, 교통마스터 빌드업
17 비행기 버그수정
18 발표날

 

블로그 이미지

LunaStratos

Stratosphere Stream