2022년 + 개발입문 1주년 회고

김재만·2023년 1월 9일
0

회고에 앞서

불과 몇 시간 전까지, 회사에서 CES 2023에 참가한 덕에 꽤나 빠듯한 일정을 소화했다. 그 핑계로 한주 늦은 1년 회고를 써본다. 개발자로 취업하고 근무한 첫 해이기도 하지만, 내일이면 부트캠프 시작일로부터 1주년이기도 하다. 정말 순식간에 지나버린 느낌이면서도, 돌아보면 많은 변화가 있었다. 확실히 작년의 나로서는 상상조차 못할 모습으로 지내고 있다.

사실 매 달마다 돌아보면, 지난 달의 내가 생각하지 못한 만큼 바뀌어왔다. 물론, 항상 긍정적인 방향이었던 것은 아니지만 말이다.

1월

상황

1월에 가장 중요한 일은 부트캠프의 시작이었다. 지난달까지의 나는 끝까지 방과후학교 기타수업과 예술교육 수업의 마무리로 정신 없는 주간을 보냈고, 여러가지 부트캠프를 재보고 있었다. 고민 끝에 가장 빨리 시작할 수 있는 항해99에 지원했고, 사전 테스트를 기다리고 있었다. 웹 개발에 입문하는 방식과 선택지(프론트/백, 언어, 도메인 등)에 대해 지식이 많지 않았고, 때문에 상당히 불안했다. HTML, CSS 공부와 거의 뜬구름 잡는 수준의 JS(Jquery) 공부를 했고, 프론트엔드와 백엔드의 역할조차 구분하지 못했기에, 내가 과연 프론트엔드에 맞을지 조차 결론짓지 못했다. 더군다나 코로나로 인해 정지되어있는 기간 동안 루틴은 전부 무너졌고, 실패의 학습 반복되었다. 개발자로의 전향도, 부트캠프의 수료도 장담하지 못하는 상태였다.

행동

당시에는 전혀 몰랐지만, 사전 테스트 이전에, 사전 학습기간이 있었다. 때문에 뒤처진 만큼 급하게 왕초보 풀스택 강의를 들었다. 테스트 결과 때문에 상당히 마음 졸였지만, 합격하고 부트캠프를 시작했다. 공지로 심화반 지원자를 받았는데, 박치기 한 김에 제대로 하자는 생각으로 덜컥 지원했다. 1월 10일자로 일주일이 채 되지 않는 기간동안 미니프로젝트를 하고, 그 이후에는 알고리즘 주차가 이어졌다.

결과

많은 걱정을 안고 시작했던 것에 비해, 정말 정신 못 차리고 한 달이 지나갔다. 일단, 왕초보 풀스택 강의가 상당히 재밌었다. 그리고 명확했다. 덕분에, 꽤 긴 시간동안 궁금했던 프론트엔드와 백엔드의 역할도 경계가 생겼다. 미니 프로젝트에 돌입해서는 백엔드 지망 세 분과 나, 이렇게 넷이서 칵테일 레시피 추천 웹 서비스를 만들었다. 백엔드 API 구현에 상당히 고전했던 기억과 프론트 UI 구현에는 나쁘지 않게 기여했던 기억이 난다. 이 때의 경험은 지금도 많은 도움이 되었다.

알고리즘 주간은 삐걱대며 시작했다. 일단, 심화반 운영 첫 기수였던터라, 상당히 미숙한 운영과 준비되지 않은 강사 섭외로 3일 가량 혼돈에 빠졌다. 결과적으로는 그 시간동안 알고리즘 주차에 배울 내용을 포함해 스스로를 정비할 시간이 되었다고 본다. 그리고, 이후에 자료구조를 중점으로 연관된 알고리즘 문제를 풀어 나갔다. 상당히 빠듯한 기간이었기에, 처음에는 내 페이스를 잃어가면서 쫓아갔다. 하지만, 결국 멀리 내다보면 내 것으로 만드는게 많아야 한다고 생각했고, 난이도 있는 문제를 푸는 것을 포기했다. 대신, 자료구조를 반복적으로 구현하면서, 자료구조 / 코딩의 철학 / 파이썬에 대한 이해를 더해갔다. 내가 잘 못하는 반복훈련과 어려운 것에 시도하는 것 중에, 반복훈련을 취했고, 결과는 나쁘지 않았다. 다만, 어려운 것에 시도하는 것은 지금도 숙제로 남아있다.

2월

상황

알고리즘 반환점을 돌았다. 커리큘럼에서 일부 벗어났기 때문에, 내가 제대로 가고 있는지에 대해 끊임없이 의문이 생겼다. 또한, 동시에 진행하고 있었던 블로깅, 프론트엔드 공부를 병행하는 것에 벅참을 느꼈다. 하지만, 동료들 앞에서 꽤 어려운 문제에 대한 풀이를 발표하거나, 자료구조 구현 연습 스터디를 운영하기도 했다.

