brunch

You can make anything
by writing

C.S.Lewis

by Konnell Kelly Oct 15. 2021

직접 도전한 스타트업 웹 개발

스타트업 운영, 개발 도전기 - 장고(Django)를 활용한 웹 개발

나는 프로그래밍을 전공하지는 않았지만

스타트업을 하면서 프로그래밍의 필요성을 깨닫기 시작하여 개발 공부를 시작하였다.

아무것도 모르는 베이스에서부터 하나의 웹을 만들기까지 많은 시간이 걸렸다.


웹을 개발하다 보니 다시 베이스 단계로 돌아간 나에게

"너 개발 공부를 왜 하려고 하니?"라고 자문을 했을 때, 해주고 싶은 얘기가 너무나도 많다.


이처럼 이 글을 읽는 개발에 문외한이거나 개발을 조금 아는 독자 또한 



정말 스타트업을 하는데 개발이 필요할까?
스타트업 개발은 어떻게 할까?? 
이 친구는 어떤 식으로 개발을 하고 있는가???


라는 의문점을 가지고 있을 거라고 생각한다.







그래서 스타트업에서 어떤 식으로 개발을 진행했는지

그리고 나처럼 스타트업과 개발에 관심이 많은 입문자에게 도움이 될 수 있도록

그 과정에 대해 서술해보려 한다.


나는 위빙이라는 환경보호를 위한 유통기한 재고상품 판매 스타트업을 하면서 

개발의 필요성을 느끼게 되었고 시작하게 되었다.

스타트업 특성상 서비스 개발을 함에 있어 IT는 빠질 수 없는 영역이기 때문에 개발이 어느 정도 고도화되면 필수적인 요소이다. 그런데 팀 내에서 개발에 대한 지식을 가진 이가 없다면 이 문제를 헤쳐나가기가 굉장히 어렵기 때문이다. 하물며 언제 개발을 해야 할지, 어떻게 설계를 해야 할지, 외주 비용을 어느 정도로 책정을 해야 하는지, 어느 기능이 필요한지 등 수많은 물음표가 따라붙을 것이기 때문이다. 그래서 나는 프로그래밍 공부를 하면서 이 포지션을 맡아보고 싶은 욕심이 있었다.


막상 발을 들여보니 개발의 풀스텍(프론트엔드 + 백엔드), 서버 관리, 배포 등 모르는 부분은 너무나도 많았고, 프레임워크조차 다룰 줄 아는 게 '멋쟁이사자처럼'에서 배운 장고밖에 없었으며 언어 또한 c, python이 전부였던지라 갑갑하기만 했다.



그러던 중 '멋쟁이사자처럼' 친구들의 도움으로 5명이서 서비스를 개발해보기 시작했다.


이미 서비스가 기획 단계를 넘어서긴 했지만 

경쟁력 강화와 서비스를 개발에 옮기기 위해 전체적인 기획부터 다시 다져나가기 시작했다.









# 기획, 프로토타입 디자인


개발뿐만 아니라 다른 작업들도 초석이 단단해야 탑을 쌓을 때 흔들리지 않고 견고 해지는 것처럼

기획, 디자인에 많은 시간을 쏟았다.



팀원 4명에게 너무 고마운 게 

내가 팀장으로서 가진 의지만큼 너무나 잘 따라와 줬고, 책임감 있게 참여를 해서 시너지 효과가 극대화될 수 있었다.


그리고 무엇보다도 나는 협업을 할 때 착한 척을 한다거나 만장일치의 의견을 좋아하지 않는다.

비판적이고 냉정한 사고로써 통찰하고, 바라보는 시야로 나아가야 한다고 생각하는 편인데,

나의 위빙팀이 서로 친하기도 했지만 서로 위와 같은 태도로 회의에 임해주었고,

덕분에 좋은 방향으로 계속 나아갈 수 있었다.







기획에서는 우리가 개발을 할 수 있는 수준 내에서

