brunch

You can make anything
by writing

C.S.Lewis

by 장영준 Mar 12. 2023

MVP 개발 - Pynecone은 어떨까?

개발자의 상상은 현실이 된다. <실현 편>

MVP(Minimum Viable Product): 고객의 피드백을 받아 최소한의 기능(features)을 구현한 제품이다. 초기의 MVP는 파워포인트 슬라이드, 비디오, 데모와 같이 단순한 표현으로 정의 될 수 있다. (출처: 위키백과)


MVP 기획과 개발

 글에서의 스타트업 창업 전체 과정은 MIT의 스타트업 교과서로 알려진 [Disciplined Entrepreneurship: 24 Steps to a Successful Startup, 한글 번역판: 스타트업 바이블]의 6개 테마 24단계 창업 프로그램을 기준으로 합니다. 이는 앞으로의 이야기들이 각 단계와 관련이 있을 경우 하나씩 소개드릴 예정입니다.

24단계 창업 프로그램, Disciplined Entrepreneurship, Bill Aulet

 

 혹시 여러분은 스타트업을 창업하는 과정이 24단계로 나누어 진다면 'MVP 개발'이 몇 번째에 있을 것으로 생각하실까요?

 전 처음에 중간 어디쯤 있을 거라 예상하고 찾아본 것 같은데, 의외로 꽤 뒤쪽인 22번째 단계에 위치해 있습니다. MVP개발의 의미를 우리가 상상하는 구체적인 모습 '비즈니스 가정'(20번째)와 이것이 옳은 지 실험하기 위해 '비즈니스 가설'을 정립하고 검증하려는 행위(21번째)까지라고 넓게 보아도, 자그마치 19개 단계가 비즈니스 실험에 착수하기 위한 사전 단계들입니다.

 물론 MVP 개발에 착수하게 되는 모든 사람들이 이 사전 단계들을 거치지는 않습니다. 특히 제가 이야기를 전해 드리고 싶은 대상은 최소의 비용으로 본인이 상상한 비즈니스를 직접 실현하고 싶은 1인 혹은 소규모팀을 꾸린 분들이기에 더욱이 많은 과정을 생략하는 것이 일반적일 것입니다.

 다만 분명한 것은 얼마나 많은 과정을 따랐는가에 관계없이 MVP 개발 단계는 보통 이처럼 많은 비용을 들인 사전 작업 끝에 도달하는 것입니다. 그만큼 기획된 MVP를 크게 변화시키는 것에는 사전 작업을 반복하는 시간 비용을 지불해야 합니다. 따라서 최소한의 시행착오만 가져올 좋은 MVP 기획비즈니스 가정 및 가정을 둘러싼 비즈니스 환경에 대한 타이밍을 잃지 않으면서도 비용이 적게 드는 MVP 개발이 매우 중요합니다.


파이썬 풀스택 개발, Django

 저는 대기업 재직 중인 약 3년 전 사이드 프로젝트 서비스를 단독으로 개발한 경험이 있습니다. 당시 회사에서 주로 데이터 분석 업무를 하는 바람에 웹개발이 생소하고 Python, R 만 익숙했던 제가 혼자 풀스택 개발을 해야 할 때 선택할 수 있는 방법은 Django 밖에 없었습니다. 그때는 반드시 개발을 해내겠다는 열정 하나로 곧장 Django 풀스택 온라인 강의를 수강했고, 이 지식만을 밑천으로 다시 많은 삽질, 좌절, 다짐을 거치며 장장 8개월에 걸쳐 퇴근 시간 이후를 온전히 개발에 투자하여 완성하게 됩니다.

 다행히 이 때는 이미 수익 모델이 존재하는 비즈니스에서 발견된 명확한 페인포인트를 개선하며, 서비스하는 콘텐츠나 비용 구조가 경쟁자의 허들이 명백하게 존재하는 비즈니스를 개발로 구현한 것이었기에 현재까지 꾸준히 수익이 나고 있습니다.

 그러나 돌이켜봤을 때 만약 그것이 비즈니스 실험적 성격의 MVP 개발이었을 경우, 물론 사이드 프로젝트였고 낮은 숙련도 탓이긴 했지만 8개월이라는 시간은 비즈니스 가정을 둘러싼 모든 환경을 파괴하기에 충분하였을 뿐만 아니라 MVP가 실패했을 경우 재기할 수 없는 시간이었다고 반성하게 됩니다.

 