행동

2주차에는 부트캠프 생활이 몸에 익어서, 더욱 몰입하고 완전히 항해의 선원이 되었다. 브라우저 작동원리에 대해 발표도 진행하고, 자율적인 분위기에 방황하지 않고 내 하루 루틴을 꽤 일정하게 가져갔다. 다만, 대다수가 과제톡에 회의적이게 되면서, 항해5기 심화반 자체는 위태로움을 느끼기도 했다. 또한, 당장의 퍼포먼스가 가장 중요하다는 내 기준에 따라 프론트엔드 라이브러리인 리액트 공부를 시작했다. 2월 중순부터는 주특기(리액트, 스프링, 노드) 주간에 돌입하였고, 아침에 CS스터디를 병행하게 되었다. 그와 동시에 알고리즘/자료구조까지 공부하려했으나 그것에는 실패했다.

결과

알고리즘, 자료구조에 대한 공부는 다소 흐지부지 끝나버렸다. 때문에, 오랜 숙제로 남았다. 회고와는 별개지만 마침 상황이 맞물려 한해 뒤 비슷한 시기인 최근에 다시 시작하게 되었다. 리액트에 대해 아주 서툴지만, 미리 공부하기 시작한 것은 정말 잘 한 선택이었다. 어느 시기든, 하차를 고민할 정도로 힘들었지만, 리액트의 구조와 철학은 이미 HTML, CSS, JS로 작업하는데 익숙하지 않으면 이해하기 어려웠다. 그럼에도, 따라 쳐본 코드 몇줄이 내 뒤를 받쳐주었다. 머리 박치기를 열심히 한 덕분에, 생산성 자체는 기하급수적으로 상승했다.

오히려 CS스터디는 근본적인 고민에 대한 탐구라, 내가 가장 궁금해하던 부분들을 해결해주었다. 교재로 채택된 책이 비교적 쉽고, 거시적으로 쓰인 탓도 있었다. 매일 서너 시간을 들여서 블로그에 정리하고, 팀장 역할을 맡아 고생하는 와중에도 정말 재미있었다. CS도 하반기로 넘어가기 전에 다시 시간을 들이고 싶은 마음이다.

3월

상황

탈락을 결정짓지는 않았지만, 기준치의 리액트 과제에 도달하기 위해 입에서 피를 쏟는 지경이었다. 어떻게든 CS와 병행했지만, 2월까지였다. 나를 괴롭힌 것은 리액트의 상태관리와 스타일 적용, API 통신 등이다. 실전프로젝트 돌입 때까지 일주일이 채 안남은 상황이어서, 마음이 상당히 조급했다. 온종일 내가 하위 몇 퍼센트에 속하는지를 세어보았던 것 같다.

행동

가까스로 일종에 합격선에 해당하는 주특기 과제 제출에 성공했다. 자신감 회복도 잠시, 실전프로젝트에 돌입하자마자 바닥에서 허덕였다. 실전프로젝트는 프론트엔드 2명, 백엔드 3명, 디자이너 2명의 팀으로 진행되었다. 나보다 실력적으로 뛰어났던 프론트엔드 동료에게 결정권을 일임하고 최대한 피해주지 않고 마치겠다는 생각이었다. 하지만, 우리는 대화에 실패했고 그 팀원은 나갔다. 그 과정에서 7일부터 코로나로 고생하기도 했다. 나는 이를 악물고, 성공하는 모습을 보이고 싶고 남은 팀원들에게 피해를 주지 않겠다는 일념으로 프로젝트를 진행했다. 그리고, 긴급으로 현업에서 근무 중인 팀원이 투입되었고, 백엔드가 우선 개발한 API를 쫓아가느라 정신없는 나날을 보냈다.

결과

절대로 실패하지 않으려고 이를 악물고, 어떻게든 기능 하나를 구현하자(내 기억이 맞다면, 게시물 요청 API) 눈이 트였다. 새 팀원분께서는 기술적으로 배려해주시면서, 필요한 것들은 추천해주시면서 프론트엔드 파트를 리드해주셨다. 동시에 구현이 급한 상황인 만큼, 코드 지분량은 내가 많이 가져간 덕분에 많은 훈련이 되었다. 다만, 성급한 만큼 지저분한 하드코딩이 다분했다. 지금 생각해도 상당히 놀라운 주차였고, 프론트 팀원분께 감사했다. 덕분에 UI와 API 구현에 겁먹지 않는 계기가 되었다. 프론트엔드 개발 속도에 있어서도 다른 팀들을 많이 앞서 가장 빠른 축에 꼈다.