이 서비스의 차별점을 극대화할 수 있는 방법은 무엇인지에 대해 고민하고,

좀 더 차별화할 수 있는 기능을 추가할 수는 없을까에 대해 고민하였다.



그래서 개선된 차별점이 지도 API를 추가하여 

소비자가 훨씬 더 편하게 픽업을 할 수 있도록 하는 것과

환경 계좌를 활용하여 위빙 굿즈를 구매할 수 있는 페이지를 개설하여

소비자가 위빙을 이용했을 때 환경에 기여한다는 것을 피부로 와 닿게 할 수 있도록 계획하였다.

(환경 계좌 = 상품을 구입함으로써 환경보호에 기여된 금액을 포인트로 환산하고 적립할 수 있는 계좌)

그 외 여러 가지 기능을 기획하였다.


이처럼 페이지별로 어떤 기능이 필요한지 그리고

그 기능은 어느 부분에 배치되는 게 소비자에게 가장 익숙하고 친숙할지에 대해

고민을 하여 디자인을 하고, 기존 웹사이트를 벤치마킹하였다.


가장 좋은 벤치마킹은 동종업계의 경쟁기업으로부터 아이디어나 배치를 얻는 것이다.

소비자에게 친숙하고 사용하기가 편하기 때문이다.


위빙은 "toogoodtogo(투굿투고)", "요기요", "배달의 민족", "라스트오더"라는 기업의 웹사이트를 참고하였다.



이에 대한 프로토타입 개발 과정은 이전 게시글에서 상세히 설명했으니 참고하도록 하자.








# 개발, 깃허브 협업



이제 이전에 다졌던 토대를 바탕으로 본격적으로 개발을 하기 시작하였다.

개발에서 협업하는 데 있어 Git은 필수적이다.

하지만 git이라는 것이 다소 이해하기 어렵다 보니 이를 적응하는 것부터 꽤 고생을 하였다.


사실 이전에 깃을 이미 배우기는 했으나

나에겐 다소 높은 장벽이라 제대로 이해를 못했었다.


다행히 팀 내에 인턴을 하고 있으며, 개발에 출중한 실력을 가진 팀원 덕분에 확실히 이해할 수 있었다.

그리고 회사에서 사용하는 룰을 적용하여 협업을 했기에 훨씬 체계적으로 개발을 진행할 수 있었다.







Git을 이용한 개발과정을 자세히 알고 싶다면 깃허브 url을 통해 살펴보면 훨씬 도움이 되니 참고 바란다.





팀원이 5명이기 때문에 파트 분배를 하여 작업을 진행하였다.

프런트와 백 포지션을 나누었고,

나는 프런트를 맡게 되었다.


장고(Django)라는 프레임워크를 사용하였기에 엄밀히 말하면

완벽하게 프런트와 백으로 나눈 것은 아니다.


원래 목표는 Vue.js(뷰)와 Drf(Django rest framework)로 나뉘서 진행을 하려고 하였으나

해야 할 양도 그렇고, 공부를 하기에는 시간이 촉박하여

오로지 장고로만 진행하였다.


그래서 html, css, js를 공부하면서 프로젝트를 진행하였다. 제대로 된 프로젝트를 처음 하다 보니 많이 헤맸다. 그리고 프런트를 맡았던 팀원이 백엔드로 보강을 가면서 어쩌다 보니 혼자 프런트를 맡게 되었다.


처음에는 랜딩 페이지를 만드는 데에만 몇 주가 걸렸다.

진척이 정말 느렸지만 한 페이지를 만든 이후에는 어느 정도 이해를 하기 시작했고,

빠르게 다른 페이지도 만들어 나가기 시작했다.







프로토타입 제작에 많은 시간을 쏟고 탄탄하게 가져갔다 보니

개발을 할 때 특히, 프런트 개발에서 편하게 진행할 수 있었다.


그런데 개발을 하는 과정에서

백엔드 모듈을 추가하고 페이지를 연결하다 보니

