김맥스 블로그

프론트엔드 개발자 대학생의 14개월 회사생활 회고

복학했습니다!

최근 두 곳의 스타트업에서 프론트엔드 개발자로 14개월여의 근무를 마치고 퇴사했습니다. 그리고 이번 학기 다시 복학했습니다. 첫 6개월은 학점을 인정받는 학교 현장실습으로, 나머지 8개월은 시드 단계의 초기 스타트업에서 정규직으로 일했습니다. 이번 포스팅에서 잠깐의 회사생활을 회고합니다.

저는 대학교 4학년이고 내년에 졸업 예정입니다. 2019년 초에 처음으로 개발을 시작했고, 개발로 돈받고 일을 한지는 이제 2년이 좀 넘어가네요. 외주 개발, 개인 프로젝트, 회사 근무 경력이 있습니다.

왜 졸업을 늦추고 회사에서 일을 했나

  • 개발을 늦게 시작한 편이라서 졸업하기 전에 개발을 더 익히고 공부하는 절대적인 시간이 더 필요했습니다. 이대로 4학년이 될 자신이 없었달까요.
  • 스타트업에서 일하는 것이 저한테 잘 맞는지 알고 싶었습니다. 스타트업에서 일해보는게 가장 빠르게 알 수 있는 방법이라 생각했습니다. 제가 무슨 회사를 좋아하고 어떤 근무환경을 좋아하는지 충분히 알아볼 수 있는 시간도 가지고 싶었습니다.
  • 그러기 위해서 1년 동안 2개 정도의 조직을 경험해보는게 어떨까 - 하는 대충의 계획을 세웠습니다.
  • 돈을 좀 모아놓고 졸업을 하고 싶었습니다.

근무했던 회사들

첫 번째 회사(6개월)

학교 현장실습으로 한 학기동안 인턴으로 근무하게 되었습니다.

중국과 한국에서 사업하는 글로벌 챗봇 솔루션 스타트업으로 챗봇뿐 아니라 웹 전반에 걸친 SI도 하는 회사였습니다. 시리즈 A 단계에 개발자 규모는 15명 내외로 확실하게 보고 배울 수 있는 3년차 사수분이 계셔서 입사를 결정하게 되었습니다. 그 당시에는 진짜 사수를 너무너무 만나고 싶었습니다.

회사 자체 커머스와 대기업, 중견기업의 SI 프로젝트의 프론트엔드를 Vue.js를 이용해 개발했습니다.

가장 큰 소득은 회사 내의 정말 다양한 주체들과의 협업 경험이었던 것 같습니다. PM, 기획자, 디자이너, 백엔드 개발자, 동료 프론트엔드 개발자, 회사 상하이 지사의 중국인 개발자, 대기업 직원(클라이언트측)과 같이 일을 해나가면서 소통과 협업을 어떻게 하는게 좋을지 계속 생각해보고 고민했었던 것 같습니다. 영어 말하기는 꼭... 언젠가 시간을 내서 공부해볼 것이라는 결심을 하기도 했습니다.

입사 당시 회사가 대기업 사옥 내부 사무실에 입주해서 일을 하고 있었는데, 그 곳에서 큰 조직은 어떻게 일을 처리하고 대기업에 다니는 사람들은 어떻게 일을 하고 있는지 간접적으로나마 경험할 수 있었습니다. 회사 경험이 전무한 저에게는 그것도 좋은 경험이었던 것 같아요.

효율적인 개발을 위한 NPM 라이브러리를 만들기도 했고, 퇴사 직전에 프론트엔드 사내 위키를 만들기도 했습니다.

두 번째 회사(8개월)

첫 번째 회사에서는 SI 프로젝트를 많이 하다 보니 클라이언트가 의뢰한 것 위주로 할 뿐, 하청업체 개발자인 제가 비즈니스에 끼칠 수 있는 영향은 당연히 전무했습니다. 그게 갈증으로 작용해서 제가 의사결정에 직접 참여할 수 있는 더 작은 팀에서도 한 번 일해보고 싶다는 생각을 하게 되었습니다.

두 번째 회사는 패션 프리오더 플랫폼을 서비스하는 시드 단계의 스타트업입니다. 패션 제품을 만들고 싶어하는 디자이너를 유치하여 프리오더의 형식으로 소비자와 매칭시켜주는 플랫폼입니다. 저는 능력이 부족함에도 3명 규모 프론트엔드 개발팀을 리드했습니다. 초기팀이라 가능했던 것 같습니다.