다만, 백엔드 파트와 디자이너 분들과의 소통은 꽤 큰 아쉬움이 있었다. 백엔드 파트 입장에서, 프론트엔드를 잘못 만난 덕분에 프로젝트가 더디다는 생각이 강했던 것 같다. 잘 모르는 부분들이라, 에러가 발생했을 때마다 다른 조에서 물어서 백엔드 이상이 맞음을 확인해야하는 상황을 겪었다. 현장에서도 같은 상황을 겪었기에, 이해가 되는 부분이기도 하다. 그렇지만 아쉬운 것도 맞다.

디자이너 분들께는 항해 측의 섭외 과정에서 일정이 잘못 전달된 탓인지, 우리의 일정과 전혀 다른 계획을 갖고 계셨다. 덕분에, 유저플로우나 와이어프레임과 같은 문서 작업을 여러차례 반복해야 했으며, 디자이너분들께서 작업하시는 와중에 페이지에서 필요로하는 데이터가 수시로 변경되었다. 팀 내에서 우선순위를 잘 판별했으면, 장기적 관점과 단기적인 구현에서의 판별을 잘 해냈을텐데 갈팡질팡하는 시간이 적지 않았다.

4월

상황

전쟁같은 매일을 보내면서도, 프로젝트 종료일이 찾아오지 않기를 바랬다. 빨리 끝날수록, 프로젝트의 완성도가 떨어지기 때문이었다. 이 상태로 취업할 수 있는 가에 대한 의문도 많았다. 프로젝트 마무리가 코 앞으로 다가올 수록 이 프로젝트에 대해 내가 어필할 수 있는 부분이 무엇인지에 사로잡혔다. 체력적으로는 코로나를 무릎쓰고도 잠을 줄이며, 스트레스를 잔뜩 받은 덕분에 아슬아슬한 상태가 이어졌다. 눈 뜨기 무섭고, 잠들기 무서운 날도 적지 않았다. 팀원들과 충돌도 자주 이어짐에 따라, 한편으로 프로젝트 기한이 있는게 다행처럼도 느껴졌다.

행동

상대적으로 일정이 급박했던 심화반에서는 프로젝트를 가장 먼저 배포하고, 피드백도 받은 몇 안되는 팀이었다. 하지만, UI 보수에 쏟을 시간이 상당히 모자랐던 만큼, 대부분 UI에 대한 피드백이 이어졌다. 마지막 마무리는 거의 혼자 진행하면서 정말 두서없지만 버그 다음 버그 다음 버그를 수정하는 날을 보냈다. 그리고, 프로젝트를 마무리할 준비는 거의 하지 못했다.

프로젝트가 마무리되자, 너무 심한 번아웃이 왔다. 프로젝트가 끝나자마자, 리팩토링을 해야만 한다는 생각에 사로잡혀 있었는데, 이력서 작성에 적어낼 내용이 너무 없음에 집중력을 완전히 상실했다. 4월 초 이후는 꾸역꾸역 취업스터디를 진행하고, 아무것도 하지 못했다.

결과

스스로의 이력서에 자신이 없어서, 계속 도망치는 선택을 했다. 정말 열심히 부트캠프를 수료했음에도 폐인과도 같은 기간이었다. 수중의 돈이 제한적인만큼 빨리 행동해야만 한다는 압박이 내 발목을 잡는 악순환이 반복되었다. 제주도에서 오고가며 면접을 볼 상황이 못된다는 핑계로, 이력서조차 제대로 넣지 못했다. 이력서를 넣지 않으니 이력서를 더 잘 꾸며내거나, 프로젝트를 진행하거나, 학습을 이어가지도 못했다. 그러던 와중에, 친구의 전화를 받았다. 자신있게 도전해보라고 했다. 그 날로 약 일주일 뒤에 서울로 올라가는 비행기를 예매했다. 내 기억이 맞다면 4월 28일 즈음의 일이었다.

5월

상황

빈 털터리에 자신감도 없지만, 어떻게든 서울에 자리잡겠노라 마음을 먹었다. 그리고, 부트캠프를 통해 성장했던 것을 되새기며 또 다른 머리 박치기를 시도했다. 그러기 위해, 힘들게 생활했던 자취방을 정리했다. 매일같이 산책하고, 독서하며 나를 만들고 미래를 그리려 노력했다.

행동

