뒤로
조승용
조승용 ·

성균관대학교 인사캠 30%가 사용하는 버스 앱 제작기

안녕하세요! 성균관대학교 소프트웨어학과에 재학중인 조승용입니다.

2023년을 회고하며, 저의 대학교 첫 일년을 함께한 '스꾸버스' 이야기를 여러분에게 공유하고자 합니다.

스꾸버스 - 성균관대학교 버스

인사캠 셔틀버스, 인자셔틀 (캠퍼스 왕복셔틀), 종로07 등 성균관대학교 버스와 관련된 모든 정보를 제공하는 앱입니다. 혼자서 기획, 디자인, 개발 모든 과정을 진행했습니다. 지금까지 유저 약 3000명을 달성하였고, 인사캠 재학생의 약 30%가 사용하고 있습니다. 앱스토어 네비게이션 부분 앱스토어 33위에 올라가기도 했습니다

image.png

스꾸버스의 시작

코딩 강의를 듣기보다는, 일단 무작정 앱을 하나 만들어보고 싶었습니다. 첫 앱이다보니 너무 넓은 사용자를 잡기보다는, 가까운 사람들이 많이 있는 '성균관대학교'로 범위를 설정하고, 학교에서 느끼던 불편함을 해결하는 앱을 만들어보자 했습니다. 어떤 점이 불편한지 찾던중, 학교 공식 앱에서 제공해주는 버스 정보가 무척이나 확인하기 어렵다는 점을 발견했습니다.

1) 인사캠 셔틀버스 위치는 매번 수동으로 새로고침을 해줘야 하며, 정류장 외 기타 정보는 확인할 수 없었습니다.

2) 캠퍼스 셔틀버스 시간표는 매번 챗봇에게 물어봐야 하며, 금요일 추가 버스 정보는 분리되어 있고, 심지어 몇초가 지나면 채팅이 자동으로 사라졌습니다 (..!)

카카오버스처럼 편리한 버스 앱을 만들면 분명히 수요가 있을 것이라고 생각해서 프로젝트를 시작했습니다.

버스사진모음1.png

비슷한 서비스가 있을까?

2019년까지 운영되었던 '멋쟁이사자처럼'에서 만든 '스쿨버스(skkoolbus)' 앱이 있었으나, 무슨 이유에선지 2020년 이후부터는 운영되지 않고 있었습니다. 이 외에도 자잘한 서비스들이 있었으나 모두 현재에는 제대로 사용하기 힘든 상태였습니다.

MVP를 만들자!

지금 다시 보면 정말 끔찍한 디자인이지만, 일단 빠르게 0.0.1 버전을 만들었습니다. 배포도 앱스토어에만 올린 뒤, 에브리타임에 게시글을 올려 반응을 확인해봤습니다. 게시물에 좋아요가 39개, 스크랩이 44개였는데 실제 다운로드는 약 100회 정도 이루어진 걸 보고 충분히 경쟁력이 있다고 판단했습니다.

Picture2 (1).png

기획

기획 단계에서는 크게 두가지 문제에 부딪혔습니다.

먼저, 버스 관련 API를 학교에서 별도로 제공해주지 않았습니다. 학교 앱이나 조사했던 이전 사례를 보면 버스 관련 API가 존재하는건 확실했기 때문에 직접 찾아보기로 했습니다. 결과적으로 학교 앱을 하나씩 뜯어보며 네트워크 패킷에서 발견할 수 있었습니다. 또한 단순한 도착정보뿐만 아니라 차 번호와 도착시간까지 제공하고 있었습니다.

이렇게 API를 발견해서 아무 문제가 없을 줄 알았으나..

두번째로 API의 정확도 문제에 부딪혔습니다. 누락된 버스 정보도 있었고, 버스 도착정보가 업데이트되는 시간도 정확하지 않았습니다. 추후에 알게 된 사실이지만, 해당 정보는 캐시비 카드단말기 정보를 가져오는 것이라 정확도도 부족하고, 장비 교체 전에는 정확도를 개선하는 것이 불가능하다고 합니다.

해당 GPS 데이터는 GPS를 실시간 반영하기 위한 전문 장비가 아니라 셔틀버스 내부에 있는