설계, 컴포넌트 구조, 상태관리 방법, 배포 자동화, 모바일 앱 개발 등등 책임과 역할이 많아진만큼 다양한 고민들을 했었습니다. 라이브되고 있는 서비스를 유지보수하면서 느끼는 두려움과 요구되는 신중함, 빠르게 요구사항이 바뀌는 초기 스타트업에서 어떻게 협업하고 개발해야 효율적으로 할 수 있을지 계속 생각했습니다. 주니어 레벨이라 잘 해내지는 못했지만 개발자들이 다 같이 일을 잘 하고, 다 같이 성장하는 방법은 뭘까 생각해볼 기회도 있었고요.

땅 짚고 헤엄치는 것을 배웠습니다. 시니어가 없는 초기 개발팀이라 제가 한 판단이 과연 정말 적확했는지, 우리 팀이 나은 방향으로 가는 것인지 정확히 알 수가 없었는지라 지속적인 공부와 리서치를 계속했었습니다. 그 과정에서 사수가 없어도(있었으면 더 좋았겠지만ㅜ) 어느 정도는 스스로 배우고 익혀 프로덕트에 보탬이 될 수 있다는 자신감을 약간 얻었습니다.

계획한 것을 다 하고 나오지는 못해서 아쉽지만, 그래도 짧은 기간동안 서비스가 성장하는 것을 보며 보람을 느꼈던 것 같습니다. 시리즈 A 투자도 잘 되었으면 좋겠습니다,,,

동료들이 정말 좋은 분들이었습니다. 모두 팀에 큰 애정을 가지고 간절히 팀의 성장을 바라며 일하는 활기찬 스타트업이었습니다.

퇴사 이유

퇴사를 하게 된 가장 큰 이유는 빨리 대학교 졸업을 해서 신분을 좀 더 자유롭게 만들고 싶었기 때문이었습니다.

부가적으로는 좀 더 제가 혼자 공부할 수 있는 시간을 갖고 다시 구직시장에 나가고 싶은 마음이 있습니다. 비전공자라서 CS 지식도 부족하고요. 그동안 프로덕트를 빠르게 만드느라 정확히 이해를 하지 못했던 지식들을 정리할 시간도 좀 더 필요하다고 생각했습니다.

물론 계속 일을 할 수도 있었겠지만, 스스로 확실히 준비되었다고 생각하는 상태에서 무언가 하고 싶어하는 편입니다. 성격이 그렇습니다. 졸업 전에 마지막으로 학교를 다니는 시기가 어쩌면 혼자 편하게 스스로의 계획에 맞춰 공부할 수 있는 마지막 시기가 아닐까...하는 생각도 들었습니다.

느낀 점

직장에서의 '나'

당연한 이야기지만 이전에는 한번도 '직장에서의 나'를 경험해본 적이 없었습니다. 회사를 다니면서 어떻게 일을 하는 것을 좋아하는지, 개발자에게 좋은 업무 환경은 어떤 것인지 생각해볼 수 있었습니다.

스타트업에서는 업무 체계가 완고히 정해져있지 않습니다. 그래서 스타트업에서 가능한 새로운 업무 방법을 자유로이 도입해보기도 하면서 가장 효율적인 일처리를 찾아가는 과정이 재미있기도 했었던 것 같습니다.

프론트엔드 개발자가 아닌 그냥 개발자

회사에 다니면서 주로 하던 웹 프론트엔드 개발 뿐 아니라 모바일 앱 개발, 인프라 설계, CI/CD 구축을 하면서 다양한 기술들을 접해보게 되었습니다. 이것저것 해보면서 얻은 깨달음인데요.

프론트엔드 개발자라고 해서 회사에서 프론트엔드만 쭉 할 것이라는 보장은 없습니다. 작은 회사면 더더욱 그렇고요. 결국 소프트웨어를 만드는 개발자로서, 주어진 어떤 일이든 빠른 시간에 학습하여 일정 이상의 퀄리티를 낼 수 있도록 소프트웨어를 만드는 기본기들을 제대로 알고 있어야 한다고 생각했습니다.

또한 개발팀에서 어떤 일이 일어나고 있는지 잘 파악하는게 팀의 생산성과 효과적인 논의에 꼭 필요하다는 생각도 했습니다. 프론트도 백엔드와 인프라를 이해해야합니다. 공부는 끝이 없고 개발 세계에서 몰라도 되는건 없는 것 같습니다.

저는 "저 이거 못(안)해요.", "저 이거 몰라요." 라는 말 안 하고 싶습니다. 프론트엔드 개발자가 아니라 그냥 개발자가 되고 싶습니다.

아직 팀을 이끌기엔 나는 너무 주니어다