프로토타입대로 구현이 되지 않기도 하였다.

그래서 유동적으로 그에 맞춰 개발을 진행하였다.



예를 들어, 장바구니 모듈을 추가하다 보니 예상치 못하게 UI적으로 불필요한 페이지가 하나 추가되었다.

상품페이지 > 상품 상세페이지 > 장바구니 페이지 > 결제 페이지 > 결제 완료 페이지

로 넘어가다 보니

구매에 불필요한 과정이 많아졌고, 귀찮아질 수 있다고 생각하였다.

그래서 모듈을 최대한 수정하여 구매를 하는 과정에서 상품 상세페이지를 생략하고 구매할 수 있도록 수정하였다.




( 왼쪽 : 메인페이지의 상품소개카드 , 오른쪽 : 마이페이지에서 구매목록 리스트내역 )



그리고 메인 페이지에서 카드 디자인이 예쁘지 않게 구현이 되는 등 장애물이 많았다.





결제 모듈을 적용하는 과정에서도 아임포트(iamport)를 사용하였는데,

결제 취소를 했는데도 결제내역에 추가가 되는 등의 디자인 외 기능적으로도 맞지 않는 과정들이 많았다.

그리고 디자인적으로도 예쁘지 않다던가 하는 아쉬움이 있었다.














그 외 페이지를 만들면서 수정되기 전 과정들이다.

최대한 기능을 완성하여 옮겨야 할 정보들이 제대로 페이지별로 전달되었는지 확인하고

그에 따라 프런트를 수정하며 계속해서 작업을 진행하였다.


실제로 현업에서도 백엔드를 모두 작업해두고, 배포를 한 뒤

프런트 작업을 하며 deploy(디플로이)에 이상이 없는지 확인을 한다고 한다.






# AWS를 이용한 배포 및 도메인 연결



개발을 완성한 뒤에는 AWS를 이용하여 EC2 인스턴스를 생성하고 이를 이용해 배포를 하였다.

배포하는 과정에서도 역시 에러가 있었다.



db에 넣어둔 가게와 상품의 사진들이 함께 올라가지 않아서 애를 먹었다.

static_root와 media_root 설정 부분에서

제대로 root가 설정되지 않아 계속해서 사진이 딸려 올라가지 않았다.


그리고 가비X에서 구매한 도메인을 elastic beanstalk url에 연결시켜 라우팅해주는 작업이 있는데

그 과정에서도 처음 하다 보니 시간이 다소 걸렸다.






AWS 배포 과정과 도메인 연결은 블로그를 참고하는 것도 나쁘지 않지만  aws홈페이지를 참고하는 것이 정확하다이 부분은 정말 강력하게 얘기하고 싶다. 아래의 페이지를 최대한 참고하여 따라 하길 권장한다.



많은 블로그들을 참고하면 여러 명령어를 쳐서 배포를 하게 되어있는데 대부분 명령어 중


"sudo"


라는 명령어를 타이핑하도록 한다.


이 명령어는 서버 관리자의 권한을 전부 다 무시하고 접속하게끔 하는 명령어라

작동이 될 수는 있으나 보안에 취약해지기 때문에 

가능하면 저 명령어를 이용해 접속하지 않는 방법이 현명하다.







그렇게 약 반년 간의 대장정을 달려 서비스 론칭을 하였고, 

'멋쟁이사자처럼 해커톤'대회에 무사히 출품을 하였다.


그리고 70여 개의 출전 팀 중에 2등의 영광을 차지해 금상을 수상할 수 있었다.





나는 단순히 이 프로젝트가 해커톤 제출용이 아니라 실제로 시장에 서비스가 진입되고 소비자가 사용하면서 트래픽이 발생되기를 원했다. 그래서 배포한 직후 주변 지인 및 위빙 제휴업체에게 적극적인 마케팅을 하였고, 지인 내로 한정이 되긴 하지만 결제가 이루어졌다. 