5월 5일 날 김포행 비행기를 탔다. 공항에서 친구를 만나고, 노량진으로 이동했다. 집조차 알아보지 않고 올라왔기에, 당장 들어갈 수 있는 고시원을 물색했다. 비행기를 끊고 사실 얼마 안 지나, 첫 면접이 잡혔다. 때문에, 면접 준비를 하면서, 공부를 이어갈 수 있는 마일스톤이 있었다. 물론 노량진에서 혼자 지내며, 약 두 달을 버틸 돈을 가지고 올라온 상황은 상당히 불안했다. 하지만, 매일 산책하고, 공부하고, 이력서를 넣는 루틴을 만들어갔다.

결과

많은 곳에 면접을 보지는 못했다. 이력서를 손 데는 것에 대한 공포가 아직 남아있었기에, 휑한 채로 이력서를 넣었던 탓이 크다. 면접 때마다, 생각보다 많이 했는데 안 적었다는 코멘트를 받았으니 말이다. 합격은 이력서를 넣은 한 곳과 입사 제의를 먼저 준 한 곳, 총 두 곳에서 받았다. 거의 비슷한 시기였고, 둘 다 작은 초기 스타트업이라는 점에서 고민이 되었다. 그렇지만 먼저 제의를 준 곳에서, 내 마음 속 최저선은 넘긴 연봉을 제시했고 면접을 진행했던 CTO님에 대한 기대가 있어 입사 제의를 준 회사를 선택했다. 5월 23일이라는 더위가 찾아오는 시기에 첫 출근을 했다.

회사에는 웹 프론트엔드 개발자 2명, 앱 개발자 1명, 백엔드 개발자 1명, 디바이스(라즈베리 파이) 개발자 1명, CTO님까지 6명이었다. 초기 치고는 작은 편은 아니라고 느꼈으며, 그 중에 웹 프론트 2명과 백엔드 개발자, 디바이스 개발자 분은 신입급이며, 디바이스 개발자와 CTO님을 제외하면 입사동기 수준의 대거 신규채용이었다. 팀이 방향을 잡고 업무를 진행하는데는 시간이 필요했다.

6월

상황

어떤 것을 서비스할 지도 정해졌고, 개발팀도 꾸려졌지만 자원이 넉넉치는 않았다. 때문에, 기획과 디자이너 없이 개발해야하는 상황이었다. 신입들은 물론 시니어분도 겪어보지 않은 상황에 많이 해맸으며, 서로가 서로의 기술을 잘 모르기 때문에 얼마나 걸릴지 가늠하기도 어려웠다. CTO님께서는 웹 개발을 담당하신 적이 없으셨으며, 레거시 사이트와 코드, 노션자료를 공유해주셨는데 회사의 방향성을 파악하는 것에도 시간이 많이 필요했다.

행동

웹 프론트엔드 파트에는 회사 홈페이지 만들기와 웹 서비스 개발이라는 업무가 주어졌고, 나에게는 웹 서비스 개발이 할당되었다. 서비스에 필요한 내용들을 문서로 만들고, 임시로라도 사용할 수 있는 UI를 만들기위해 화면에 들어갈 컨텐츠를 고민했다. 그 이후에는 소셜로그인과 같이 장기적으로도 프로젝트에 포함될 기능들 위주로 학습하고 구현하였다. 성장하기에는 확실히 불안정한 환경이라 판단했다.

하지만 다행스럽게 자율 출근에, 4시 반 퇴근이라는 파격적인 조건에 시간적 여유가 넘쳤다. 나는 그 시간을 가만두면 개발에 쏟지 않을거라는 판단하에, 노마드코더 강의와 팀 스파르타의 하이퍼캐쥬얼만들기 프로젝트인 로켓단에 지원했다. 동시에 미래의 불안함을 사전 차단하기 위해, 주말마다 이력서를 업데이트 했다.

월 말에는 양재에 있던 회사가 판교로 옮겼고, 비용을 아끼기 위해 직접 책상 다리를 붙이면서 사무실을 꾸몄다.

결과

웹 서비스를 만드는 과정에서 백엔드 파트 개발자분과 협업하면서 API를 구현하던 감각을 회복했다. 외부 API를 끌어다 쓰거나, UI라이브러리를 적용하는 것도 이전 경험으로는 충분치 않았기에 많은 애를 먹었다. 자원이 모자라 많은 시간을 어떤 것을 만들지, 어떤 모습으로 만들지를 고민했지만 내 성격과 잘 맞았기에 재미있었다. 무엇보다, 서비스를 잘 만들면 나도 쓰고 싶게할 수 있다는 생각이 들어 몰입이 되었다.

자율 시간이 많았지만 내 일과를 미리 확정시켰던 덕분에 개발자스럽게 사고하고, 코드량을 늘리는데 정말 많은 도움이 되었다. 지금 생각하면, 업무에 투입되기엔 어처구니 없는 수준이었던 내가, 가장 프로다워져 가는 시간이었다.

7월

상황

