스타트업 의 기록 — 3 앱 개발 및 런칭

이전글 [스타트업 하면서 적은 기록들 — 2 프로토타입]

Wix를 계속해서 사용할 시 단점들이 너무나 많았다. Wix 내에 있는 템플릿을 기반으로 사용해야 해서 자전거를 골라 보는 게 너무 번거로운 과정이었고 자전거를 고르고 난 후 원하는 자전거를 찜 하는 기능이 있어야 되는데 이 또한 Wix 내에서 구현할 수 없었다. 또한 즐라 사이트에 들어오는 유저들은 모바일이 웹 보다 2배는 더 많았다.

나는 앱 개발을 진행하기로 했다. 단순하게 자전거 사진과 정보를 모아 보여주는 것이어서 할만하다고 생각하였고 IT 분야에서 일을 하고 있는 형에게 물어보았을 때도 간단한 기능 정도는 1달이면 충분히 배워서 만들 수 있다고 하였다. 기존에 프로그래밍 관련 공부를 한 적이 있으나 그리 길게 하지 않은 나로서는 입문부터 시작을 해야 하는 상황이었다.

Java 입문서를 빌려 Hello World부터 다시 시작하였다. 대략적으로 보았을 때 입문서에 나와 있는 기능으로 원하는 서비스를 구현할 수 있을 듯 보였다. 구글링과 책을 살펴보며 개발하던 도중 데이터베이스의 필요성을 느꼈다. 자전거 정보를 저장해놓는 곳이 필요하며 데이터베이스에서 필요할 때마다 원하는 정보를 꺼내다 쓰도록 만들어야 했다. 안드로이드에서는 다행히도 SQLite라는 자체 데이터베이스를 제공해주고 있었다.

입문서를 전반적으로 살펴본 후 개발의 전반적인 진행사항을 기획하였다. 개발에 대해 이제 막 시작하는 것이지만 체계적으로 필요한 것들을 정리해놓고 하나씩 해결해나간다면 일반적으로 A-Z까지 배운 후 개발을 하는 것보다 빠르다고 생각했기 때문이다. 개발 진행사항은 앱 내에 들어가는 페이지 별로 기능을 하나씩 구현하는 것으로 기획하였으며 이 때에 필요한 기능이 있으면 해당 기능을 책과 구글링을 통해 찾아보는 식으로 진행하였다.

개발을 정리하고 난 후 데이터베이스를 짜기 위해 정보를 둘러보았다. 자전거 정보를 데이터베이스에 넣어야 하는데 앱에서 어느 정도 노출해야 적당한 지 알아보기 위해 다른 앱들을 참고하였다. 다나와, 직방 등 주로 정보를 보여주는 앱을 참고하였을 때 20가지 정도의 상세정보를 몇 개의 카테고리로 나눠서 보여주고 있었다. 즐라도 이와 비슷하게 제품 정보를 중요도에 맞춰 추려냈고 20개 내외의 정보만 데이터베이스에 저장하는 것으로 정하였다.

또 한가지 고려할 점은 색상이었다. 제품 별로 색상이 여러 가지가 있는데 자전거 목록에서 색깔을 나눠서 보여줘야 할 지, 자전거 상세 페이지에서 다른 탭을 만들어 표시를 할 지, 아니면 상세 페이지에서 색상 별로 사진만 추가할 지 고민하였다. 첫 번째와 두 번째는 목록에 같은 자전거가 색상만 다르게 노출되어 유저에게 혼동을 줄 수가 있었고 세 번째는 색상 별 사진을 모두 확보하지 못할 가능성이 있었다. 세 번째는 색상 당 10개의 사진을 찍으면 색상이 4개일 시 사진이 40개가 되어 피로감을 느낄 수 있었다. 절충안은 상세 페이지 내에서 색상을 보여주는 방식으로 첫 번째 색상만 10개 이미지를 보여주고 다음 색상은 5개씩 이미지를 보여주는 방식이었다.

사진을 어떻게 보여줄 지 정하며 데이터베이스까지 같이 고려하였다. 첫 번째와 두 번째 방식대로 진행하면 데이터베이스에 같은 자전거 정보가 색상만 다르게 들어가야 하는 상황이었다. 그러면 자전거 정보를 불러올 때 자전거명이 중복되어 이름으로 구분할 수 없는 단점이 있었다. 세 번째 방식대로 상세 페이지 내에서 색상을 나눠 보여준다면 데이터베이스에는 제품 내에 색상을 여러 개 표시하면 되므로 자전거명이 중복되는 경우가 없었다. 이렇게 데이터를 어떻게 보여줄 지를 기획하며 데이터베이스를 어떻게 만들어야 하는지 까지 같이 고려할 수 있다는 점이 개발을 알 때의 장점이었다.

개발을 진행하다 보니 원래 계획했던 1달에 비해 2배는 더 걸릴 것으로 보였다. 이는 엄청나게 느린 실행력이었다. 스타트업의 핵심 요소는 실행력인데 이렇게 늦어진다면 경쟁사가 들어왔을 때 바로 따라 잡히는 상황이었다. 내가 아무리 오랫동안 시간을 들여 하더라도 개발을 잘 하는 사람은 1주일이면 만들 수 있을 것이기 때문이었다.

본 서비스의 핵심은 최대한 빠르게 서비스를 만들어서 유저를 먼저 모으는 것인데 개발은 최소한으로 진행하여 오픈을 한 후 자전거 정보를 확보하고 이를 토대로 앞으로 나아가야 했다. 속도가 핵심이었고 필요한 부분이었다. 만약 내가 개발 능력을 잘 갖췄고 즐라의 핵심이 개발이었다면 이쪽에 많은 리소스를 투자해야겠지만 즐라의 핵심은 개발이 아니었고 실행력을 바탕으로 유저를 모으는 것이었다.