저는 아직 제 성장에 목마른 주니어 개발자입니다. 그런데 두 번째 회사에서는 프론트팀을 리드하는 포지션을 맡았었습니다. 여기서 괴리가 생겼습니다. 저는 팀을 잘 돌보지 못했습니다.

팀 전체의 생산성을 최대로 끌어올리지 못했습니다. 업무 분배에 있어 제가 하고 싶은 일, 제가 성장할 수 있는 일이 생기면 너무 하고 싶었습니다. 제가 아닌 팀을 위한 업무 분배 방식을 고안하기 보다는 제 성장에 도움이 되는 방법을 택하고 싶었습니다. 팀의 생산성을 우선하여 생각하는 태도가 부족했습니다.

팀 전체가 성장할 수 있도록 하지도 못했습니다. 팀원의 능력에 대해 자세히 파악하고, 이런 태스크는 이 분에게 맡기면 그 분이 더 성장할 수 있겠다는 식의 생각을 하지 못했습니다. 팀 전체가 성장할 수 있도록 같이 공부를 해본다거나 하지도 못했습니다. 그저 다른 분들도 알았으면 좋겠는 기술 내용을 정리한 문서들을 몇 번 공유한 게 다 인것 같습니다.

사실 주니어여서 그렇다, 큰 그림을 그리지 못해서 그렇다는 말이 핑계일 수도 있습니다. 그냥 제가 능력이 부족한 것일 수도 있겠죠. 능력과 경력을 더 쌓아서 팀을 돌볼 수 있는, 팀과 함께 성장할 수 있는 개발자가 무척 되고 싶습니다. 팀원들에게는 여러 면에서 죄송했습니다...

초기 스타트업은 안 좋은 의미로 주니어가 있기 편하다

초기 스타트업들은 실력 있는 개발자 구인이 매우 어렵습니다. 회사가 눈을 낮춥니다. 당장 일을 할 수 있다면 경력이 부족한 주니어 개발자들도 비교적 쉽게 채용합니다.

초기 스타트업들은 당장의 성장을 위해 소프트웨어의 탄탄한 설계 보다는 빠른 기능 확장과 보여줄 수 있는 프로덕트들이 빠르게 나오는 게 더 중요합니다. 그 과정에서 문제를 미래에 좋지 않은 방식으로 해결해도, 해결만 된다면 팀과 회사에는 일을 잘 해낸 것이 될 수 있습니다. 시니어가 없어서 이런 방식이 좋은 방식이었는지 미리 알 수도 없습니다. 문제가 생기고 나서야 방법이 잘못되었음을 깨닫습니다.

물론 이 과정에서도 시행착오를 반복하며 성장이 가능합니다. 하지만 주기가 너무 느리고, 최악의 경우에는 일을 하는 방식이나 기술에 대한 탐구를 하지 않은 채 늘 해왔던 방식으로 개발을 계속 해나갑니다. 그러면 발전은 없는데 회사에서 하는 일 자체는 어찌어찌 잘 처리하고 있으니 어찌어찌 회사를 잘 다닌다고 생각하기 쉽습니다. 일이 많을 수는 있지만 비슷한 방식으로 처리하면 되니 편한 거죠.

이런 관점에서 초기 스타트업은 주니어 개발자에게 좋은 일자리는 아니라고 생각이 됩니다. 빠르게 깨지면서 성장할 수 없습니다. 그래서 초기 스타트업의 주니어는 주도적으로 공부하려는 노력과, 내가 한 설계나 코드보다 더 좋은 방법이 있는지 꾸준히 찾는 태도가 정말 중요하다는 생각을 하게 되었습니다.

제가 잘 했는지는 모르겠습니다. 공부와 검증을 계속해서 해보기는 했지만 100프로의 출력으로 임했냐고 물어보면 자신이 없습니다. 내가 그때 그렇게 하지 않았다면, 좀 더 빨리 무언가를 적용했다면 하는 생각은 계속 합니다. (매우 소심하고 이불킥을 많이 하는 성격이라 그렇습니다) 그저 계속, 꾸준히 공부와 검증을 어디서든 이어 나가야겠습니다.

'나'와 회사를 위한 개발

위 단락에서 언급했듯 초기 스타트업은 탄탄한 소프트웨어보다 기능의 확장과 빠르게 결과물이 나오는 것이 더 중요합니다. 구조를 개선하거나 리팩토링을 하고 싶어도 태스크를 잡고 스프린트로 진행하는 것을 CTO나 개발 팀장이 허용하지 않는 경우가 많았습니다. 우선순위가 높은 다른 일을 더 빨리 해야하니까요.

