기술회사 디거에서 CTO로 살아남기
학사를 졸업하고 대학원에서 석사과정을 밟으면서 스스로 연구에 대한 회의를 많이 느꼈었다. 정답없는 도전과 끊임없는 실험은 열심히 상호작용을 해야하는 나의 특성과는 매우 달랐기 때문이다. 무엇보다 내가 하는 일이 바퀴의 재발명과 같다는 생각에 지속적인 괴로움을 느꼈던것 같다.
그래서 학교에서 주관하는 창업 사업에 대해 많은 관심을 가지고 지켜봤다, 물론 학사때 친구들과 함께 스타트업을 결성하여 실제 게임을 개발하여 출시한 경험때문에 더 관심있게 공고를 봤던것 같다. 그렇게 연구실 창업이라는 명목하에 교수님과 동료 연구원들을 열심히 설득하여 함께 코파운더로 주식회사 디거를 설립했다.
13년도 말부터 외주를 받아 다양한 서비스를 개발하고 출시했던 경험때문에 이번엔 할 수 있다는 바보같은 생각을 가지고 있었다. 또 쓸대없고 한없이 부족한것을 전혀 알지 못했다. 지금 생각해보면 그때 난 서비스란 그저 작동하고 사용자가 사용만 하면 된다는 무지한 생각을 가지고 있었다.
CTO란 회사의 기술을 담당하고 전반적인 서비스의 목표를 정해나가는 사람으로서 책임이 막중한 자리임에도 불구하고 이런 부족한 생각에 단순하게 즐겁게 일을 했었던것 같다.
처음 1년간 회사의 서비스방향은 갈대같이 변하고 명확한 목표없이 다양한 과제를 수행하며 흘러가 버렸다. 연구실에서 발전했던 회사는 기존 관성에 의해 지속적으로 국가과제를 따내기위해 움직였고 회사의 비전을 갉아 먹기 시작했다.
그쯔음부터 였는지 다른 회사의 대표님과 이야기도 하고 다른 회사에 대해 찾아보면서 회사의 생존에 대해 매우 부정적인 인식을 가지게 되었다. 물론 나를 비롯해 많은 직원들이 비슷한 생각을 가졌고 그때부터 생존을 위해 우리만의 서비스를 광적으로 찾아나서기 시작했다. 뜻이있으면 길이있다는 말은 정말 거짓말이었다. 우리는 성공에 대한 뜻이 있었지만 죽음을 위해 달려가는것만 같았다.
머리를 싸매고 고민하던 중 ML Ops라는 아이템으로 서비스를 기획하면서 한줄기 빛을 본것과 같았다. 백엔드 1명 프론트 2명 풀스택 1명 디자이너 2명으로 이루어진 디거의 개발팀은 미친듯이 개발에 매진했다. 우리의 서비스를 개발한다는 즐거움때문이었는지 진짜 고민하나 없이 6개월을 달렸다. Java, JS, Python간 서비스 구조를 설계하고 개발을 수행했는데 지금 생각해도 큰 그림은 잘그렸고 서비스간 유기적인 구조도 잘 구현하여 간결하고 확실하게 작동할 수 있도록 구현했다. 지금 생각해보면 그게 다였다. 기술적한계는 명확했고 이 시기의 난 CTO로써 낙제점을 받아 마땅하다고 생각한다. 물론 그 당시에는 스스로 이렇게 만들었다는거에 훌륭하다 생각했고 주변에서도 어떻게 만들었냐고 대단하다는 이야기를 많이 들었기 때문이다. 우물안 개구리고 그 우물의 벽이 높아졌을 뿐이었는데 말이다..
회사는 직원들이 아무리 노력한다고 해도 오너의 역할이 매우 중요하다. 영업에 대한 의지와 돈을 벌어야 한다는 의지는 오너가 아니라면 할 수 없다. 딱 디고의 결말이 그랬던것 같다. 디고는 사장님이 원하는 서비스가 아니었다. 직원들의 아이디어와 힘으로 끌고왔던 프로젝트였기에 서비스가 완성되기 시작하자 사장님의 역할이 중요해졌다. 하지만 디고는 빛을 보지 못했다. 사장님의 부정적인 태도에 의해 개발팀의 의지도 무너져 내렸다. 이건 사장님의 잘못도 기술팀의 잘못도 아니었다. 단지 시작이 잘못된것일 뿐이었다. 디고는 그렇게 프로젝트가 종료되었다.
이전 단락에서 난 CTO로 낙제점이라는 말을 했는데 이런 생각을 하게된 계기는 면접을 보기 시작하면서이다. 나는 전문연구요원을 수행해야했고 그런 이유때문에 다양한 회사에서 면접을 보게 되었다. 물론 광탈… 꽤많은 회사에 지원하고 면접을 봤지만 전부 탈락했다. 나름대로 자부심을 가지고 있던 나의 자존심은 와장창 무너져 내렸다. 나의 자존심이 무너지면서 진심으로 스스로에 대한 성찰을 하는 계기가 되었다.
변명이라면 변명이지만 난 지금까지 게임개발자로써 커리어를 쌓아왔었고 본질보다는 구현에 초점을 맞춰 공부를 해왔다. 이런 특징은 좋은 점은 물론 분명히 있다고 생각한다. 디고라는 서비스를 개발하면서 본격적으로 게임에 대한 미련을 버리고 풀스택이라는 목표를 다시 세웠다. 하지만 그놈의 관성에 의해 난 해서는 안될 실수를 저질렀다.
컨셉과 본질을 잃어버린 기술사용
내가 저지른 실수이다. 난 JavaScript, TypeScript, React, SPA 등등 사용한 모든 개념과 기술의 본질을 무시한채 개발을 진행했다. TDD, DDD, BDD등 서비스를 위한 이론이나 개념도 탐구하지 않고 받아들이지 않았다. 그저 구현 하나만을 보고 진행했었다. 물론 지금 당장은 괜찮았을 수 있다. 하지만 이러한 기술부채는 결국 큰 문제를 터트렸을 것이다. 내가 CTO에 대한 역량을 충분히 갖추지 못했기 때문이었다.
지금은 그때와 완전 다른 시각을 가지게 된것같다. 아니, 다르다기보다 조금더 기술에 대한 책임감을 가지고 본다고 생각하는 것이 맞을것 같다.
해당 포스팅은 정말 쓸게 많은것 같다. 이번 글은 여기서 마치지만 사실 최근에 CTO로서, 한명의 개발자로서 느낀것도 많고 부족한 점도 많이 느끼고 있다. 그런 부족함과 갈증, 고민들을 지속적으로 공유하고자 한다. 물론 나의 CTO생활이 그렇게 많이 남지 않았지만 (군대의 압박…) 있는 동안 훌륭한 팀을 구성하려고 한다. 또 나 스스로도 어느 회사에 가더라도 훌륭한 개발자, 인간, 관리자로 불리고 싶다.