Series C StartUp(시리즈 C 스타트업)
이번 회사에서는 면접 자리에서 연봉협상을 통해 헨드헌터와 이야기 했던 연봉 보다 낮춰진 체로 입사하게 되어 떨떠름
했지만
그래도 기존 연봉보다는 20% 넘게 올렸기 때문에 그걸 위안 삼기로 했습니다.
2019년 10월부터 2022년 9월까지 거의 3년을 근무한 회사의 경험입니다.
입사일
처음 출근 하기 전 영어 이름을 정해야 했습니다.
이번에도 이전에 정한 익숙한 이름 알렉스
로 정했습니다.
출근해 보니 정해져 있는 자리가 있었습니다. 그리고 OT
가 시작됐다.
OT는 다른 스타트업과 비교해 독특하게 개발과 상관없는 모든 부서의 장들이 직접 부서 업무
에 대해 소개
해줬습니다.
(알고 보니 개발과 굉장히 밀접한 부서들이었습니다.)
OT를 거치면서 부서장 분들이 직급과 상관없이 서로 편하게 말할 수 있는 분위기인 것을 강조해 좋은 인상을 받았습니다.
내가 속해 있던 개발팀은 CTO인 브라이언
과 내 또래의 프론트엔드 개발자 휴버트
가 있었고 샘
이라는 개발자는 신사업팀으로 따로 팀이 있는 상황이었습니다.
개발자가 3명인데다가 말도 잘 통해 보이고 나이대도 비슷해 든든했습니다.
자기 일만 제대로 한다면 쉬는 시간도 자유롭고 영어이름을 쓰며 높은 직급에도 격의없이 서비스에 대해 논의하고 개발자에 대해 존중해주는 수평적인 분위기가 보였고 회사에 대한 기대가 생기는 첫 날이었습니다.
회사의 과거 이야기
OT가 끝나고 휴버트
는 프론트엔드
소스를 공유했습니다.
본인이 맡고 있는 프론트엔드부터 같이 해보자고 해서 본격적인 업무를 시작하게 됩니다.
소스를 보니 typescript
, react
로 구성된 웹이었고 회사의 앱은 react-native
에 웹뷰
를 띄워 거의 모든 동작은 웹뷰에서 이뤄지게 만들어져 있었습니다.
react-native 소스도 받았지만 수정을 안 한지가 거의 6개월이 지난 상태였습니다.
그리고 react-native로 앱 스토어에 배포한 경험이 있는 사람도 회사에 없었습니다.
알고 보니 내가 들어오기 1달 전 제이드
라는 개발자가 앱을 맡고 있다가 인수인계 없이 퇴사
를 했다고 합니다.
점심 식사를 하면서 회사의 과거 이야기
를 듣게 됐습니다.
사실 회사에는 개발자 숫자가 거의 15명이 될 정도로 개발인원이 많았었는데 투자 유치 및 개발 산출물의 반응이 좋지 않아 적자에 허덕였고 그 때 퇴사 권유를 받아 대부분 퇴사하게 되고
개발자 샘과 보험 데이터 기획자 에릭이 남게 되었다고 합니다.
그렇게 남게 된 샘은 조금씩 작은 개발 관련 일처리를 하다가 회사에 투자 유치가 되서 에릭과 함께 보닥이라는 서비스를 만들기로 했고 그 서비스를 만들기 위해 개발자들을 채용하게 됐습니다. 그 때 뽑은 인원이 휴버트와 제이드였고 휴버트는 프론트엔드, 제이드는 앱 및 서버 구성, 샘은 백엔드를 담당해 훌륭한 합을 보여줬다고 합니다.
에릭
과 개발팀
들은 열심히 목적을 향해 나갔고 앱
을 출시
하고 유지보수하며 잘 운영해 회사의 캐시카우가 되었습니다.
그런데 앱이 성공적으로 출시되고 회사가 안정된 돈이 들어오게 되면서 다른 투자들을 더 받기 위해 새로운 시도들이 계속 요구됐는데 이 과정에서 샘
과 경영진
간 마찰
이 많았다고 합니다.
샘은 개발자 입장, 경영진은 투자를 받기 위한 입장이기 때문에 마찰이 있을 수 있었지만 경영진이 샘을 컨트롤
하기 힘들어졌다 생각해 추후 더 큰 개발팀이 되면 뽑으려 했던 CTO
를
급하게 고용
했다고 합니다.
CTO는 나를 면접 봤던 브라이언이었고 브라이언은 경영진이 원하는 바를 빠르게 도입할 수 있는 체계를 만들기 위해 현재 개발된 내용들을 모두 단순화하기 위해 다 갈아치울 거라고 말했습니다.
브라이언
은 처음에 앱의 규모만 보고 혼자 모두 새로 만들어도 2~3개월
이면 될 듯이 말했고 경영진은 이것을 믿어주고 힘을 실어줬습니다.
하지만 샘
은 이런 브라이언의 태도를 가만 볼 수 없었고 브라이언의 원하는 바를 해주지 않았고 여전히 강경한 입장
을 고수하고 있었습니다.
그렇게 샘과 틀어진 브라이언은 남은 2명과 샘을 이간질하고 샘을 팀에서 추방해 샘과의 대화를 통제
하기 시작했습니다.
하지만 3명은 이미 개발 합을 맞추며 깊은 관계였고 이 모든 것은 3명 모두의 반감을 사게 됩니다. 브라이언은 애초에 CTO로 입사할 때부터 실무를 하려 한 게 아니었기 때문에 개발자들의 도움이 필요했는데 그나마 말을 좀 들어주던 제이드와 휴버트에게 일을 시켰지만 브라이언이 급하게 설계한 데이터베이스와 백엔드는 아주 많이 수정이 필요했고 이에 2명 또한 지쳐갔습니다.
브라이언은 3명 모두의 신임을 잃었기 때문에 경영진에게는 3명이 돕지 않아 문제가 된다며 그들 탓을 계속 반복 했지만 일정 압박을 받았고, 이 때부터 회사에서 자유롭게 사용하던 개발자들의
연차까지 반려
시키기 시작했습니다.
이로 인해 제이드
는 사적으로 안 좋은 상황
에 처하게 됐고 그로 인해 바로 퇴사
하게 됐다고 들었습니다.
그래서 회사에서 사용중인 서비스들의 계정 관련 정보들, 배포 프로세스, 앱 배포 등을 아는 사람이 없는 상황이었습니다.
생각보다 심각한 상황
이었습니다. 배포체계에 갑자기 문제가 생긴 상태에서 급하게 서비스에 이슈가 생긴다면 그걸 고치기 위해 전체 프로세스를 새로 만들어야 할 수도 있었습니다.
브라이언은 저와 샘과의 대화를 지속적으로 막았습니다. 브라이언 때문에 신사업팀으로 배정돼 업무에서 배제된 샘이 사실은 회사의 모든 백엔드 내용을 알고 있는데 대화를 할 수도 없고 불편하고 난감한 상황이었습니다.
퇴사 레이스
입사했을 때부터 샘
은 퇴사
일정이 잡혀 있었습니다.
업무를 배제시키고 경영 진 또한 CTO에게 힘을 실어주고 있으니 샘도 회사에 있을 이유가 없어 보였습니다.
하지만 샘에게 배우고 싶어 회사에 남아있었던 휴버트
는 샘이 나가면 나가겠다
고 했습니다.
(샘은 개발 능력이 아주 뛰어난 개발자였습니다.)
CTO
는 해내겠다고 한 일정보다 6개월이 더 걸려서도 일을 해내지 못했고 게다가 모든 팀원들이 퇴사 의지를 밝혀 찰스에 의해 결국 강제 퇴사
를 당하게 됐습니다.
CTO가 퇴사 당했지만 회사에 질려버린 샘도 거의 비슷한 시일에 일정대로 퇴사했고 휴버트는 간단하게 웹뷰에 대한 배포 방법을 알려준 뒤 샘의 소개로 다른 회사에 추천되어 이직을
성공하게 됩니다.
퇴사하기 전 샘과 휴버트는 경영진에게도 많은 상황 어필들을 했으나 모든 것들이 소용이 없었다고 생각해 회사에 실망을 한 상태였기 때문에 마음을 돌리 수도 없었습니다. 그렇게 결국 다시 개발팀에 혼자 남게 됐는데 그래도 에릭이 이전 개발에 대한 히스토리를 알고 있어 옆에서 많은 도움을 줬고 유지보수에 많은 도움이 됐습니다.
유지보수
프론트엔드
react
, typescript
로 구성된 서비스는 대부분 웹뷰를 통해 독특하게 구성
되어 있었습니다.
프론트엔드에서 api를 사용하기 위해서는 백엔드 개발 시 같이 배포하는 api용 타입 라이브러리를 npm에 배포하고 이것을 프론트엔드에서 업그레이드해 사용하는 패턴을 취하고 있어
양 쪽의 오류를 덜 수도 있었지만 혼자 있는 상황에서 많은 일을 빠르게 개발할 때 불편한 족쇄
중 하나였습니다.
게다가 소스를 보면 react-router, redux, react 기본 기능인 state 관리, UI컴포넌트 등을 모두 JS로 직접 만들어 사용
했는데 설정 방식
도, 기능
도, 성능
도
모두 좋지 않았습니다
.
하지만 혼자 남은 상황에서 패턴을 모두 변경하고 새로 개발하기엔 버거웠기 때문에 패턴에 맞춰 개발
했습니다.
독립적으로 변경할 수 있는 부분들만 다른 개발자들도 좀 더 익숙한 형태로 변경해 나갔습니다.
앱
react-native, typescript로 구성된 앱은 앱에서 구동되는 광고용, 비지니스용 트랙킹 라이브러리들, 딥링크들을 사용하기 위해 구성되어 있고 앱의 가장 주요 기능 중 하나인 신정원 회원가입, 로그인, 스크랩핑을 위해 필요했습니다.
나머지는 웹뷰에서 구현되어 있기 때문에 사실 앱 UI는 아무것도 없는 빈 껍떼기에 불과한 상황이었습니다. 하지만 이 시점부터 react-native는 빠르게 업그레이드 되고 앱스토어, 플레이스토어의 정책 변경과 웹뷰가 많은 앱에 대한 심사가 까다로워지는 등 이슈들은 계속 생겨났습니다.
앱에 익숙하지 않고 스토어에 배포까지 해 본 적은 없어서 좀 더 앱에 익숙해지기 위해 열공하고 이슈도 해결해 나갔습니다. 직접 토이 프로젝트 앱도 스토어에 배포해 보고 테스트도 하면서 조금씩 앱에 대해 익숙해져 갔습니다.