Pynecone?

 아래는 유튜브를 즐겨 보지 않는 제가 그나마 즐겨보는 채널, 노마드 코더의 니콜라스가 얼마 전 파이썬 웹 프레임워크 Pynecone에 대해 소개한 영상인데, 위의 경험을 했던 제게 Pynecone 은 Django 이외에 파이썬만으로 풀스택 개발을 할 수 있다는 큰 혁신의 가능성으로 다가왔습니다.

 https://www.youtube.com/watch?v=47BL6WLZJ1g

<미친 파이썬 프레임워크가 나타났다>, 유튜브 노마드 코더 채널, 23.01.15

 

Pynecone!

 지난달부터 회사의 신사업 기획과 개발을 담당하고 있는 상황이라, 본격적인 MVP 개발을 위한 사내 팀빌딩 이전에 MVP 기획을 저해하지 않는 선에서 모든 개발 테스트를 Pynecone으로 해보고 있는 중입니다. Pynecone Github 을 가보면 아시겠지만 초기 버전 이후에 하루가 다르게 버그와 기능 개선이 이루어지고 있어서, 예를 들어 1월에는 불가능했던 것이 현재는 가능해지는 정말 초기 웹프레임워크의 발전을 같이 호흡해보고 있습니다. 심지어 공식 문서에는 미처 업데이트가 되지 않았지만 종료된 PR을 참고하면 구현이 되기도 하고, 해외 블로그에도 없지만 제가 직접 시행착오를 겪으며 구현이 된 것들도 생겨나고 있습니다.


 이번 글에서는 먼저 Pynecone이라는 파이썬 풀스택 웹프레임워크가 'MVP 개발'이라는 단계에서 갖는 의미를 짚어 보겠습니다. 사실 아직 Pynecone이 너무 초기 단계의 프로젝트라 어느 정도까지 발전이 될지 모르는 상황입니다. 갑자기 업데이트가 중단된다면 MVP 개발 용도로 적합하지 않을 위험이 다분합니다.

 그러나 저는 Pynecone 자체가 아니라, 일종의 고객인 저와 같은 개발자들의 열광적인 반응에 주목하려고 합니다. Pynecone 자체가 일종의 MVP라고 가정한다면 Pynecone 개발자들의 가설은 검증되고 있다고 생각합니다. 검증된 비즈니스라면 꼭 Pynecone 이 아니더라도 유사한 프레임워크가 등장할 것임이 분명합니다.

 제가 한창 파이썬과 태생이 유사한 스크립트언어인 R을 활용할 무렵 최초의 R기반 웹프레임워크였던 R Shiny가 처음 선보였을 때도 어느 정도 열광적인 반응이었고, 현재까지 계속 발전하고는 있지만 성능 이슈로 폭발적인 발전은 없기도 했습니다. 그러나 인공지능 서비스 등의 발전과 맞물려 파이썬은 활용도가 R보다 훨씬 더 높아지고 있는데, 만약 Pynecone 개발팀이 노력하고 있는 방향처럼 성능도 어느 정도 만족할 수준까지 올라온다면 접근하기 쉬운 언어인 파이썬 특성에 힘입어 웹개발 패러다임에 큰 변화를 가져올 수 있을 것입니다.

 

MVP 개발을 하려는 창업가 유형들

 그럼 본격적으로 Pynecone에 대해 이야기하기 전에, 스타트업 창업 전체 과정 중 'MVP 개발' 단계로 진입하는 다양한 배경의 창업가들을 먼저 분류해면서 Pynecone 이 도움이 될 대상을 정의해 보겠습니다.  


 1. IT가 어려운 것은 아니지만 개발에 대한 지식이나 경험이 전혀 없는 분

 만약 MVP 단계에 착수해야 하는 시점에서 본인의 상황이 이렇다면 MVP 개발 전문 업체를 찾는 편이 낫다고 생각합니다. 최근 몇 년 사이에 웹/앱 개발 수요가 폭발적으로 증가하고 개발자들이 본업 이외에 사이드 프로젝트를 하는 것이 일반적인 현상이 되면서, 프리랜서 전문 개발자 출신 분들 중심으로 핵심 인력을 제외한 보조 인력은 이런 개발자들로 하는 업체가 많이 생겨났습니다. 500만 원 정도의 정말 간단한 개발부터 비록 난이도에 따라 수억 원이 필요할 수도 있겠지만, 평균적으로 3000~5000만 원 정도가 있으면 MVP를 확보할 수 있습니다. 500만 원~2000만 원 정도의 난이도가 낮은 개발은 현재도 계속 발전하고 있는 노코드(No code) 솔루션을 통해 해결할 수도 있습니다. 노코드 솔루션에 관해서도 다른 글에서 자세하게 알아볼 예정입니다만, 간단하게 말해보면 본인이 기획한 비즈니스가 간단한 쇼핑몰, 간단한 설문, 게시판, 홍보 및 광고, 간단한 콘텐츠 뷰어 등의 규격화된 템플릿으로 제작 가능한 구조라면 노코드 솔루션으로 충분하다고 봅니다.


 2. 웹/앱 개발 통합 강의는 아니지만 대학, 사내 강의나 취미활동 등으로 코딩 지식이나 경험이 있는 분

 1번과 마찬가지로 MVP 개발 전문 업체를 찾을 수도 있겠습니다. 노코드 솔루션은 당연하고, 이런 분들을 위해 최근 로우코드(Low code) 솔루션이 급격하게 발전하여 이를 잘 활용만 하면 3000~5000만 원 하는 평균적인 MVP들까지도 (시간은 걸리겠지만) 직접 구현이 가능하다고 생각합니다. 노코드와 로우코드는 여러 솔루션 기능 소개 등을 보고 판단한 것이라서, 직접 사용하며 자세하게 파악해 보는 별도의 글을 통해 더 자세하게 소개해 드리겠습니다.


 3. 웹/앱 개발 풀스택 강의(언어 기초,프론트엔드,DB/서버 포함 백엔드, 인프라)를 1개 이상 완강하신 분

 보통 이런 분들은 알고 있거나 익힌 개발의 형태가 수강한 강의 내용에 머물러 있는 경우가 대부분입니다. 따라서 일반적으로 첫 프로젝트 구조를 강의에서 제공하는 소스 코드를 기본으로 하게 됩니다. 이렇게 되면 비록 풀스택 강의를 수강은 하였지만 프론트엔드나 백엔드 둘 중 하나에 지식이나 관심이 더 있을 것이라서, 비즈니스 요구사항에 필요한 화면이나 로직이 복잡해졌을 경우 제공된 소스 코드를 변형해야 하는 것에 어려움을 겪기 시작합니다. 애초에 비즈니스에 적합하지 않은 소스 코드였어도 알아차리지 못하며, 관심이 덜한 분야의 변형은 수많은 시행착오와 디버깅을 불러올 것입니다. 만약 그 긴 시련의 과정을 이겨내고 마법처럼(!) 운이 좋게 의도한대로 동작하는 개발 산출물이 완성되었어도, 결과적으로 유지보수가 불가능한 상황일 거라 다시 완전히 새로운 MVP가 기획될 경우 리팩토링이 아닌 신규 개발이 될 확률이 매우 높습니다.


 4. 풀스택으로 웹/앱 전체 서비스 개발을 1회 이상 완성하신 분

 오히려 이런 분들이 주의해야 할 점은 개발 자체가 아니고, 아래의 질문을 해보는 것입니다.

 1) 개발 전

 : 직접 개발하지 않아도 생산성이 좋은 노코드, 로우코드 솔루션으로 충분하지는 않은가?

 2) 개발 중

 : '최소 기능' 구현에만 집중하고 있는가? 어려운 기술이나 공학적 호기심에 집착하고 있는 것은 아닌가?

 3) 개발 후

 : 빠르게 유지보수하기 쉽도록 개발 산출물이 정리되었는가?


가설 검증 비용

 창업가가 어떤 분류에 속하든 가장 중요한 사항이 있습니다. MVP는 비즈니스 실험의 가설 검증이며 검증 결과에 따라 다시 검증하는 과정이 필연적이므로, MVP개발은 횟수를 거듭할수록 비용을 최소화하는 방향으로 발전하는 것이 이상적입니다. 언뜻 보면 3번의 경우가 1,2번보다 좋은 상황 같지만 그렇지 않을 수 있는 이유가 바로 이 점 때문입니다. 1,2번은 추상화가 고도로 되어 정해진 틀 안에서만 구현할 수밖에 없다는 단점이 있지만 반대로 그 틀 안에만 있다면 MVP 기획의 반영이 용이한 편입니다. 즉, 솔루션에 익숙해지고 비즈니스만 단순하다면 가설 검증 비용이 매우 낮습니다. 다만 전문 업체가 개발을 했다면 상황이 다릅니다. 물론 해당 업체가 어느 정도의 A/S 서비스를 해주기도 하고, 간단한 변경이라면 외주 플랫폼에서 프리랜서를 고용하여 수정할 수도 있겠지만 전체적인 MVP 기획이 바뀌어야 한다면 다시 처음과 거의 동일한 가설 검증 비용을 지불해야 합니다.

 그러나 3번과 4번 이전 수준에 속하는 분들은 상황이 다릅니다. 일단 '풀스택'이라는 이상향과도 같은 달콤한 단어를 소화해 내는 것은 생각보다 녹록지 않습니다. 4번에 속하신 분들을 별도로 분류한 근거도 풀스택 개발자로서 크든 작든 '서비스 개발의 완성'을 경험하는 것이 어렵기 때문입니다. 더군다나 3번의 개발 산출물은 변경에 유연하지 않을 확률이 매우 높으므로 MVP 기획이 변경되면, 전문 업체에 의뢰한 것처럼 신규 개발을 하게 될 것입니다. 물론 경험한 것들을 바탕으로 횟수가 거듭할수록 4번에 속하게 되긴 하겠습니다.


MVP개발은 단지 방법과 수단

 그런데 여기서 가장 중요한 점은 가설을 검증하는 사람은 창업가라는 것입니다. 기존에 있는 비즈니스이고 프로젝트 매니저가 모든 요구사항을 정리하여 전달해 준다면 '풀스택' 개발도 마냥 이상향 같은 단어는 아닙니다. 예를 들어 전천후 역할이 가능한 Flutter 도 많이 발전했고, 일반적인 개발자라면 기술의 수준과 상관없이 언어나 프레임워크에 대한 거부감이 없어서 학습 역량이 분산되어 고생은 좀 하겠지만 이종 언어의 이종 프레임워크 개발도 충분히 가능할 겁니다.

 하지만 MVP개발은 비즈니스 검증의 방법과 수단일 뿐입니다. 검증이 틀렸을 경우 다시 이전 19개 단계 전체를 검토할 수도 있는 상황에서 MVP개발에서의 이종 언어, 이종 프레임워크에 대한 공학적 탐구의 즐거움은 늘 추구하되 탐닉해서는 안 될 유혹입니다. 가혹하지만 기업 관점에서 해당 개발 산출물은 오로지 고객 가설이 검증되고 수익까지 이어져 '비즈니스'라는 표현을 붙일 수 있어야만 가치를 가집니다.

 그러나 반대로 이것이 결코 공학적인 엄밀함을 포기한다는 것을 의미해서도 안됩니다. 수익으로 이어졌지만 모래성과 같은 아키텍처와 시스템이어서 작은 변화에도 쉽게 안정성을 잃어서 순식간에 고객의 신뢰를 잃는다면 그것도 가치가 없습니다.

 그래서 우리는 '어떻게 하면 완성된 개발 산출물의 완성도를 높이면서 동시에 빠르게 개발하는 생산성을 가질 수 있을까?'라는 질문을 늘 해야 합니다.

 

 다른 개발자들처럼 저도 지금껏 필요하면 어떤 언어나 프레임워크든 배우고 사용하려고 해 왔던 것 같습니다. 파이썬 이외에 R/SAS/Scalar/JAVA/C#/JS/VueJS/Flutter 까지 데이터분석이든 프론트엔드든 앱이든 상상의 구현에 필요하면 뭐든 가리지 않습니다. 주니어 시절에는 이를 이상향으로 추구하기도 했습니다.

 그러나 비즈니스를 기획하기 시작하고 개발 외적으로 챙길 목록들이 점점 많아지면서, '어떤 학습이 내 기술의 생산성을 극대화시킬까?'와 '어떻게 다양한 업무를 하나의 맥락으로 통일시킬까? 1타 2피!'에 혈안이 되어 살고 있는 저를 발견하고 있습니다.

 

 Pynecone에 대한 저의 관심은 위와 같은 맥락에서 시작됐습니다. 물론 파이썬이 태생적으로 가지는 약점 때문에 고성능 요구 비즈니스 구현이 어려운 점이 있고, Pynecone 개발팀이 지금처럼 열일하여 순정 NextJS와 거의 유사한 프론트엔드 성능만 확보해야 하는 등의 난관들이 산적하지만, '하나의 언어로 백엔드, 프론트엔드를 구현 가능하다'는 미친 프레임워크로 등장한 Pynecone이 얼마나 생산성 혁신을 가져올 지 앞으로도 모험가의 마음으로 실험해 볼 예정입니다.


 다음 글에서는 본격적으로 Django와 Pynecone으로 풀스택 개발하는 모습을 비교해 보면서, Pynecone으로 할 수 있는 개발들과 레퍼런스 없이 직접 구현한 몇 가지 소소한 기능들을 다뤄 보겠습니다.

작가의 이전글 2. 인생은 한 번 뿐이니까
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari