🧑🏻💻 개발자로의 2022년
원래는 선생님을 꿈꾸고 있었다. 그 당시에는 누군가를 가르친다는 것이 그저 동경받는 행위이기 때문에, 깊은 고민 없이 진로를 선택했다. 하지만, 대학에 들어왔을 때는 과연 내가 누군가를 지도한다는 것이 정말 내 적성에 맞는 것인가? 회의감이 들었었다.
대학 졸업 조건이 교육봉사 60시간을 채우는 것인데, 나는 그게 졸업을 방해하는 제약 조건이라고 생각했었다. 그런데 주변 동기들은 그렇지 않았다. 오히려 주말마다 원해서 교육봉사를 다니고, 여러 학생들을 멘토링 하고 진심으로 교육에 열띤 모습을 보니 나의 교육자에 대한 자격에 대한 의구심이 들기 시작했다. 또한, 당시에는 소심하고 걱정이 많은 성격으로, 다른 사람을 카리스마 있게 지도한다거나, 포용력있게 집단을 감싸는 능력이 부족했었다.
그뿐만 아니라, 전반적인 사회의 정세를 봤을 때, 선생님이라는 직업의 말로도 뚜렷해 보였으며 머지 않았다고 생각이 들었다. 인구 피라미드가 점점 역삼각형으로 변해가고 있고, 인구의 자연적인 증감도 어느새 음의 영역으로 접어들고 있다. 수도권으로의 집중은 해결될 기미가 보이지 않고, 지방은 소멸해가며 서서히 학교 수도 줄고 있다. 이러한 사회적 양상을 봤을 때, 1년, 2년, n년으로 임용고시가 접어들 때, 날이 갈수록 TO는 줄어들 것이기에 확실하게 기회를 잡지 못하면 흐지부지 시간을 허비할 것이라고 보았다.
지리라는 분야는 타 과목과 마찬가지로 상당히 전문적이다. 긍정적으로 보면 전문성이 높은 것이지만, 현실적이고 회의적으로 관찰했을 때는 지엽적인 학문이기에 인생의 전반에 핵심적인 부분으로 자리매김할지가 의문이 든다. 물론 지리가 총체적이고 범학문적인 융합학문이지만, 당사자 입장에서 봤을 때는 모든 과목이 범학문적이고 융합학문이 될 수 있어서 너무 유토피아적인 취급을 받는 것 같다. 지금까지 논점에서 벗어난 느낌이지만 핵심은, 인생 전반에 도움이 되는 학문 분야를 학습하고 싶었다는 것이다.
그래서 대학교 고학년이 되고 선생님이라는 직업을 포기하고 새로운 꿈을 찾고자 노력했다. 에너지 관련된 대외활동도 해보고, 마케터가 되기 위해 KT&G에서 팀원들과 프로덕트에 대해 분석도 해보고, LG의 쏘밈스쿨이라는 대외활동을 하면서 ESG 경영과 비즈니스 모델 구축에 대한 고민의 시간을 가졌다. 우리 학교의 리더십 캠프도 다녀보고, 브라질 교육 문제 해결을 위해 서비스를 고안하고 포르투갈어를 공부했었다. 하지만, 이렇게 다양하게 발을 걸쳐봤으나 나를 매료시키는 경험은 하지 못했다. 그러다가 코칭스터디를 알게 되었다.
사실 첫 코딩은 군대에서 IT 게시판을 통해 뮤직 플레이어를 만든 것이다. 내가 만든 프로덕트를 동료가 편하게 즐기고 근본적인 문제를 해결하는 것은 그 당시에 무료한 일상의 새로운 자극이었기에 그저 단순한 쾌감이라고 느꼈었다. 하지만, 본격적으로 네이버 부스트코스 코칭스터디를 통해 코딩을 접했고, 주어진 문제를 해결하며 나만의 결과물을 사람들과 공유해보는 과정으로 오랜만에 무언가에 골똘히 몰입할 수 있었다. 그때부터 시작한 프로그래머로서의 발걸음이 지금까지 이어져 오고 있다.
가장 처음에는 인공지능 분야로 진출하고자 했으나, 재빠른 취업으로 커리어를 쌓으며 실무 경험과 함께 성장하는 것과 주변에 도움을 받지 않고 머신러닝&딥러닝 모델 엔지니어로 확실한 꿈을 꾸는 것을 비교했을 때, 현실적으로는 전자의 길을 가는 것이 옳다고 생각했다. 그렇지만 그 결정은 이미 머신러닝&딥러닝으로 관심을 가지며 공부한지 6개월 정도 지난 뒤였다. 그 시점은 교생실습을 갔다온 후였다. 근 8월까지 드문드문 공부하고 놀면서 허송세월을 보냈고 어느새 2022년의 1분기만 남게 됐다. 그때쯤 디프만이라는 개발 동아리에 운이 좋게 입단했고, 사실 그 9월이 개발자로의 본격적인 허들을 뛰어넘은 때라고 생각한다.
나의 본격적인 '개발자'로의 마라톤은 2022년 9월부터라고 생각한다. 약간 변명같긴 하지만.
그래서 본 회고에서는 2022년 9월부터 어떻게 성장하고자 했고, 어떤 경험이 좋았으며 어떤 부분이 부족했고 반성해보는 시간을 가지려고 한다. 그런데 9월 전까지도 여러 가지 시도를 많이 했고 여기서도 겪은 바가 존재하기에 겸사겸사 돌이겨 보고자 한다.
1. '딥 러닝을 이용한 자연어처리 입문 따라쳐보기' 풀잎스쿨
풀잎스쿨은 모두의연구소에서 '풀잎스쿨'이라는 이름의 스터디를 사용자가 개설 혹은 참여할 수 있는 프로그램이다. 이때, 한창 머신러닝 공부를 거의 끝마치고 딥러닝으로의 입문을 준비하던 때였고, 당시 네이버 산하 비영리 재단인 커넥트재단의 부스트코스 사이트 코칭스터디 (휴... 꽤 길다)에서 리드부스터로 활동했었고 여기서 풀잎스쿨이라는 모두의연구소 스터디 프로그램의 1회 무료 쿠폰을 받았었다. 그래서 쿠폰 만료되기 전에 일단 들어보자는 마음과 딥러닝에 대한 설렘과 걱정으로 신청했었다.
결과는 사실 내가 많이 부족한 줄 알았는데, 오히려 내가 더 설명하고 있었다. 비전공자라도 열심히 하면 남들보다 더 앞서갈 수 있구나 생각이 들었었다.
하지만, 아이러니하게도 본 풀잎스쿨로 딥러닝을 그만두게 됐다. 풀잎스쿨의 퀄리티가 나쁘다는 의미가 절대로 아니라, 현실을 직시했기 때문이다. 비전공자에 졸업도 가까워지고, 복수전공도 하지 않은 내가 인공지능 분야로 직업을 갖는 것? 사실 절대 불가능한 일이라고 지금도 생각한다. 말로는 대학원을 나오지 않아도 충분히 가능하다고 하지만, 현실적으로 봤을 때 내가 HR 매니저라면 굳이 나를 뽑지 않아도 다른 인재분들이 충분히 많이 있기 때문에 선택하지 않았을 것이다. 나는 빠른 취업과 함께 실무 경험을 통해 빠르게 성장하고 싶었기에 나랑은 맞지 않는 분야인 것 같았다.
2. 방황기
인공지능에 매진일로하다가 갑자기 방향을 트니까 내가 가야할 길을 놓치고 말았다. 여기에 더해서 한창 바쁘게 살았었다보니 에너지도 부족했었다. 그래서 사실 잠시 방황했던 것 같다. 내가 가야할 길은 어디인가, 인공지능을 위해서만 달려왔는데 이제 무엇을 공부해야 하는가 등 눈앞이 어두워졌다. 일단 웹 백엔드 개발을 하고자 마음을 먹었는데 그마저도 흥미가 생기지 않았다. 유튜브에서 백엔드 개발자로 시작하여 머신러닝/딥러닝 개발자로 나아가는 것이 더 현실적이고 자연스러운 길이라고 들었기에 무작정 시작해서 그랬던 것 같다. 지금은 물론 내 선택에 만족한다. 백엔드 개발자만이 느낄 수 있는 그 희열 때문에 계속 이렇게 포기하지 않고 걸어나갈 수 있었다고 본다.
개강하고 4월에 교생 실습이 예정되었기에, 여기에 정신도 많이 쏠려 있었고 그래서 더 현실도피성으로 개발에 약간 거리를 뒀다. 그런데 진로는 선생님이 아니라 개발자를 꿈꾸고 있었다니 참 지금 생각하면 제멋대로였다고 생각이 든다.
3. 교생 실습
교생실습을 하면서 힐링을 좀 많이 했다. 그리고 어떤 사람이 교육자의 길을 걸어가야 하는지도 눈으로 직접 목격했다. 진심으로 학생을 사랑하고 더 좋은 교육을 제공해주기 위해 노력하는 모습이 멋있었다.
그치만 나는 사실 그런 마음이 없진 않았지만, 그들보다는 간절하다거나 열정이 있지 않았기에 선생님이라는 꿈에 대한 미련을 더 말끔히 씻어내리게 됐다. 선생님이 된다고 하더라도 정말 미래의 빛나는 인재들을 길러낼 수 있는 그런 사람이 되어야 하기 때문에 자격이 없다고 봤다. 개발 외적인 내용은 열심히 기억하고자 하지 않아서 여기서 마치려고 한다.
4. 두 번의 코치 활동(부스트코스 코칭스터디 HTML/CSS 코치, PY4E 코치)
교생이 끝나갈 즈음 코칭스터디 관계자 분께서 좋은 기회를 주셨다. 이미 파이썬은 알고리즘 문제를 매일 풀었었고, 머신러닝과 딥러닝을 공부하면서 질리도록 했기 때문에 자신감이 붙었었다.
가장 처음에는 PY4E라는 Python for(4) Everyone 프로그램의 코치로 활동했다. 내가 개발자로의 길을 걷기로 시작한 초석 위에서 활동할 수 있었다는 점이 가장 매료되는 부분이었다. 파이썬 초심자들을 위해 매주 주어진 강의를 듣고, 팀원과 함께 미션을 제출하면 코딩코치인 내가 해당 미션을 확인해서 어떠한 부분이 좋았는지와 어떤 부분이 개선이 필요한지, 그리고 추가적으로 어떠한 정보를 알아두면 좋을지 등등을 부스터라는 참여자분들께 전달하는 것이 내 역할이다.
부스터분들을 보면서 과거의 나를 보는 듯한 기시감 같은 느낌이 들었다. 이런 부분을 헤맸었고 이런 부분이 효율적으로 떨어지고 이런 부분은 잠재적인 문제가 있고 등등 여러 가지 부분에서 과거의 나는 알지 못했을 문제점들이 확실히 눈에 보였다. 그래서 개인적으로 겸손해질 수 있는 순간이었고, 자연스레 회고하면서 성장할 수 있었다. 그리고 나의 옛날 모습이 회상이 돼서 더 부스터분들이 내가 밟은 진흙탕길을 밟지 않도록 노력하려고 최선을 다했다.
보잘것 없던 나를 코치라고 불러주시고, 매주 미션이 끝나고 피드백을 제공하면 항상 감사하다는 말씀과 후기를 남겨주셔서 너무 뿌듯한 경험이었다. 그리고 워낙 우수하신 분들이 많아서 오히려 내가 더 무언가를 배울 수 있는 좋은 경험이라고 생각한다.
물론 아쉬운 점도 존재했다. 내가 제공해주는 피드백이 옳은 것인지 옳지 않은 것인지 확신할 수 없었다는 점이 스스로 아쉬운 부분이라고 생각한다. 최대한 구글링을 하며 내 의견에 확신이 들고, 오류가 없지 않다고 판단하는 순간에야 피드백을 온전히 드릴 수 있었다. 그래서 내 의견이라기 보다는 나를 제외한 모두의 의견이라는 점이 참 초라해졌다. 그래서 더 자극을 받고 공부했다.
이런 점이 코칭스터디의 매력이 아닐까 생각한다. 누구나 리더가 될 수 있고 누구나 코치가 될 수 있다. 그저 열의있고 열심히 공부하고 팀원들과 활발하게 소통하면서 문제를 해결하고자 하는 태도만 준비하면 끝이다. 이미 지식이 어느 정도 형성이 되어 있는 분들에게는 만족할 수 있을지 모르겠으나, 실력이나 지식을 초월해서 커뮤니티를 형성할 수 있다는 점도 큰 장점이다. 사실 풀잎스쿨부터 시작해서 현재 코치활동 등 모두 커뮤니티를 형성해서 이뤄낼 수 있었다.
5. 디프만(디자이너와 프로그래머가 만나다)
내 인생의 디딤돌이자 부스터인 디프만이 2022년 가장 중요했던 사건이다. 이때부터 본격적인 서버개발을 시작했기 때문이다.
디프만에 들어오고 나서야 눈을 뜰 수 있었다. 비로소 나의 위치를 파악할 수 있었고, 프로그래밍에 진심으로 몰입할 수 있었기 때문이다. 인생에 있어서 자만하지 않고 내 위치를 파악하는 능력이 중요한데, 이게 어느새 흐릿해져갔다. 코치 활동도 했고, 나름 공부도 많이 해서 근거 없는 자신감이 넘쳤었다.
디프만에는 참 다양한 사람이 존재했다. 그리고 그 모두가 나보다 더 많이 개발을 해봤고, 개발에 더 진심이고, 실력 또한 출중했다. 모든 사람이 나보다 더 거대해보이고 쉽게 주눅이 들기 시작했다. 그래서 OT 때도 물 맞은 생쥐마냥 축쳐져서 보냈던 기억이 있다. 그런데 무슨 깡이 생겼는지, 백엔드 팀장을 자처했다. 그러면 안 됐었는데...
백엔드 팀장을 하면서 느낀 바로는, 백엔드 서버 개발할 때 스프린트를 잘 짜야 한다는 것이었다. 원래는 항상 강의 마지막에 배포가 나오기 때문에 배포 파이프라인은 맨 나중에 하고 지금 당장은 기능 개발에 힘을 써야 하는 게 맞다고 생각했었다. 하지만, 실제로 프로젝트를 모두 경험해보고 나니, 배포 파이프라인을 최대한 빠르게 만들면 만들수록 백엔드와 프론트엔드 모두에게 도움이 된다는 사실을 깨달았다. 프론트엔드가 더 빠르고 쉽게 API를 적용할 수 있었으며, 우리는 main 브랜치에 병합만 하면 알아서 ec2에 배포가 가능했으므로 그런 면에서도 편리했다.
코드를 작성하는 면에서도 많이 발전할 수 있었다. 단순히 돌아는 가는 그런 약한 코드가 아니라, 어떠한 공격이나 외부의 상황을 초월하여 작동하는 그런 코드를 짜기 위해 많이 노력했던 것 같다. 처음에는 PR 리뷰를 요청하는 것 자체가 공포였다. 왜냐하면 내가 작성한 코드는 대부분이 부실하고, 프레임워크의 철학을 지키지 않는 순수한 코드였기 때문이다. 당연히 여기서 이곳 저곳 누수가 발생할 수 있었고, 리뷰에는 무조건 request change가 붙고 물음표가 무수히 달렸다. 이때를 다시 돌이켜보면, 남이 짠 코드 읽기가 쉽지 않고 게다가 더티한 코드는 더더욱 읽기 싫은데, 이걸 꾹 참고 나에게 피드백을 해준 팀원들이 너무 감사하다.
개발 외적으로도 많이 성장할 수 있었다. 다양한 사람들을 만나면서 진로에 대한 고민도 풀어나갔고, 공부를 하는 방법과 그 방향성을 확고히 할 수 있었다. 단순히 책을 읽고 필기를 하는 것이 아니라, 그냥 일단 뭐라도 하나 만들어 보는 것, 그것이 빠르게 성장하고 확실히 체득할 수 있는 방법이란 것을 몸소 익힐 수 있었다. 그리고 다들 열심히 하고 있으니까 나도 분위기를 이어 열심히 개발에 집중할 수 있었다.
여기서 배운점들과 약간의 소소한 노하우들, 백엔드 팀장으로서 느꼈던 아쉬웠던 점들, 개발 외적으로 누군가를 이끌거나 운영해보는 경험들 등등은 디프만 최종 발표까지 가슴속에 응어리진 마음들이었다. 그래서 발표를 모두 끝마치고 이 아쉬움을 그대로 안고갈 수 없다고 생각해, 호기롭게 운영진에 지원했다(서류 검사할 때랑 면접 볼 때, 팀 빌딩 할 때 빼고는 모두 만족하고 행복했다).
6. 사이드 프로젝트
어떤 프로젝트인지 말할 수는 없지만, 헬스인들을 위한 서비스를 개발했었다. 사이드 프로젝트를 더 하고 싶은 마음이어서 Hola랑 Disquiet 등등을 뒤지고 있었는데, 마침 인기가 없는 우리 Node 서버 개발자를 뽑는 프로젝트를 하나 발견했다. 바로 지원했고, 다행히 좋게 봐주셔서 백엔드 개발자로서 합류할 수 있었다. 사실 여기서 배우고 성장한 게 가장 많은 것 같다고 생각한다. 왜냐하면, 내가 원하는 대로 개발을 할 수 있었기 때문이다.
내가 디프만에서 배운 것을 토대로 적극적으로 의견을 개진했고, 코드리뷰도 한 번에 10~20 코멘트를 달며 진심으로 코드를 읽어나갔다. 물론, 매우매우 착하게 리뷰했다. 확실히 실무자 분과 하니까 마음이 든든하긴 하더라. 하지만, 그분과 잠깐이나마 개발을 함께 하고 느낀 바로는 실무에서 얼마나 일했는지는 그다지 중요하지 않다는 것이었다.
실무자였지만, 코드가 상당히 난해했다. 응답을 핸들링 하기 전에 다 해놓고 다시 한 번 응답을 한다거나, 쿠키를 파싱할 때 하드하게 파싱하여 난해한 코드를 작성한다거나, 오타도 많고 api 경로도 중복되는 것도 많고, RESTful하게 짜지 않고 메서드를 이상하게 적었었고, 응답코드도 매칭되지 않고, GET 메서드에서 요청 바디를 사용하려고 하는 등등 뭔가 지금 돌이켜보니까 모든 점이 나빴다. 하지만, 오히려 타산지석으로 안 좋은 부분들을 통해서 내가 조심해야 할 부분을 깨달았고, 왜 이게 좋지 않은 코드인지 스스로에게 그리고 상대방에게 설명하면서 기본기를 많이 다질 수 있었다.
그리고 얼마 안가 스스로 그만두셨다. 사실 이때부터 내 세상이 펼쳐져서 너무 기뻤고, 다른 한 편으로는 남은 모든 것들과 이 사람이 짠 더티한 코드를 새롭게 리뉴얼 해야 한다는 사실에 벅차기도 했다. 처음부터 다시 인증부터 코드를 다시 짜내려갔고, 배포 파이프라인도 일일이 수정하면서 완성했다. 모든 API의 썩은 부분을 도려내고 새롭게 작성하면서 NestJS의 디자인 패턴에 익숙해져갔다. 프론트 NextJS도 github action이랑 code deploy, s3, ec2를 사용해 배포했고, HTTPS도 적용해보고 아마존 인스턴스별로 금액도 계산해봤다.
왜 사이드 프로젝트를 해야 하는지 가슴 깊이 알 수 있던 부분이었다. 만약 책으로만 공부했으면 이렇게 많이 성장하진 못했을 것 같다.
7. 쿠버네티스는 처음이라 풀잎스쿨 퍼실리테이터(스터디장)
한창 쿠버네티스가 인기여서 궁금해서 공부해봤다. 여기서 배운 것은 쿠버네티스가 아니라 오히려 오버 엔지니어링을 견제해야 한다는 사실이었다. 컨테이너 오케스트레이션 도구로서 굉장한 만족도를 가져다주는 도구이긴 하지만, 이를 세팅하기 위한 자원들 그리고 이를 유지하는 데에도 또 자원이 필요하며, 네트워크 지식 및 CS 지식이 어느 정도 뒷받침 되어야지 원활하게 적용할 수 있었기 때문이다.
물론 스터디는 만족스럽게 잘 운영하고 마무리했다. 뭔가 엄청 힘들었던 때라서 자세히 기억나진 않는다.
마치며
이 글을 1월에 쓰기 시작해서...2월이 됐고...3월이 훌쩍 지나갔고 벌써 4월이 다 됐다.
너무 달리기만 한 것 같아서 이제 슬슬 뒤를 돌아보며 내가 굴렀던 길을 다듬을 차례인 것 같다.
다시 돌아보면서 내가 부족했던 부분을 캐치하고 이번 기회에 잘 개선해보자.
아직 많이 부족한 나지만, 열심히 노력해서 메워야겠다.
'Diary > Retrospective' 카테고리의 다른 글
[Retrospective] 2023년 상반기 회고 (2) | 2023.07.01 |
---|---|
[Retrospective] 함수형 프로그래밍과 JavaScript ES6+ 스터디 후기 및 회고 (0) | 2023.05.23 |