회사 일정은 급박해지는 일이 없었다. 지금 생각하면 말이 안되지만, 그만큼 애매한 자원 투자가 원인이었다. 덕분에 나는 야간에도 게임 만들기에 빠져서 재미있는 외부활동을 이어가는 개발자다운 시간을 보냈다.

행동

7월이 되자 슬슬 회사에 AI파트와 기획파트가 수혈되었다. 개인적으로는 NFT 마켓플레이스 프로젝트까지 할당 받았으며, 야심작이었던 2048블랙의 개발이 마무리단계를 거쳐갔다. 또한, 미래를 위해 타입스크립트, 백엔드와의 소통을 위해 파이썬도 대충 훑어보는 등 다소 산만한 한 달을 보냈다.

개발자로 취업하고 처음 제주도를 방문하기도 했다. 친하고 존경하는 형(친형 아님)의 결혼식 참석을 위해서였지만, 내게도 많은 의미가 있는 비행이었다.

회사까지의 거리가 멀어지면서 출퇴근 독서를 시작했다. 그리고, 출퇴근 독서를 위해 충분한 수면을 하려고 노력했다. 일단 시작은 꾸준히 읽을 수 있을만한 책들로 골라 읽을 생각이었다.

결과

지도가 없이 떠돌아 다닌 한 달이었다. 개발팀의 방향은 구체화되기는 커녕, 더욱 막연해졌다. 판교까지의 출근도 편도 1시간 10분~ 1시간 반 가량의 장거리였다. 집에 귀가하면 누워서 유튜브를 보면서 게임을 하게되는 생활이 이어졌다.

나를 압박하는 주요 원인 중 하나였던 2048블랙은 앓던 이를 뺀 느낌보다, 허전함으로 다가왔고 부트캠프 실전프로젝트처럼 나중에 더 고쳐주겠다는 약속을 지키지 못했다.

휴가는 좋은 기분전환이 되었다. 제주도에서 함께 개발을 시작한 동기분도 만나고, 오랫만에 친구들도 보았다. 제주도에서 디지털 노마드 생활도 해보면서 상상했던 것을 현실화했다. 다음 달부터는 스스로를 위해 더 많은 것을 정해주자는 생각을 했다.

독서도 만만치 않았다. 7월 한 달 동안 6월부터 읽어왔던 ⌜UX디자인 입문 A to Z⌟와 7월 초에 읽은 ⌜성공하는 한국인의 7가지 습관 - 루트 앤 윙⌟ 두 권이 끝이었다. 한 달 예산을 짜는 것에도 여유가 없었기에, 막막함에 겨우 숨쉬는 날도 많았다.

8월

상황

밀려든 현실에, 과거의 내가 세운 결심들을 잊어가고 있었다. NFT 마켓플레이스를 만들기 위해 Web3와 솔리디티 강의를 들여다보고, 타입스크립트도 도입해야하는 상황이었다. 개발팀의 방향과 기획자 분의 방향이 충돌하며, 개발 방향을 상당히 상실했다. 그리고 디자이너가 팀에 합류했다.

행동

8월에도 전체적인 방향은 크게 달라지지는 않았다. 사내 웹 서비스를 개발하고, 타입스크립트와 Web3, 솔리디티를 공부하였으며, 하이퍼캐쥬얼게임 프로젝트를 한 기수 더 신청했고, 이번에는 3D 액션게임을 개발했다. 매일같이 쓰던 블로그가 멈춘 것이 8월 초이기도 하다. 독서는 어림도 없었다.

결과

서비스 방향 자체가 흔들리며, 개발팀이 갈피를 잡지 못했다. 내가 이제까지 개발한 것 자체를 갈아 엎는다는 얘기도 기정사실처럼 되어갔다. 당장에 개발은 미뤄두고, 어차피 해결해야할 NFT 마켓플레이스를 위한 학습에 조금 더 집중했다. 게임 개발 주기가 짧아지면서 시간적 여유가 더 부족해졌다. 게임은 정말 좋은 기획과 디자인의 지원을 받았음에도, 내 역량으로는 기한 내 개발이 어려웠다. 결국 끝의 끝까지 미루면서 일정을 맞췄다. 덕분에 내 루틴은 박살을 넘어 가루가 되었으므로 쉽게 누워서 지내곤 했다.

9월

상황

팀 내 업무역할이 재편되었다. 웹 서비스 개발에 디자이너분이 합류하셨으며, 회사 소개 홈페이지 개발에 투입되었던 프론트엔드 동료가 웹 서비스 개발 쪽으로 합류하기로 결정되었다. 부랴부랴 협업할 수 있는 환경을 만들기 위해 프로젝트를 정리해야 했다.

행동

우선 프론트엔드 동료분께서 원하시는 기술을 가급적이면 따라가고자 했다. 또한, 비교적 익숙하지 않은 기술은 사용하지 않는 방향으로 생각했다. 내 기존 기술스택은 Js, React, Styled-components, Redux, Axios 정도였다. 동료분께서 Next를 쓰고 싶어 하셨고, API 통신과 상태관리에 애를 먹으셨으므로 Axios와 React Query를 도입하기로 했다.

광화문 교보문고에 갔다가 연금술사를 사들고 왔다. 그리고 9월 중순부터 세 번 연달아 읽었다. 내가 진짜 되고 싶었던 모습이 무엇인지 상기시키기 위해서였다. 내 삶에 가장 중요한 키워드인 꿈을 구체화하려고 노력했다.

결과

결국 협업에 실패했다. 이미 작성된 프로젝트 코드를 하나도 학습하지 않으셨다. 그리고, 협업할 준비는 커녕 회피하는 모습을 보이셨다. NFT 마켓플레이스 개발에 필요한 프론트엔드, 백엔드, 솔리디티에서 내가 솔리디티를 맡을테니 React코드 작성을 부탁드렸는데 지지부진한 모습을 보였다. 중간부터 무지를 드러내지 못하고 계시다는 것을 알아챘다. 하지만 조금 더 지나고보니 이미 이직할 준비를 마치셨다는 것을 들었다. 많은 노력에도 불구하고, 헛노력을 들였다는 생각이 들어 허탈했다. 그 과정에서 나는 기술적인 탐구할 기회를 얻었다.

연금술사를 읽는 시간은 내 자아의 신화를 찾아 떠나는 여행이었다. 출퇴근 길이 너무나 즐거웠다. 산책을 하며 내가 진짜 살아가고 싶은 내 모습을 떠올렸다. 내가 왜 개발을 시작했지? 클래식 커뮤니티 서비스를 만들고 싶어서. 내가 클래식을 왜 좋아했지? 전공생으로서 도망치고 싶지 않아서. 내가 음악을 왜 좋아했지? 노래하는 것을 좋아해서. 질문이 꼬리에 꼬리를 물었다. 개발자로서 지내는 삶이 너무 즐겁지만, 나는 결국 어떤 형태로든 클래식을 향해 다시 발걸음을 옮길 것이다. 그 중에 하나는 웹 서비스의 형태로 드러날 것임이 확실하다.

10월

상황

좋은 개발자, 좋은 서비스 운영자, 좋은 음악가와 같은 목표가 확고해졌다. 그와 동시에 마음이 급해져만 갔다. 하지만, 지금 나에게는 당장 해결해야할 문제들이 몰려오고 있었다. 여러차례 무너지고, 넘어졌다. 나를 잃어버리지 않을 방법들이 필요했다.

행동

우선 사내 분위기가 많이 바뀌었다. 광주 메디헬스전이라는 마일스톤이 생기면서, 개발팀은 우선 전시 참가를 최우선으로 한다는 방향을 잡았다. 그러면서 피쳐개발에 효율적인 방향으로 워크 플로우가 변경되었다.(사실 원래부터 이게 CTO님의 기준이었다.) 개발에 속도가 붙고, 디자이너와 협업하면서 빠르게 서비스를 완성해갔다. 기존 구글 로그인에 네이버와 카카오 로그인을 구현하고, 기존에 Mui로 작성한 코드를 전부 드러내어 커스텀 UI를 다시 구축했다. 브라우저를 기준으로 만들었던 웹 서비스를 모바일 앱에서 동작하는 것을 기본으로 재구성했다.(모바일 디자인을 임의 수정하여 적용했다..!) 또한 기획 업무를 동시에 진행해야하는 상황이 되었다

또한, 사내 분위기가 정리되는 틈에, NFT 마켓플레이스 프로젝트의 솔리디티 부분을 전부 끝내버렸다. 그 과정에서 블록체인 기술의 현실적인 운영방식과 네트워크, 전자지갑, 코인, 가스비와 같은 개념들을 이해하고 스마트 컨트랙트를 작성했다.

계속적 성장에 대한 고민을 해소하고자 알고리즘 캠프도 참가했다. 3일 간 진행되었으며, 내가 공유하고 싶은 문제와 풀이를 발표하였다. 그리고, 지속적인 성장에 대한 고민을 공유했다.

더 많이 성장하고 싶은 마음은 시간을 아끼고 쪼개서 쓰고자 하는 마음으로 이끌었다. CEO의 다이어리엔 뭔가 비밀이 있다를 읽으면서 내게 적용할 수 있는 것들을 열심히 찾아보았다. 알고리즘 스터디를 기획해보기도 했으나, 사이드프로젝트 제의가 들어와서 방향을 틀었다.

결과