캐시비 카드단말기의 GPS 데이터를 가져와서 사용한다고 들었습니다. 위치 정확성 개선 문제 때문에 단말기 유지보수업체 담당자들과 얘기하였을 때에는 별도의 장치 설치하지 않고서는 개선이 어렵다고 확인하여, 올여름부터 유사기능을 제공하는 업체와 컨택하여 셔틀버스 위치 안내 개선을 검토중에 있습니다.

원래 도착시간을 이용하여 역별 도착 예정시간을 보여줄 예정이었으나, 부정확한 정보를 제공하면 오히려 혼란스러울 것 같다고 생각했습니다. 따라서 역별로는 'n개 정류장 남음' 표시를, 이미 출발한 역에는 'n분 n초 전 출발함'이라는 정확한 데이터를 보여주기로 결정했습니다. 약간의 API 데이터 정제 과정도 추가하였습니다.

디자인

또 한가지 중요하게 생각했던 점은 디자인이었는데요, 기능이 많지 않은 버스 앱에서는 디자인도 굉장히 중요한 차별점이라고 생각했습니다. 혼자서 기획, 디자인, 개발까지 모든 과정을 진행했기 때문에 피그마를 사용하지는 않았고, 개발하면서 그때그때 끌리는 방향으로 진행했습니다.

개발

KakaoTalk_Snapshot_20231227_112622.png

개발은 플러터를 이용해서 진행했습니다. 앱 개발을 처음해보는 것임에도 선언형 UI는 굉장히 직관적인 방식이었습니다. Hot reload 기능과, 하나의 소스로 아이폰과 안드로이드 앱을 동시에 제작할 수 있다는 것은 굉장히 짜릿한 경험이었습니다. 특히 혼자서 모든걸 진행하다 보니, 초기 스타트업에서 플러터를 선호하는 이유를 알것 같기도 했습니다.

버스 앱과 실시간 데이터라는 특성상, 앱을 만드는 것보다는 오류를 찾아내고 수정하는 과정에서 많은 시간을 투자했던 기억이 납니다. 특히 저는 자연과학캠퍼스에 있기 때문에 인사캠 셔틀버스 관련 정보를 자세히 알지는 못해 인사캠 친구들에게 많이 물어보고, 또 실제로 방문해서 셔틀을 타보며 테스트하곤 했습니다.

중간중간 막히는 부분이 있으면 @보성 이가 도와줬는데.. 진짜 프로그래밍 갓입니다.. 외주 필요하면 반드시 저기로 가세요

첫 정식 출시!

9월 5일, 첫 정식 출시를 진행했습니다. 어쩌면 개발을 하는 것보다 홍보가 더 중요하다는 걸 알고 있었기 때문에, 제가 시도할 수 있는 모든 방법을 시도했습니다.

먼저 GAS앱과 이를 카피한 @Skrr 앱에서 활용한 인스타그램 온보딩 전략을 전에 디스콰이엇에서 읽은 적이 있었고, 직접 시도해보기로 했습니다. 시간적으로나, 인스타그램 정책상으로나 모든 사람을 팔로우할 수는 없었기 때문에 선택과 집중을 하기로 했습니다. 먼저 모든 인사캠 학생회의 인스타그램 계정을 찾은뒤, 가장 최근 두 게시물에 좋아요를 누르거나 댓글을 다는 등 '상호작용'을 한 사용자를 모두 팔로우했습니다. 그리고 9월 4일 점심시간에 모든 팔로우 요청을 한번에 수락하며 나름의 화제를 만들어보려고 했습니다.

이외에 직접 오프라인으로 인사캠에 방문하여 포스터도 붙이고, 에브리타임에도 게시물을 올려 홍보했습니다.

Screenshot 2023-12-27 at 11.39.35 AM.png

결과적으로는 기대했던것보다 훨씬 많은 사용자 유입을 경험할 수 있었습니다.

그 외에 사용자를 유입시키기 위해 ...

에스카라(학교축제) 버스 정보 제공

everytime-web-1694484839097.jpg

