저 멀디 먼 시골(?)에서 서울로 상경하여 개발자 생활을 한 지 어언 반 년.
그간 나는 무엇을 했을까?
정말 말 그대로 굴렀다.
나는 아무 것도 모르는 응애였지만, 스타트업의 특성상 뭔가를 하긴 해야했다. (심지어 인하우스 백엔드 개발자는 내가 처음이었다.)
온보딩? 없었다. 인하우스 사수? 없었다. 그래서 도망쳐야하나 생각도 했다. (현 시점에 새로 들어오시는 분들은 온보딩 절차가 다 있더라..부럽..)
CTO님을 제외한 시니어 분들은 외주 형태로 근무 중이셨다.
그걸 처음 알게 되었을 때, 사수 없는 회사에서 내가 잘 해낼 수 있을까? 하는 걱정이 굉장히 심했다...만 쓸데 없는 고민이었다.
분명 외주 형태로 근무하고 계셨지만, 누구나 이름만 들으면 알만한 회사에 재직 중이신 분들이고, 기술적 역량이 감히 넘볼 수 없을 만큼 높으시고, 티칭 마인드가 굉장히 좋으신 분들이셔서 굉장히 빠른 성장을 할 수 있었다.
심지어 일개 신입 나부랭이인 나에게 많은 신뢰와 권한을 주셔서 6개월이라는 짧은 시간동안 엄청나게 많은 것들을 경험해 볼 수 있었다.
사실, 처음 입사 후에 간단한 TODO리스트 API 서버를 만들고, CI/CD를 직접 구축해보는 과제가 있었다.
열심히 하려고 노력했다. 처음 사용해보는 프레임워크와 제대로 사용해보지 않은 언어로 무언가를 바로 만들어본다는게 솔직히 쉽진 않았다.
그래도 엄청나게 열성적으로 가르쳐주시고 꼼꼼하게 코드 리뷰도 해주셔서 얼레벌레 해쳐나가고 있었...던 도중 한 시니어분께서 허들을 요청하셨다.
~ 서비스를 만들건데 홍대님도 같이 해보시지 않으실래요?
회사 와서 공부만 하다 집에 가는게 양심에 찔리던 와중에 이런 제안을 받으니 조금 기뻤다.
'아, 내가 드디어 이 회사에서 쓸모 있는 무언가가 되겠구나.' 라는 생각이 들어 바로 수락했다. 그러지 말았어야 했..
나중에 알고 보니 이 회사에서 처음으로 내놓는 자체 서비스 팀에 들어가게 된 거더라. 출근 일주일 차 응애가 말이다.
그래도 다행히 내가 익숙했던 Java/Spring 스택으로 진행할 수 있게 해주셨고, 나는 끔찍한 실수를 또 저지르게 된다.
입사 전, 그러니까 부트캠프를 진행할 당시 나는 클린 아키텍처 뽕에 취해있었고, 이 프로젝트를 헥사고날 아키텍처로 설계하는 큰 실수를 범하게 된다.
나 혼자 진행하는 프로젝트라면 또 몰랐겠지만, 어떤 구성원이 합류하게 될 지 몰랐고, 그 구성원이 이 아키텍처에 익숙하리란 보장이 없었다.
(실제로 몇 주 뒤 새로 입사하셔서 같이 프로젝트를 진행하게 된 분께서 이 아키텍처로 인해 엄청나게 고통을 받으셨다. 이 자리를 빌려 사과의 말씀을..)
하지만 클린 아키텍처 뽕에 취해있던 나는 그런 건 신경쓰지 않았고, 그 프로젝트의 구조는 산으로 가기 시작하였다.
같이 프로젝트를 진행하는 시니어분을 비롯하여 이 아키텍처에 익숙한 사람은 나밖에 없었고, 관련 세미나도 제대로 이루어지지 않았기 때문에 당연한 결과였다.
서비스의 코어부분이 어느 정도 완성이 되었을 무렵, 드디어 배포 후 테스트를 해보기로 하였다.
배포는 기존에 회사에서 사용하고 있던 K8S(AWS EKS)에 진행하게 되었다.
사실, 난 AWS도 K8S도 사용해본 적이 없었다. (EC2 하나 만들어본 정도..)
하지만 해야했다. 왜? 해야하니까.
이 때 공부를 정말 열심히 했던 것 같다. 어찌 되었든 배포 관리를 할 수 있는 권한을 주셨고, 나는 기술적 욕심에 그걸 또 낼름 가져갔기 때문이었다.
1차 테스트가 끝나갈 즈음엔 그래도 나름 어디가서 나 쿠버 써봤다! 정도는 할 수 있겠다 싶었다. (할 줄 안다 X, 써봤다 O)
이렇게 아름답게 테스트가 종료되면 참 기뻤겠지만, 서비스 특성상 해외의 네트워크를 타게 되는 일이 생겼고, 해당 부분에서 네트워크 통신 속도로 인한 엄청난 병목이 발생하기 시작했다.
결국, 나는 아무것도 세팅되어있지 않은 해외 리전에 EKS를 하나 더 올리게 되었다.
이 작업을 하면서 가장 많이 들었던 생각이 이거다. 나는 말하는 감자다.
아는게 개뿔 아무것도 없었다. 그래도 해야했다.
Terraform을 사용해서 얼레벌레 해외 리전에 EKS를 배포하였고, 이제 한국 리전과 연결만 남은 상태였다.
처음 들어보는 용어들로 머리는 핑핑 돌고 있고, 계속되는 오류와.. 계속되는 실패와.. 기타 등등의 쓴맛을 맛보게 되었다.
하지만, 이 글에서 몇 번을 말했지만, 해야만 했고, 해냈다!
진짜 열심히 구르면 안 되는 건 없겠더라. EKS를 배포하고, CI/CD 플로우를 수정하고, Karmada를 사용해서 클러스터 간 연결도 하고, 모니터링 시스템 구축도 하고..
내가 해냈구나! 하는 행복감에 빠져있을 때, 또 다른 문제가 생기게 된다.
사실 아직도 해당 서비스는 실 사용자들에게 나가지 못 했다. 아직 테스트 단계인데, 서버비용이..말도 안되게 많이 나오기 시작했다.
'어느 정도의 트래픽을 견딜 수 있는가'에 대한 테스트를 진행하고 있었고, 이를 위해 Pod 수를 엄청나게 올려서 배포했었는데, 그게 문제였다.
결국 서버비용에 대한 압박 아닌 압박이 들어오기 시작했고, 이 문제를 해결해야했다.
그렇게 열심히 스트레스를 받아가던 도중, 한 시니어분께서 서버리스로 스택 전환을 해보면 어떻겠냐는 조언을 해주셨고, 또 실수를 저지르게 된다
(위 의견은 개인적인 의견입니다. 반박시 님 말이 다 맞음.)
서버비 스트레스를 열심히 받아가던 나는 Node.js + Serverless(lambda) 스택으로의 전환을 해야겠다고 생각했고, 이를 프로젝트를 같이 진행하고 계시는 시니어분께 말씀드렸다.
하지만, 반응은 회의적이었다. 현재 서비스가 나가지도 않았고, 지금 언어/아키텍처 전환을 하는 것 보다는 지금 있는 것을 빠르게 잘 사용해서 시장의 반응을 보는 것이 중요하다는 내가 전혀 생각하지도 못한 부분에 대한 지적이었다.
맞다. 나는 개발자고, 기술도 중요하지만, 일단 서비스가 돌아가는게 우선이다.
그 부분에 대해 전혀 고려하지 않고 있었던 터라 멍~ 하고 있으니 한 마디 더 하고 가셨다.
'그래도 진행하고자 한다면 홍대님이 책임지고 하셔야해요'
사실 이 말이 얼마나 무서운 말인지 모르고 위 사진에 나온 DM을 보내버리고 말았다. 세상에.
하지만 말은 이미 주둥이 밖으로 나가버렸고, 그 말에 대한 책임을 져야했다.
그래서 또 열심히 구르며 사용한지 너무 오래되어 가물가물한 노드부터, 사용해본적 없는 서버리스 스택까지 공부를 하고 있다.
(물론 개발도 동시에 진행중이다. 컨테이너 환경으로 배포되었던 프로그램들은 거의 포팅이 완료되었다.)
가끔 이런 생각이 든다. 내가 지금 잘 하고 있는 걸까? 잘 나아가고 있는걸까?
정답은 아무도 모른다. 어쩌면 정답이 없을지도 모른다.
하지만 오늘의 나는 어제의 나보다 나아지고 있다. 나아져야 한다.
어찌 되었든 많은 걸 배웠고, 많은 걸 배우고 있다. 신입으로서는 상상할 수 없는 많은 경험들을 해보았고, 많은 책임들을 지고 있다.
이런 것들이 너무 행복한 걸 보니, 잘 하고 있는지는 몰라도 잘 선택한 거 같기는 하다.
앞으로도 열심히 해야지.
앞으로도 열심히 굴러야지.
많은 경험을 해야지.
나는 부족한 사람이다. 다른 분들께서는 좋게 봐주셔서 그렇지 않다고 하시지만, 나는 부족한 사람이 맞다.
그럼에도 많은 신뢰와 역할을 주신 회사의 시니어분들과, 열심히 구를 때 같이 굴러주시는 회사의 다른 구성원분들 덕에 정말 행복한 생활을 하고 있다.
앞으로도 더 나은 사람이 되기 위해 더 열심히 굴러야겠다.
그럼, 안녕~
우리가 얼마나 무지한지 부딛히고 깨져보면서 더 커가는거라 생각해요~
(읽다가 또사고날…?했지만ㅎㅎ)