오랜 기간 방황했던 것과 다르게, 코드들이 빠르게 자리를 잡아갔다. 물론, 레거시를 제대로 리팩토링할 시간은 없었기에 코드들의 공동묘지가 형성되기도 했다. 눈코 뜰 새 없이 바빴기에, 작업량은 착실히 늘어갔다. 몇 달 만에 내가 훈련되어감을 다시 느꼈던 기간이다. 기획이 여러 차례 수정되었기에, 항상 순탄하게 쌓여만 간 것은 아니었다. AI 파트에 인원도 충원되면서, 정확도와는 상관없이 AI를 거쳐서 결과값을 반환하는 서비스의 형태를 갖추었다. 서비스에 대한 몰입이 점점 깊어져갔다.

전혀 이해하지 못하던 블록체인 기술에 대해 꽤 많이 접근했다. 시간적인 한계로 프론트엔드 파트와의 연결 부분을 남겨두었지만, 어떤 작업이 필요한지는 머리속에 전부 그려졌기 때문에 큰 걱정은 없었다.

성장에 대한 고민은 다시 음악에서 결론지었던 모습으로 돌아갔다. 근본을 찾아 헤맸던 나는 어떠한 결과물을 만들어내기도 무서워했다. 그것은 음악에만 해당하지 않는다는 것을 나는 알고 있었다. 그래서 의지와 상관없이 연속적으로 결과물을 만들어내야 하는 지금 상황을 즐기기로 했다. 이것이야말로 최대한 빠르게 취업하기를 권했던 부트캠프와 담당 매니저님의 의도이기도 했다. 수 많은 에러를 잡으면서, 에러에 대한 두려움도 당황도 사라졌다.

알고리즘 캠프와 CEO의 다이어리엔 뭔가 비밀이 있다에서는 드라마틱한 인사이트를 얻지는 못했다. 다만, 깊게 사고함으로써 내 행동양식의 방향을 잡을 수 있었다.

사이드프로젝트 과정에서는 많은 일이 있었다. 결론적으로는 방향성을 제대로 설정하지 않고, 인원을 소집한 것이 원인이었다. 2주간 어떤 프로젝트를 만들 것인가에 대해 논의하다가, 방향성이 완전히 바뀌면서 다수결에 동의하는 팀원들끼리 프로젝트를 진행했다. 박람회 준비일정이 점차 다가왔기 때문에, 사실 프로젝트에 많은 시간을 할애하지 못했다. 그리고, 프론트엔드 협업을 기대했는데, 1명에 그쳐서 사실상 개인프로젝트의 개념이 되었다. 그렇지만, 다른 사람이 짜놓은 Bulletproof코드를 참고하여, 프로젝트 구조를 효과적으로 가져가보려는 노력을 하고, 타입스크립트를 도입하면서 많은 학습과 훈련이 되었다.

11월

상황

박람회가 연이어 있어서, 일정에 맞춰 기획하고, 디자이너와 소통하고, 개발하느라 정신이 없었다. 문제는 프로젝트에 미흡한 점이 너무 많았다. 때문에, 개발팀에서 운영하는 스프린트가 거의 아무런 효과를 발휘하지 못했다.

행동

해야되는 일들을 쭈욱 적어서 우선순위로 정렬하고, 그보다 중요한 기능이나 버그가 발생하면 바로 개발했다. 프론트엔드의 버그를 포함해서, 디자이너의 의견을 수렴하고, 보여줄 수 있는 컨텐츠를 고민하고, 백엔드 & AI의 개발 중 이슈를 체크하는 일이 동시다발적으로 이루어졌다. 그 와중에 회사 사업모델에 반드시 필요한 상담하기 기능에 대해서는 논의조차 이루어지지 않았으므로, 자체적으로 컨텐츠를 개발하고 CTO님과 백엔드 동료에게 필요한 사항을 공유했다. 가장 효율적인 방식으로 일하고자 노력하고 또 노력했다.

그러면서 나를 잃어버리지 않기 위해 장치들을 마련했다. 꾸준히 산책하고자 취침 전 한 시간 가량을 비워두었다. 그리고 주에 한 권씩은 책을 읽었다. 사이드프로젝트의 진행도 최소 기준에는 맞추려고 줄타기를 했다.

결과

작품의 완성은 없지만, 완성은 커녕 가까스로 일정에 맞추는 수준이었다. 하지만, 가히 팀을 주도하여 개발했다고 말할 수 있다. 사실, 팀 전체로보면 정말 많은 비효율이 있었다고 생각한다. 팀 규모에 비해 필요 없는 과정도 있었고, 일하기 위한 일도 있었다고 본다. 아쉬움이 많지만, 과정이라고 생각한다. 내가 리딩하거나 경영할 때는 좋은 교훈으로 삼을 수 있으리라.

결론적으로 11월은 상당히 타이트 했지만 업무에 휩쓸리지 않고 내 일상과 발전을 지켜, 지속가능한 업무방식을 만들어간 한달이었다. 심지어는 매일 30분 정도 기타를 연습하는 시간도 만들었다. 9월 무렵 그렸던 자아의 신화를 쫓아 열심히 달렸다.

12월

상황

정신없는 11월을 보내고, 12월의 화두는 해를 넘긴 1월 5일 CES 출품이었다. 쉬어가는 분위기였지만, 긴장의 끈을 오히려 붙들어야했다. 현장에서 그리고 유저들이 납득할 수 있는 서비스로 향해야 한다는 생각이 더욱 강해졌다.

행동

CES 2023에 맞춰 새로운 기능 추가, 다국어 지원, 임팩트를 줄 수 있는 컨텐츠 변경이 필요했다. 새로운 기능 추가로는 히스토리 기능을 개발했다. 다국어 지원에 있어서 팀원분께서 열심히 도와주셨다. 하지만 어쩔 수 없이 빈틈이 종종 발생하여 긴급하게 적용하는 일이 잦았다. 새로운 컨텐츠 적용은 내가 구상하고, 알고리즘을 작성하고, 기획하고, 디자이너분과 소통하였으며 당연히 프론트엔드 구현까지 담당했다. 그 와중에 NFT 마켓플레이스 개발까지 마무리해야 했다. 뭍어놨던 코드를 꺼내어 작성하는 프로젝트가 원활하지 못했지만, 주어진 시간은 일주일이 안 되었다. 결국 코드를 한줄 한줄 다시 읽으면서, 에러의 원인을 찾고 마켓플레이스를 구현해냈다.

책으로는 조지오웰의 동물농장과 베르나르 베르베르의 신 1, 2, 3, 4권을 연달아 읽었다. 중고서점에서 책을 구매하던 나는 신이 6권까지 있는 줄 모르고, 다 읽고나면 2023년부터는 개발관련 서적을 읽겠다고 마음먹었다. 뒤늦게 지난 주에 5, 6권을 구매하긴 했으나 언제 읽을지는 미지수다.

사이드 프로젝트는 조금 여유있다 싶은 주차에 몰아서 개발하는 형태로 참여했다. 팀에 상당히 부정적인 방법이었으므로 미안한 부분이 많았다.

결과

내가 다소 급진적인 방향을 제시했던 컨텐츠 기획은 CTO님을 거쳐 받아들여졌다. 일정상 무리라는 의견이 더러 있었지만, 이 정도의 변화가 없으면 CES에서 보여줄 것이 없다는 생각이셨다. 이 시기에는 팀을 위해 할 수 있는 일은 다 하려고 노력했다.(나중에 돌이켜보니 더 있었지만 말이다.) 몰입도가 올라갈 수록 성장속도도 따라 올라왔다. 하지만, 좋은 코드와 좋은 개발자로 성장하고 있는가에 대해서는 의문이 들었다. 내가 생각할 때는 스타트업 수준에서는 장점이 많은 개발자가 된 것 같다. 우선순위를 빠르게 판단하여 행동하고, 파트별 의견 교환의 중심점 역할을 했으며, 새로 도입할 기술을 빠르게 습득/도입하고, 내가 맡은 바의 역할을 규정짓지 않고 팀과 서비스 그리고 고객이 필요로 한다는 생각이 들면 앞뒤 안 가리고 했기 때문이다.

나는 내 서비스를 만들고 운영하고 싶은 사람이므로, 틀린 방향이라고는 생각하지 않는다. 하지만, 이 방향으로 갔을 때 내게 주어지는 것이 무엇인지 생각하고, 받아들일 수 있는지 고민해볼 필요가 있다.

긍정적인 것은, 내 일상을 아주 잘 지키면서 역할을 지킬 수 있었다는 것이다. 야식을 다소 많이 먹은 것만 제외하면, 꽤나 긍정적으로 마무리하지 않았나 싶다.

마무리

2023년도는 우리 회사가 계속 나아갈 수 있는지 판가름이 나는 해일 것이다. 그리고, 나 역시 팀에 기여하기 위해 백엔드로 역할 전환(아마 프론트는 겸하여)하기로 CTO님께 건의했기 때문에 1년이 지나 다시 새로운 도전의 출발선에 섰다. 이겨낼 것이다. 작년의 내가 불확실한 상황에 휩싸여 있었던 것에 비하면 정말 좋은 요건에서 지내고 있기 때문이다.

작년을 이겨내준 나에게 감사한다.

profile
듣는 것을 좋아하는 개발자입니다

0개의 댓글