4년간의 회고
0년
2016년 가을에 군대를 전역하고, 2017년에 복학을 했다. 항상 가지고 있던 별 볼 일 없는 지방대 학생이라는 자격지심을 바탕으로, 2년 만의 학교생활은 회의감만 남기고 한 학기 만에 다시 휴학하는 것으로 마무리가 되었다. 돈이 없었던 것도 컸다. 이때가 2학년 1학기였는데, 사실 휴학을 하며 별생각이 없었다. 어떻게든 되겠지 싶었다. 아무튼 휴학하고 프리랜서로 짧은 코드를 짜주며 돈을 받기도 했었고 아르바이트를 하기도 했었다. 그러다가 페이스북에서 어쩌다 보게 된 넥슨 상반기 공개채용 공고를 보고 '한 번 해볼까?'하면서 후다닥 쓴 이력서가 붙어버렸고 어쩌다 보니 인턴을 거쳐 정직원이 되었다. 그렇게 내 개발자 커리어가 시작됐다.
1년
처음 1년은 정말 좋았다. 회사의 문화와 복지, 그리고 팀원 모두 만족했다. 팀에 개발자가 부족해, 혼자서 이것저것 찾아보며 문제를 해결하는 시간이 많았다. 사수가 팀을 떠나고 나 혼자 개발을 하는 기간도 있었다. 혼자서 서비스를 만들긴 해야 하니 이런저런 고민을 하며 많은 시도를 해보았고, 문제를 해결하며 성장한다는 느낌을 받았다.
중간에 프론트엔드 개발자분이 합류하셔서 나 혼자 모든 부분을 개발하는 일은 적어졌지만, 그래도 사람이 부족한 건 마찬가지였다. 그렇게 1년이 지나니 갑자기 길을 잃은 기분이 들고 '내가 잘하고 있는 게 맞나?'라는 의문이 들었다. 이 의문은 여러 곳에 적용될 수 있지만, 당시에는 나의 개발자로서의 성장, 하드 스킬에 대한 부분이었다. 개발을 하다보면 기술적인 부분에 대해 결정을 내려야하는 경우가 있었는데 ‘이 결정이 옳은가’에 대한 답을 내려줄 사람이 나밖에 없었다. 어두운 터널속에 들어온 듯, 막막한 기분이 밀려왔다.
“나는 이제 일한 지 1년이 막 지났는데 내가 하는 결정이 옳을까?”
그래서 입사하고 1년 반 만에 시니어가 있는 회사를 찾아 떠났다.
2년
그 다음 회사는 핀테크 스타트업이었다. 좋은 동료분들을 정말 많이 만났다. 여기서 만난 분들은 요즘도 종종 연락한다. 사람 빼고 다 안 좋은 회사.. 어쨌거나, 회사에서 항상 야근하는 사람들이 눈에 보였고 그 원인이 기술부채라는 것을 파악했다. 사람도 부족했지만, 더 근본적인 원인은 말도 안 되는 개발/배포 프로세스를 가진 기술 부채였다. 프론트엔드 개발을 하는데 로컬에서 그 결과를 확인할 수 없다니. 말이 안 된다.
더 놀라운 것은 분명히 회사에서 주로 쓰는 기술이지만 사람들이 기피한다고 채용 공고에도 적지 않고 채용 프로세스 내내 한 마디도 안 꺼내는 기술이었다. 뭔가 잘못 돌아감을 느꼈다. 그래서 동료분들과 의논하여 기술 부채를 걷어내기로 했다. 그렇게 계속 작업을 하다가, 대표가 ‘연차가 낮은’ 몇 명의 개발자만 따로 불러 의견을 듣는다고 회의를 소집했다. 회의라는 것은 보통 양방향 소통인데, 막상 들어가 보니 단방향 소통이더라. 작년 회고에 적었던 그 사건이다. 회의가 끝나고 바로 한 달 뒤에 퇴사하겠다고 이야기를 했다. 10개월 만에 또 이직을 하게 되었다.
여담으로, 학교는 계속 휴학을 하다가 이때 쯤 자퇴했다. 한국에서 대졸이 아닌 고졸로 사는 것이 괜찮은지는 아직도 잘 모르겠고 아직도 자격지심이 남아 있지만, 분명한 건 내가 학교를 계속 다니면서 배운 것보다 회사에서 배운 것이 훨씬 많다는 것이다.
3년
머신러닝 스타트업으로 이직했다. 백엔드로 입사를 했고 MLOps 커리어로 전환을 생각하며 약 반년간 MVP 프로덕트 개발에 참여했다. 열띤 토론을 지향하는 회사 분위기와 능력 있는 사람들, 내 일에 모두 만족했다. 그런데 MVP 프로덕트를 완성하니 일이 없었다. 회사에 더 오래 계셨고, 잘하시는 분들이 대부분의 태스크를 맡으셔서인지, 내가 일을 맡을만한 역량이 없다고 판단해서인지 아니면 정말 일이 없었는지는 잘 모르겠다. 아무튼 계속 일을 안 하니 뭐라도 해야 할 것 같아서, 한 분의 프론트엔드 개발자분이 모든 업무를 하셔서 그 일을 조금씩 도와드리니 프론트엔드의 업무 비중이 점점 더 커졌다. 그렇게 일을 하다가 연말인가 연초쯤에 조직 개편을 한다고 해서 봤더니 개발팀이 도메인별로 쪼개지고, 백엔드 개발자였던 나는 프론트엔드 팀으로 이동이 되어 있었다. 순간 뭔가 잘못됨을 느꼈지만, 난 아무런 액션도 취하지 않았다. 왜 그랬을까.
아무튼, 프론트엔드 개발팀에서 많은 것들을 해봤고, 또 해보려고 했다. 신입분들을 가르치고, 팀에서 만드는 서비스에 맞게 기술 스택을 다시 정하고, 팀의 생산성과 코드 퀄리티를 높여보려고 이런저런 제안과 시도를 했다. 그 이전에는 단순한 린터 하나 안 들어가 있었다. 그렇게 4개월쯤 일 하니 '팀에서 나만 이런 것(생산성, 코드 퀄리티, DX 같은 것들)에 관심을 가지나?'라는 생각이 들었다. 내가 제안을 하면 다른 사람들이 장단을 맞춰주는 느낌이 강하게 들어 스스로 '내가 여기에 오래 있게 된다면, 뭔가 의미 있는 것을 이뤄낼 수 있을까?' 라는 질문을 했고 부정적인 결론을 내렸다.
다시 이직 준비를 하기 시작했다.
이직을 하는 과정에서 부족함을 너무 많이 느꼈고, 운이 좋게 두 포지션에 합격했다. 진행 중인 곳이 더 있었지만, 당시에는 너무 괴로워서 최대한 빠르게 옮기고 싶었다. 한 곳은 유명한 OTT 서비스 회사의 백엔드, 한 곳은 지금 다니는 데브시스터즈의 프론트엔드 포지션이었다. 계속 백엔드를 했고 나의 정체성을 백엔드 개발자라고 생각하였던 나였기에 과거의 나라면 당연히 백엔드 포지션으로 이직했겠지만, 거의 반년 동안 프로덕션에서 백엔드 개발을 못 한 상태였던 나는 자신감이 떨어져 있었다. 잘할 자신이 없었다. 결국, 도피하는 느낌으로 프론트엔드 개발자가 되었다.
4년
데브시스터즈에서의 약 1년은 정말 바빴고 즐거웠다. 일이 넘쳐난다. 고쳐야 할 것도 많고 해야할 것도 많고, 시도해보고 싶은것도 많았다. 입사한지 얼마 되지 않은 사람이 이래도 되나 싶을 정도로 바꿔야겠다고 생각한 부분은 다 바꾸자고 이야기를 했다. 실제로 여러 시도를 해보았고 그 중 일부는 팀원분들도 만족하는 결과가 나왔다고 생각한다. 하지만 아쉬운건 역시 현실적 문제에 부딪쳐 더 많은 시도를 해보지 못했다는 것..
프론트엔드로 풀타임 개발을 제대로 해보니, 생각보다 변수가 너무 많았다. 내 코드의 버그는 예삿일이고 오픈 소스 라이브러리의 버그와 웹 브라우저의 버그 같은 예상치 못한 난관이 너무 많았다. 오픈 소스 라이브러리는 PR 올려 고치고, 배포에 반영 될 때 까지는 patch-package를 써서 어떻게든 돌려막으면 되었지만, 웹 브라우저 버그는 기획과 개발 방향을 바꿔야했다. 이러한 일을 여러번 겪으니 프론트엔드 개발에 대한 회의감이 들었다. 원래 다 이렇게 하나?
또 백엔드 개발을 할 때는 함수의 사이드 이펙트를 최소화해서 TDD를 하던 것이, 프론트엔드 개발을 할 때는 정반대였다. 많은 경우 사이드 이펙트를 수반하는 프론트엔드 컴포넌트의 특성상 TDD를 해도 이걸 TDD라고 말 할수 있나라는 괴리가 들기 시작했다. E2E 테스팅이 더 효과적이고 실용적이겠지만, 아무튼 변명을 하자면 업무 일정상 TDD를 적용할만한 시간도 없었다.
바쁘게 일을 하다가 연말에 가까워질때즈음 넥슨에서 들었던 감정이 다시 들기 시작했다. 팀에 프론트엔드 시니어라고 할만한 사람이 없으니 내가 그와 비슷한 역할을 했는데, 그럼 나는 누구한테 배워야하나 싶었다. 그러다가 어느 날 다른 팀 팀장님이 백엔드 개발자가 부족하다는 말을 하셨다. 매력적인 서비스를 만들고, 트래픽도 많고 관심있는 언어를 주로 사용하는 포지션이었다. 관심 있다고 말씀을 드리고 몇 번의 미팅을 하니 팀을 옮기게 되었다. 그렇게 내년부터는 다시 백엔드 개발자로 일을 하게 됐다. 사실, 내가 익숙한 언어를 쓰지도 않고 백엔드 개발을 1년 넘게 안했으니 당장 잘 할 자신은 없는데 2022년 회고를 쓸 때 쯤이면 좀 잘 하지 않을까?
여담
신입때부터 지금까지 흔히들 말하는 백엔드+프론트엔드 다 하는 풀스택으로 일하다보니 내가 어떤 개발자인가 라는 의문이 있다. 백엔드라기엔 4년 내내 백엔드에 집중한 사람에 비해서 부족하고, 프론트엔드라기엔 4년 내내 프론트엔드에 집중한 사람에 비해서 부족하다고 생각하니까. 그래서 남들이 나에게 풀스택이라 하면 자조 섞인 농담으로 ‘풀스택은 잘 하는게 하나도 없는 사람을 말해요’라고 하기도 한다. 그리고 이제는, 내년부터는 하나에 집중해야 될 때가 아닌가 싶다. 잘 하고 싶다.
여러분들 풀스택 하지 마세요! 다 의미 없습니다!