일주일에 걸쳐 데이터베이스를 완성하였다. 이후 자전거 검색을 개발할 순서였는데 화면에 기능을 표현하는 액티비티와 디자인을 나타내는 xml을 고려할 필요가 있었고 화면마다 자전거를 검색할 변수를 넘기는 것을 처리해야 했는데 모든 것을 한꺼번에 생각하니 머리가 아팠다. 그래서 구조도를 만들었다. 이를 참고하여 진행할 부분을 단계별로 나눠놓았고, 그 다음 한 단계씩 살펴보니 모두 진행할 수 있는 부분이었다.

개발을 진행하며 계획보다 늦어지는 이유를 생각해보았다. 원인은 중요하지 않은 부분에 리소스를 많이 투입하는 것이었다. 검색 기능에 자전거 연식 버튼을 넣는데 자전거가 2015년식 밖에 없어서 항상 선택되어야 했던 부분이다. 그렇기에 디자인만 표현해놓고 실제 검색에 적용되는 것은 차후에 해도 되는 상황인데 이를 굳이 개발하려고 시간을 투입하였고 막히는 부분까지 생겨 리소스가 많이 들어가게 되었다. 가격 검색 시에도 일정 구간 내에서 범위를 설정하는 seekBar 기능을 추가하기 위해 시간을 투입하였다. 그러나 이를 개발하기 위해서는 역시나 시간이 오래 걸리는 작업이었고 ‘최소한의 기능으로 서비스를 내놓는다’에 들어맞지 않은 부분이었다. 가격 검색은 가격 구간을 나눠 개발하기 쉬운 버튼 식으로 진행을 했어도 충분히 괜찮은 것이었다.

또한 혼자서 진행하는 상황이어서 개발 중 막히면 답을 구할 곳이 없어 계속 시간을 지체하였는데 방식을 바꿔 개발 중 막히는 부분이 생기면 국내 개발 커뮤니티인 안드로이드펍과 외국 개발 커뮤니티인 Stack Overflow에 질문을 올리는 식으로 하였다. 이는 훨씬 효과적이었다. 어떤 키워드로 검색해야 하는지 접근 방법조차 모를 때 원하는 기능을 구현하고 싶다고 질문을 올리면 이에 대한 답변이 빠르게 달렸고 개발 기간을 단축할 수 있는 좋은 방법이었다.

기능 개발을 거의 완료한 후 디자인을 어떻게 만들지 고민을 하였는데 앱스토어의 UI가 비슷한 형식으로 되어 있어서 이를 따라 했다. 앱스토어 스크린샷을 찍어서 포토샵으로 앱스토어의 색상을 확인하였는데 RGB색상으로 #ffffff 등으로 표현되는 것임을 알았고 버튼, 배경 등의 색상을 추출하였다. 앱 내에 들어가는 메인 색상은 파란색(#007aff)로 하였고 상단 바 색상은 진한 회색(#f8f8f8), 배경은 흰색(#ffffff)으로 표현하였다. 내가 디자인적 감각이 좋지 않으므로 전반적인 디자인 역시 앱스토어와 유사하게 진행하였다. 벤치마킹이라 생각하였고 리소스가 없을 때 가장 효과적인 방법이라 생각하였다.

개발이 완성되었을 즈음 생각지도 못한 이슈로 개발이 늦어졌다. 개발은 내가 가지고 있던 갤럭시 노트2를 바탕으로 진행하였는데 안드로이드 기기 별로 해상도가 달라 기기 별로 해상도를 맞춰줘야 한다는 것이었다. 이렇게 하기 위해서는 2가지 방식이 있었는데 하나는 디자인을 나타내는 xml을 비율 값으로 설정하는 것이었다. 화면 크기를 100으로 보았을 때 버튼 크기를 10으로 나타내고, 상단 이미지를 20으로 하는 등 비율로 설정을 하는 방법이었다. 그러나 이 방식의 문제점은 글씨 크기를 조정할 수 없어서 스마트폰 해상도에 따라 글자 크기가 크게 보이기도, 너무 작게 보이기도 했다. 또 다른 한 가지 방법은 xml을 해상도에 맞춰 여러 개 만드는 것이었다. 두 번째 방법이 개발 시 가장 일반적인 방법이었고 나 역시도 이렇게 진행하였다.

해상도 대응을 마지막으로 개발을 끝냈고 드디어 플레이스토어에 앱을 올릴 수 있게 되었다. 그러나 초기 버전에는 앱 사용성을 측정하는 구글 애널리틱스가 붙어 있지 않아 단순히 다운로드 수만 측정을 할 수 있었고 어떤 사용성도 확인할 수 없었다. 기존 Wix로 진행할 때는 손쉽게 URL만 입력하면 구글 애널리틱스를 붙일 수 있었으나 앱에서는 자체적으로 측정 코드를 넣어야 했다.

초기 버전을 배포한 다음 날 바로 구글 애널리틱스를 붙이는 작업을 진행하였는데 이 역시도 코드에서 계속 오류가 나 며칠을 붙잡고 있었다. 일주일이 다 되어 가던 날 마무리 짓기로 마음 먹고 새벽까지 붙잡고 씨름을 하였다. Stack Overflow에 질문을 하고 실시간으로 답변을 받아도 오류가 나는 것을 해결해주지 못했다. 그러던 중 새벽 6시가 되어 정말 안 되는 것인가 하는 상황에 마지막으로 한 가지만 수정을 더 해보고 자려고 하였는데 성공을 하였다. 되는구나. 개발은 하면 되는구나 라고 느낀 시점이었다. 이제 드디어 측정 가능한 초기 버전을 내놓을 수 있게 되었다.