결제 PG사와의 연결문제로 환불조치 후 결제된 금액은 개인계좌로 받기는 했다. 카카오페이로만 연동이 가능한 상황이다.(PG사에서 위빙과 같은 중개 플랫폼은 별로 달가워하지 않아 계약 승인에 있어서도 어려움을 겪었다.) 그리고 UI적으로 소비자가 사용하기 불편하다는 피드백을 많이 받았고, 아직 시장에 내놓기에는 퀄리티면서 부족한 점이 많아 활성화되지 못했다. 특히, 서비스 특성상 웹•앱이 연동되어야 하는데 내가 이용한 장고로는 앱과 연동이 힘들다는 점에서 웹을 2-3주 정도 지인 및 제휴업체에 홍보하고 사용을 부탁하였고, 그 이후로는 묻히게 되었다.


처음에는 이 사실을 받아들이기 굉장히 힘들었다. 몇 개월간 밤을 새우고, 고생하면서 만들어놓았는데 시장에 내놓은 지 몇 주가 되지도 않은 채 버려져야 한다는 사실을 받아들이는 게 쉽지 않았다. 우울증도 한동안 와서 내가 그동안 무엇을 위해 해왔는지에 대한 동기부여도 잃어버리고, 말 그대로 흥미를 잃어버렸다. 그렇지만 생각을 다시 고쳐먹기로 다짐했다.






# 피드백



마음을 다잡고 이후 프로젝트에서는 개선된 점을 반영하고, 반복된 실수를 하지 않기 위해 이번 '위빙' 스타트업에서는 어떤 점이 아쉬웠는지 그리고 사용자는 어떤 부분이 불편했는지에 대해서 피드백을 받기 시작했다.







스타트업에 관심이 있는 사람들, 객관적 입장에서 피드백을 줄 수 있는 일반 사용자들, 스타트업 대표, UI•UX 전문가, 외국인 친구들 너나 할 것 없이 많은 피드백을 주셨다. 특히, 내가 부족했던 디자인, 브랜딩, 사업 방향성, 새로운 아이디어들을 제시해주면서 더욱 넓은 시야에서 바라볼 수 있었고 놓친 부분들을 다시 되짚을 수 있었다. 놀라왔던 점은 피드백을 받으면서 설득을 당하는 일이 정말 많았다. 나는 이 서비스를 1년이 다되어가도록 준비를 했기 때문에 누구보다 푸드테크 시장 그리고 '위빙'이라는 서비스에 대해서 잘 알고 있다고 생각했는데 아직 한참 모자랐다는 것이다.


UI적으로 랜딩페이지를 어떻게 활용할 것인지.

메인 페이지에 굳이 매장으로 분류를 해야 할까, 소비자가 한눈에 보고 이 서비스를 이해할 수 있을까.

브랜딩을 확실히 구축하지 않으면 소비자를 설득시키지 어렵다.

소비자는 생각보다 친절하지 않고, 관심이 없기 때문에 그 점을 많이 감안하여야 한다.

등등...



덕분에 다음번에 스타트업을 할 때는 기획부터 어떤 요소들을 감안하여 진행해야 할지 우선순위와 기준은 어떤 것들을 잡아야 할지에 대해 얻을 수 있는 좋은 시간이 되었다.





아쉽게도 제대로 활용을 하지는 못한 걸 사실이다. 하지만

우리끼리 만든 프로젝트로만 끝난 것이 아니라 실제로 사용이 이루어졌다는 점이 굉장히 뿌듯했고, 배운 점은 분명히 존재했다.


이건 단순히 실패라고 생각되지 않는다.


덕분에 소비자의 입장에 가깝게 서서 개발과 UI가 어떻게 구성과 진행이 되어야 하는지 그리고 

개발 전 선행과정이 좀 더 탄탄하게 다져 저야 한다는 점과

기획, 디자인을 포함한 개발 전체 흐름을 확실히 느끼고 배울 수 있었기에