당면한 상황은 이해가 되면서도, 마음 속으로는 아쉬웠습니다. 앞으로 이런 구조에 계속해서 기능을 추가해 나간다면 개발 생산성이 떨어지는 것은 명백했기 때문입니다. 다른 이유로는 좀 더 좋은 구조라고 생각했던 것을 적용해보면서 성장하고 싶기도 했고요.

가능했던 건 아주 천천히, 조금씩 하는 개선이었습니다. 특정 기능과 관련된 부분을 작업할 때 아주 조금씩 조금씩 개선된 구조를 적용하는 방식으로 리팩토링을 진행했습니다. 아니면 제가 일을 좀 더 하거나 하는 식으로 시간을 내어 리팩토링을 진행하기도 했습니다.

돌아보면 리팩토링이 회사에 도움이 되겠지만, 저를 위해서기도 했던 것 같습니다. 제가 좀 더 나은 구조를 실험하고 프로덕트를 개선할 수 있도록, 그로 인해 성장할 수 있도록 스스로가 계획을 짜서 개발을 진행했습니다.

물론 태스크로 잡고 해야할 일이 바쁜 와중에도 이런 방식의 리팩토링을 가능하게 해준 회사에게 감사합니다. 하고 싶은 구조 개선이 있다면, 회사의 성장에 도움이 되는 방식으로 리팩토링이나 구조 개선을 회사에 제안해보는 것도 좋은 방법인 것 같습니다. 물론 본인뿐 아니라 회사에도 명백하게 도움이 되어야 하고, 회사가 납득할 수 있는 선에서 태스크가 처리되어야 합니다.

스타트업은 불편하고 치열한 노동 현장이다

회사 생활을 직접 해보기 전에는 스타트업에 대해 약간 낭만 비스무레한게 있었습니다. 로켓에 올라가 엄청나게 빠른 성장을 경험해보는 것 같은거요.

하지만 제가 두 번째 회사에 입사했을 시점 즈음에 회사는 첫 번째 데스밸리를 통과하고 있었습니다(...)

회사 분위기가 좋지만은 않았습니다. 많은 분들이 퇴사했고 실적은 빠르게 올라가지 않았습니다. 성장하는 지표를 볼 수 있는 상황은 아니었고, 지표를 성장시키기 위해 투자를 하는 시점에 가까웠습니다. 개발팀은 새로운 프로덕트를 지금 생각해보면 말도 안되는 데드라인 안에 만들어야 했고 점점 지쳐갔습니다.

그렇게 4-5개월을 보냈을 때 회사는 다시 성장하기 시작했습니다. 회사를 찾는 디자이너가 늘었고 개설되는 프로젝트가 역대 최다를 찍었습니다. J커브를 그리는 정도는 아니었지만 정체기를 끝내고 다시 궤도에 오른 정도는 되었던 것 같습니다. 퇴사할 때 즈음에는 시리즈 A 투자자를 찾을 정도는 되었습니다.

성장하는 로켓을 만들기 위해서는 그만큼 고생도 해야한다는 것을 느꼈습니다. 스타트업의 모든 순간이 다 성장일 수 없는 듯 합니다. 또한 늘 결핍과 함께, 존재하는 리소스를 최대한으로 이용하며 조금이라도 성장하기 위한 노력을 해야만 위로 올라갈 수 있다는 것도 느꼈습니다. 그 과정에서 구성원들은 고생을 많이 합니다.

이런 업무 환경이 누군가에게는 견딜 수 없는 환경일 수 있다는 생각도 합니다. 불편하고 치열합니다. 저한테는 그래도 굉장히 도전적인 환경이었기 때문에 안팎으로 배울 것이 많았던 것 같습니다. 언젠가 다시 한번 초기 스타트업으로 돌아와 일해보지 않을까 생각합니다. 물론 경력+실력을 좀 더 많이 쌓은 채로 말입니다.

맺는 말

14개월간의 회사 생활을 돌아보았습니다. 짧은 시간에 참 많은 것들을 느끼고 배웠던 시간인 것 같습니다. 여전히 갈 길이 멉니다. 계속해서 실력을 쌓고 공부해 미래에 속할 조직에서도 팀과 사람들에게 모두 도움이 되는 개발자가 되고 싶습니다.

저와 함께 일했던 분들께 모두 감사를 전하고 싶습니다. 덕분에 많이 배웠고 더 좋은 개발자가 될 수 있었습니다. 항상 건승하시고 대박나셨으면 좋겠습니다!


Written by 김맥스