이번 년도 축제는 자과캠에서 진행되었습니다. 인사캠 학생들을 위해 축제 전날과 당일 캠퍼스간 셔틀이 대량 증차되고, 탑승위치가 변경됩니다. 관련 정보는 총학생회 인스타그램에만 올라와 있었는데, 그래서 어디서 언제 타는게 제일 빠른지 한눈에 직관적으로 확인하기 어려웠습니다. 스꾸버스 앱 내에서 해당 정보를 제공하면 학생들을 유입시킬 수 있는 좋은 기회라고 생각했습니다. 총학생회 공지 게시물이 올라온 날이 축제까지 6~7일 정도 남은 시점이여서 소프트 MT에 가서도 코딩하며(..) 결국 시간 내에 완성하고 업데이트를 올렸던 기억이 납니다.

종로07 정보 추가

everytime-1701057830606.jpg

이번년도 9월 1일부터 셔틀버스에 더해 종로07 버스도 성균관대학교 내부로 진입하기 시작했습니다. 셔틀버스는 스꾸버스 앱에서, 종로07은 카카오맵이나 네이버지도 앱을 이용해서 확인하여 한다면 상당히 번거로운 일일 것 같았습니다. 그래서 종로07 정보까지 함께 확인할 수 있도록 관련정보를 추가했습니다. 셔틀버스와 종로07 버스 모두 혜화역1번출구에서 탑승할 수 있는데, 메인화면서 두가지 버스를 비교할 수 있는 정류장 탭도 만들었습니다.

중국어, 영어 지원

성균관대학교는 학부생의 14%가 유학생에 해당할 정도로 외국인 학생의 비율이 높습니다. 꼭 사용자 유입 측면이 아니더라도, 다국어 지원은 외국인 유학생을 위해서 꼭 필요한 작업이라고 생각했습니다. 중국어는 번역 과정에서 성균관대학교 한중학회의 도움을 받았고, 감사하게도 위챗 방에도 공유해주셔서 총 700명이 넘는 학우분께 홍보할 수 있는 기회가 되었습니다.

KakaoTalk_Photo_2023-12-27-12-15-13.jpegimage.png

또한 성균관대학교 국제처 공식 산하 단체인 '하이클럽'과 협력하여 인스타그램 게시물에 번역 사실을 알리며, 동시에 자연스럽게 스꾸버스를 홍보할 수 있었습니다.

에브라타임, 그리고 의도치 않은 바이럴(?)

홍보 과정에서 에브리타임을 정말 적극적으로 사용했습니다.

돈도 안들고, 좋아요 10개만 만들면 Hot 게시판으로 이동해서 많은 학우들이 볼 수 있다는 점에서 최고의 무료 홍보수단이었습니다. 단순히 업데이트 소식뿐만 아니라 버스 관련 공지사항을 전달하면서 자연스럽게 홍보하려고 노력했습니다.

image.pngimage.png

그리고 너무나 감사하게도 포스터를 보거나 정보글에 스꾸버스 이야기를 올려주시는 분이 간간히 계셨습니다.

image.pngimage.pngimage.png

2024학년도 총학생회

이번년도에 소프트웨어학과 학생회에서 활동했던 경험을 바탕으로, 2024학년 총학생회 예비 선본에 합류했습니다. 앱과 관련된 논의가 추후의 인수인계 문제로 아쉽게 불발되어 결과적으로는 소프트웨어학과 학생회로 돌아왔지만, 여전히 다양하게 총학생회와 협업을 위해 노력할 예정입니다.

앞으로의 스꾸버스?

🤔 ios 앱을 플러터에서 Swift로 전환하고 있어요. Live activity, 위젯 등 네이티브 기능들을 준비하고 있습니다

🤔 성균관대학교 지도 / 통합앱으로 확장시키려고 기획하고 있어요

🤔 1년 뒤 군문제가 있어.. 팀빌딩에 대해 고민하고 있어요

다음에는 이런 글을 써볼게요

💭 스꾸버스 ios앱을 플러터에서 Swift로 전환하는 이유

💭 성균관대학교 도서관 출입 앱 '스꾸패스' 제작기

21

댓글

로그인 후 댓글을 남길 수 있습니다.

Kanghyeon Lee
Kanghyeon Lee

대단하시네요 :) 같은 성대 재학생으로, 응원합니다!

주자훈
주자훈

🔥

이정민
이정민

우와우, 작년이었으면 저도 사용했겠네요 ㅎㅎ

Chaerong
Chaerong

기획부터 개발, 디자인까지 다 혼자 하시기 쉽지 않으셨을텐데 넘 존경스러워용 ㅠㅠ