너무나도 피와 살이 되는 시간들이었다.



현재 위빙이라는 서비스는 막바지를 달려가고 있다. 마음이 굉장히 아프지만 한 편으로는 큰 경험이 되었다고 생각한다. 그리고 이전에는 다소 부족했던 개발 포지션에 대한 이해도가 높아져서 다음 기회에 시행착오를 훨씬 줄일 수 있을 것이라고 생각된다.



개발은 반드시 필요한 과정이다. 그러나 개발에 너무 목매달아 결과를 빠르게 내기보다는

개발이 정말 필요한 스텝에서 개발을 탄탄하게 가져가는 것이 중요하다고 생각한다.


즉,


개발 전에는 기획과 디자인이라는 단계가 탄탄히 선행되어야 한다.





아이디어에 대한 기획을 탄탄하게 가져가고, 소비자를 최대한 많이 만나보고

무수히 많은 피봇팅을 거친 후,

그들이 정말 어떤 것이 필요한지를 찾은 뒤에서야

디자인과 개발이 따라서 탄탄하게 다져질 수 있고,

초석이 확실하게 다져져야만 서비스가 비로소 시장에 내놓아졌을 때 진입할 수 있는 설득력이 생긴다고 생각한다.


당연한 얘기이고 독자분들도 수없이 들어왔던 얘기일 것이다. 나 또한 그랬다. 하지만 직접 경험하면서 필연적 이유나 타당성에 대해 확실하게 이해하게 되었고, 확실한 내 것이 되었다.



개발은 스타트업에서 반드시 필요한 요소이다. 그렇기에 나도 공부하기 시작하였고, 개발을 공부하고 실제로 서비스 개발을 하면서 '기획 - 디자인 - 개발'과정을 모두 경험할 수 있었다. 모든 단계 간의 유기적인 관계성에 대해서 제대로 이해할 수 있었고, 그 덕분에 시야가 넓어지면서 나무보다는 숲을 보고 계획을 세울 수 있었다. 스타트업 대표를 계속하지 않고 회사에 소속되더라도 단순히 내 포지션의 주어진 업무만 수행하는 것이 아니라 내 업무 앞뒤로 그리고 전체적으로 어떤 그림이 그려지고 있는지에 대해 윤곽을 빠르게 그려나갈 수 있다. 이는 곧 내가 주체적으로 일을 하고 의견을 피력하는데 엄청난 설득력을 안겨준다고 생각한다. 개발 공부를 하기에 많은 시간이 소요되고 힘든 건 사실이다. 하지만 정말 진로를 개발로 가져갈 것이라면 개발에 대해 깊이 공부를 해야겠지만 이해관계를 위한 개발 공부라면 어느 프로젝트를 한 두 번 정도 경험하는 것은 굉장히 큰 메리트라고 생각한다. 나아가 개발자 포지션이 아닌데 지속적으로 개발 공부를 하는 것은 이 또한 굉장한 메리트라고 할 수 있다. 내가 어느 부분에 더 가치를 두는지에 따라 경험해보는 것을 추천한다.



독자분들도 여러 시행착오를 겪으면서 

경험을 쌓고 이를 기반으로 세상에 계속해서 도전하기를 바란다.

필자 또한 자존감에 파도가 치지만 나를 위해서도 그렇고 세상을 위해서 계속 도전을 할 것이다. 개발자가 내 적성에 맞는지는 아직 확실하게 판단이 서진 않은 상태이지만 앞으로의 도전을 위해 계속 공부를 해나갈 것이다. 개발뿐만 아니라 회계, 수학, 디자인, 경영, 마케팅 등 다양한 분야를 계속 공부할 예정이다.

쉽진 않겠지만 그만한 가치가 있다고 믿고, 그것이 내가 원하는 세상을 살아가는 방법이다. 그래서 계속 도전할 것이다.



매거진의 이전글 프로토타입(Prototype) 디자인하기 in 스타트업
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari