이번주 화요일(2019년 4월 23일)에 인프런 서비스 리뉴얼 (앤트맨) 을 런칭했다.
아직 앤트맨 프로젝트에서 만들 피처들이 더 있긴 하지만, 우짜든 만들어냈고 잘 돌아가는 서비스를 런칭했다. 완전 새로운 서비스를 만드는 일이었다면 훨씬 쉬웠을 거다. 15만명이 회원수와 300만개의 학습 데이터가 존재하는 서비스의 모든 부분을 새로 만든다는것은 생각보다 쉽지 않았다.
회사적인 입장에서 리뉴얼 과정에 초점을 맞춰 기록해 본다.
스타트업은 처음부터 완성도 있는 서비스를 가질 수 없기 때문에 참고가 될 수도 있을듯.
0. 인프런 이전부터 생각은 하고 있던 인프런 리뉴얼;; 2015.05 (1명)
사실 인프런 서비스의 리뉴얼은 서비스 만들기 전부터 계획에 있었다. 2015년 여름쯤만든 인프런 구성을 하던 마인드맵에 이런 내용이 있다.
당시 혼자였던데다 개발자라기 보다 퍼블리셔였기 때문에, 워드프레스로 기능들을 조합해 인프런 이라는 서비스를 만들기로 결정했다. (외주는 돈이 없어서 아예 논외로 했다.) 일단 만들고 뒷날을 기약하는것이 최선의 선택이었다. 게다가 워드프레스가 안겨주는 여러 이점들도 있었기에 지금 와서도 좋은 선택이었다고 생각한다.
1. 워드프레스로 인프런 서비스 오픈 후 성장 – 2015.12 (1 > 2명)
정말 맨땅에서 헤딩해가면서 서비스를 개발했다.
당시 제로보드(xe) 와 워드프레스로 회사소개, 오피스텔 분양 안내 홈페이지를 만든게 전부였기에 DB 와 통신하는 기능들을 만드는것은 힘들었다. 워드프레스에서 많은 부분을 해준다고 하더라도, 또 최소한의 서비스가 되려면 직접 구현해야 되는 것들이 많았다. 게다가 난생 처음보는 서버(리눅스 우분투)의 까만 화면들 까지 괴롭힐땐 진짜 미쳐버리는줄 알았다.ㅋㅋㅋㅋ 그때 생활코딩의 JS, PHP, 인프라 강의들이 큰 도움이 됐다. 아마 생코가 없었다면 포기했을듯. 그래서 이고잉님께는 항상 감사함을 느낀다. (생코는 인프런의 아부지)
우짜든 2015년 12월 우여곡절 끝에 완성 및 런칭!! 을 하고 서비스가 돌아가게 됐고, 첫 가입자가 나오고, 매출도 나오고 강좌도 올라가고 도와주시는 분들도 생기고, 앤젤투자로 자금이 생기고, 이듬해 첫 팀원인 수가 합류했다. 🎉🎉
하지만 서비스의 규모가 점차 커감에 따라 서비스 속도에 대한 문제가 생겼다. 서비스 속도는 워드프레스 플러그인 데이터 방식상 내 능력으로는 극복할 수 없는 것이었고, ‘언젠가 리뉴얼을 해야지.. 근데 어떻게 하지..’ 하면서 운영을 해나갔다.
2. 리뉴얼 프로젝트 1차 준비 2017.10 – 분위기 띄우다 fail ( 2 > 3명)
첫 개발자 후리는 2017년에 왔다.
사실 이때 야심차게 새로 서비스를 만드려고 했는데..
우리 둘다 큰 서비스를 만들어본 경험이 전무했고, 너무 복잡한 DB 마이그레이션(많은 워드프레스 플러그인들은 DB에 값을 알기 어려운 키벨류로 그냥 때려 박아 넣음..ㅠㅠ), 그리고 대표인 내가 개발에 올인하기 어려운 환경 등의 이유로 쉽지 않았다.
그래서 준비하다가 흐지부지 되고, 외부에서 요청이나 서비스에 문제가 생기면 조금씩 코드를 땜빵하며 미친듯이 느리게 내공을 쌓아갔다.
3. 팀 체력 키우기 2017.10 ~ 2018.9 ( 3 > 5명)
다행하게도 서비스는 꾸준히 성장했다. 콘텐츠 수와 회원수가 꾸준히 늘었고 투자도 받게 됐다. 본엔젤스에서 5억을 받았는데 처음에 콜드메일을 날렸고 감사하게도 전태연 파트너님이 미팅을 제안해 주셨다. 처음 미팅은 완전 불발됐고, 이후 2번의 시도 끝에 투자가 성사됐다.
투자받은 다른 회사들처럼 폭발적으로 팀을 늘리진 않았다. 천천히 단단한 사람들로 팀을 만들었다. 이때 스윔,옥돌이 순서대로 들어왔다. 체력을 키우는 단계라고 생각했고 지금 모두 제 몫을 해주고 있다.
4. 리뉴얼 프로젝트 2차 준비 2018.10 – 진짜 시작 ( 5 > 6명)
회원수가 10만명이 넘어가면서 사이트 속도가 급속도로 느려졌다. 리뉴얼을 더 이상 미룰 수 없는 상황이 됐고, 프로젝트를 진행하기 위한 준비를 시작했다.
첫 팀원인 수가 성장해 나의 운영공백을 매꿀 수 있었고, 컨텐츠 관리와 마케팅을 하는 스윔과 옥돌이 충분히 제몫을 하는 모습을 보고 몇개월 이상의 개발프로젝트를 진행할 수 있는 시간을 벌 체력이 갖춰졌다고 판단했다.
개발자 구인
개발인력이 나, 후리 2명 이었기 때문에 최소 한명의 개발자가 더 필요했다. 후리가 백엔드고 내가 프론트 포지션인데, 난 대표로서 해야하는 다른 일들로 인해 구멍이 될수도 있어 백엔드를 이해하는 프론트 개발자를 찾았다.
다행히도 댄이 들어왔다. 댄은 꽤 유명한 스타트업에 이미 다니고 있었다. 마침 친구가 있는 회사라 잘 아는 곳이었다. 입사를 위한 관문이 꽤 험난하다고 들었는데, 그런데 붙은 친구가 왜 인프랩에 지원했지? 하는 생각이 들었다. 우짜든 미팅을 갖기로 하고 처음 만난 자리에서 댄한테 악수를 청하며 이야기 했다.
‘우리 같이 일해요.’
솔찍히 그렇게 하고 회사 돌아와서 얘기하는데 팀원들 특히 후리가 ‘얘 또 왜이러지..’ 하는 걱정스러운 표정이긴 했다.ㅋ
어쨌든 같이 일하기로 했고, 댄은 우리가 갖고 있진 않은 장점을 가져왔고, 프로젝트가 더 좋은 방향으로 가는데 큰 역할을 했다. 이런걸 보면 정말 운이 중요한거 같다.
구인을 하면서 우여곡절이 있었고, 실망스러운 순간도 있었지만 결과적으론 잘된 일이라고 생각한다.
스터디 & 프로젝트 시작
스택을 정하는데 많은 고민이 있었는데, nodejs 기반에 전체적인 페러다임을 functional 하게 가기로 결정했다. 팀원에 맞는 스택이기도 했고, 개인적으론 그게 공부할게 적을거 같았다..;;; 함수형 개발 패러다임으로 개발을 하기 위해 프로젝트 시작전 스터디와 교육을 진행했다. 한달정도 스터디와 연습을 하고 익숙해진다 싶을 때부터 본격적으로 개발에 들어갔다. (함수형 프로그래밍을 위해 마플(marpple.com)에서 만든 오픈소스들(https://github.com/marpple)을 사용했다. 오픈소스로 만들어준 마플 개발자 분들께 감사하다.)
프로젝트 명은 Ant-man 으로 정했다. 걍 A 고 난 앤트맨 좋으니까.
5. 앤트맨 리뉴얼 프로젝트 진행 2018.11 ~ 2019.5 ( 6 > 7명)
드디어 진짜로 만들기 시작
만들기 전엔 올해 2월 초 그니까 3개월에 프로젝트를 끝내겠다고 생각했는데, 개발을 진행하고 회의를 할수록 예상 일정이 길어졌다. 지금 생각해 보면 도대체 뭔 생각으로 2월 오픈을 한다고 했는지 모르겠다. (사실 안다. 그냥 정말 생각이 없었음.ㅋ)
처음엔 개발 문화? 라는게 전혀 네버 나띵 없어서 걍 하고 싶은 기능 각자 맡아서 진행했다. 그러니 각자 작업에 대한 공유, 효율성, 완성도 등 많은 부분에서 문제가 생겼다. 이 부분에서 나중에 합류한 댄이 큰 역할을 했다. 매일하는 스크럼과 스프린트 시스템, 코드리뷰 를 도입해서 커뮤니케이션 집적도를 높여서 좀 더 체계적으로 개발을 할 수 있게 됐다. 나는 처음엔 바뻐죽겠는데 뭘 그런걸 하냐 해서 저항이 좀 있긴 했는데 어딜봐도 다 맞는 이야기라 수긍했다. 결과적으로 감사할 따름이다.
레거시 데이터에서 오는 문제
인프런은 이미 수백만건에 육박하는 데이터가 존재하는 서비스였다. 컨텐츠를 새 서비스에서 연속성 있게 사용하게 하는 문제가 우리에겐 중요했고, 그만큼 많은 대화가 필요했다. 아무리 많은 대화와 준비를 하더라도 레거시 데이터를 어떻게 보여주고 수정할지에 대해서 시행착오가 꽤 많았다. 이 데이터 마이그레이션은 후리가 주로 맡아서 했는데, 큰 사고 없이 정말 잘해줬다. 아마 처음에 왔을때 엄청 맨붕이었을텐데 잘 끝내줘서 고맙다.
인프라
개발을 진행하면서 인프라 구성에 대해서 걱정을 하기 시작 했다. 이게 참, 알면 금방 되는데 모르는 상태에서는 많은 에너지와 스트레스 + 시간이 드는 영역이라 누가 맡아야 하나 고민이 됐다. 그러던 참에 조슈아 가 딱 등장해줬다. 게다가 석사 논문을 도커에 대해서 쓰신분 답게, 인프라 구성을 꼼꼼하고도 멋지게 해냈다. 기대이상의 가치를 주는 조슈아를 보면서 전공자가 다르긴 다르구나 싶은 생각도 들었다.
개발 개발 개발
개발은 꽤 순조롭게 진행됐다. 종종 문제가 있긴 했지만 그리 오래걸리지 않아 해결했다. 로그인, 학습에 필요한 기능들을 먼저 만들고, 결제, 게시글 등등을 작업했다.
지금 와서는 내가 짠 코드나 전체 구조에 대해서 아쉬움이 있다. 이건 앞으로 다른 사람들이 매꿔주겠지뭐..
6. 2019년 4월 23일 리뉴얼 버전 오픈 (7 > 9명)
1차 오픈 공지 – fail
앤트맨 프로젝트 전체 완료는 아니더라도, 학습 플랫폼으로서 기능이 갖춰진 시점에 오픈하기로 했다. 그래서 처음에 4월 1일에 오픈한다고 공지했는데 완전 피봤다. 당연히 개발기간 연장 공지를 올렸다. 지금 와서 생각해보면 배타테스트를 4월 중순에 했는데 왜 4월 1일에 오픈할 수 있다고 생각했지.-_-;;;
2차 오픈 공지, 배타테스트
쿨하게 1차 공지는 접고 연장 공지를 올리고 배타테스트를 진행했다.
배타테스트에서 여러가지 버그들이 나왔지만 심각하거나 어려운 미션이 발견되진 않아서 소소하게 수정을 해나가다, 엄청 충격적인 결함이 발견됐었다.
XSS 취약점 이었는데, 테스터분이 엄청 친절하고도 충격적이게 alert 창을 띄워서 어디가 취약점인지 알려줬다. 아 솔찍히 그때 정말 부끄러웠고, 그동안 뭐한거지 싶기도 하고 그랬는데 다행히 그때 알아서 잘 매꿔놨다. 그분께 연락해서 밥 살 생각이다.ㅋ
2019년 4월 23일 오픈
기존 서비스의 DB 를 새 서비스 DB 에 맞게 이전해야 하는 작업이 있어 중단이 필요했다. 그래서 사람이 적은 4시에 시작하기로 하고, 그 전날은 일찍 퇴근하고 담날 3시에 모이기로 했다. (근데 일찍은 커녕 그 전날 쌓인 버그가 많아 계속 수정하다 새벽 1시에 집에 들어갔고 한시간 반 자고 다시 나왔다.ㅠㅠ)
새벽 3시에 모여 기존 서비스 도메인 끊고, AWS 인프라 올리고 , 공사중 페이지 올리고, 마이그레이션 코드 돌리고 등등.. 결국에 오픈했다. 예~~ 🎉🎉
첫날 많은 버그들이 있었지만 전 팀원이 버그 찾고 실시간으로 수정하고 하면서 어느정도 안정화가 됐다. 우짜든 잘 돌아가고 많은 사람들이 훨씬 쾌적한 환경에서 학습하고 있다.
남은 개발할 기능들
그룹, 내 학습 리스트, 러닝패스, 쿠폰…ㅋㅋㅋ
그밖에
기획문서
기획문서 같은 경우는 내가 원래 잘 못만드는 사람이기도 하지만, 일부로 부실하게 가져갔다. 이게 왠 X소리냐 싶고 변명처럼 들리겠지만 진짜다.ㅋㅋㅋㅋ
이유는 너무 심오해서 나만 간직하기로 하고 어쩄든 진짜고 결과적으로 옳았다고 생각한다. 물론 앞으로의 프로젝트는 그러면 안돼.
디자인이 아쉽다.
진이 외주로 진행해줬는데, 내가 외주 디자이너랑 같이 일해본 경험도 없어서 신경 못쓰고 내 할일도 바쁘고 해서 거의 초기 디자인만 받고 개발에 맞춰서 변경되진 않았다. 없는 페이지도 많았고. 거의 코딩으로 디자인을 그리면서 개발했다. 뭐 우리 일정이나 일의 분량을 생각했을땐 옳은 방식이라고 생각된다.
아마 디자인 그때 그때 계속 수정되고 주고 받고 했으면 더 일정이 늦어졌을거 같다.
디자인은 나중에 다듬고 싶다. 우아하면서 에너지있고 센스있으면서 진중한 느낌으로….ㅋㅋㅋㅋ
대표가 개발하는거
대표가 개발자로서 직접 투입이 되느냐에 대한 고민이 많았다. 주변에서 만류하기도 했고, 솔찍히 스스로도 전체적인 관점에서 볼때는 대표가 개발하는건 효율적이지 못한 일이라고 생각한다. 하지만 그건 일반론이고 우리에겐 우리의 특수성이 있다. 여러가지 이유로 이 프로젝트에선 내가 꼭 있어야 했다.
결과적으로 옳은 판단이었고 이거에 대해서 ‘대표가 왜 개발을 직접 했는가.’ 라는 글을 쓰고 싶다. 이젠 개발 그만하고 돈 벌 생각이다.
후기
5개월간은 진짜, 일만 했다.
모르긴 몰라도 우리가 판교라는 도시에서 가장 많은 에너지를 쓴 팀중 하나일 것이다.
일 많이 한거로 자랑하는게 아니고 걍 그랬다는 거다. 많은 노력을 했고, 그덕에 사람들이 많이 쓰는 서비스를 안정적으로 만들어 냈다. 순도 높은 노력을 결과로 바꿔본 이 경험은 우리 팀 전원에게 큰 재산이 될거라 생각한다.
개인적으로도 성취한게 있다.
나는 이 세계에 어쨌든 개발자로 들어왔다. 32살에.
반쪽짜리의 개발로 인프런을 만들고 운영하게 되면서 개발자로서 아쉬움이 있었는데, 많은 부분을 매꿨다. 이제 개발 그만하고 회사에 돈을 벌어줘야지.
우리같이 작은 스타트업(6~7인)이 3~4명의 인력이 순전히 미래를 위해 근 반년동안 돈 안벌리는 서비스를 만드는건 정말이지 큰 모험이다. 그 일을 잘 마무리 짓고 있다는 기분이 든다. 모든 팀원의 노력이 들어갔다. 그래서 이번 프로젝트가 너무 자랑스럽다. 이것을 해낸 우리 팀이 정말이지 자랑스럽고 감사하다.
특히 개발팀이 미래의 제품을 만드는 동안, 우리를 먹여살려준 운영팀 수스윔옥돌에게 깊은 감사를 표합니다.
이제 훨씬 더 재밌는걸 많이 하고 보여줄 수 있다.
또 새로운 길이다. 화이팅!
[…] ~ 3월은 앤트맨 프로젝트(인프런 리뉴얼)에 올인했다. 2015년 인프런을 만들때부터 이건 함께 할 동료들을 모으기 […]
고생많으셨습니다!!
유저의 한명으로서 감사할 따름입니다. 들어가보니 전보다 시각적으로나 체험적으로나 훨씬 쾌적해진거같네요~
글 본문에 조금 수정해주면 좋을 거 같은 부분이 있네요.
…
이 부분에서 나중에 합류한 댄이 큰 역할을 했다. 매일하는 스크럽과 스플린트 시스템, 코드리뷰 를 도입해서 커뮤니케이션 집적도를 높여서 좀 더 체계적으로 개발을 할 수 있게 됐다.
…
이 부분에서 스크럽-> 스크럼, 스플린트-> 스프린트로 고쳐주시면 다른 분들이 읽을 때 더 위화감없이 읽을 수 있을 것 같습니다.
조언 감사드려요!! 수정했습니다!ㅎㅎ
좋은 서비스 만드시느라 고생 많으셨습니다
재능기부를 하고 싶군요