나에게 쓰는 기록들

현재 배우는 것이 무엇이든 글로 써서 기록을 남기는 것은 가치가 있다. - 소프트웨어 장인

회고

나는 꽤 잘났지만 1년 반동안 취준을 했다 [장편]

그리무 2022. 7. 31. 01:27

이 글은 나의 취업 준비 과정에 대한 글이다. 취업 준비를 시작할 때만 해도 나는 꽤 잘났으며 누구보다 빠르게 원하는 회사에 취업할 수 있을 것이라 생각했다. 하지만 원하는 회사로 취업하기까지 1년 반이라는 긴 시간이 걸렸고, 그동안 정말 많은 고민들을 했다. 힘든 시간이었지만 그 고민들로 인해 나는 눈에 띄게 성장하고 달라졌기 때문에 그 과정을 공유하는 것은 아주 의미있는 일이 아닐까 싶다.

이 글은 매우 길다. 따라서 시간을 두고 친구의 옛날 이야기 들어주듯 읽어줬으면 한다. 이 글이 취업 준비 과정에서 어려움을 겪고 있는 모든 분들에게 작은 도움이 되었으면 한다.

😆


나는 전공자(컴퓨터공학과)이며 현재 우아한형제들 선물하기팀에서 웹 프론트엔드 개발을 하고 있다. 취업 전까지의 웹 개발 관련 경험을 표로 나타내보자면 다음과 같다.

 

시기 경험 -
2018.09 ~ 2019.06 자연어 논리 판단 웹 서비스 LOVA (졸업 프로젝트) 웹 프론트엔드 개발(React), 소규모
2019.09 ~ 2020.01 Bletcher (개인 프로젝트) 웹 개발(React, Node.js), 중간 규모
2020.01 ~ 2020.02 스타트업 2개월 단기 현장실습 웹 프론트엔드 개발 인턴
2020.03~ 취업 준비 시작  
2020.05.04 ~ 2020.05.22 네이버 핵데이 웹 개발(Next.js, Node.js), 소규모
2020.06 ~ 2021.04 Bletcher (개인 프로젝트) v2 웹 개발(React, Node.js), 중-대규모
2020.09 ~ 2021.09 알고리즘&CS 스터디 코딩테스트 & 면접 준비 스터디
2021.01 ~ 2021.06 SSAFY (삼성 청년 SW 아카데미) 소프트웨어 교육
2021.07 ~ 2021.08 우아한테크캠프 우아한형제들 교육형 채용연계인턴, 웹 개발
2021.10.08 우아한형제들 최종합격 🎉 🎉 🎉

 

취업 준비 초입의 내가 스스로 '꽤 잘났다'라고 생각할 수 있었던 이유는, 웹 개발에 꾸준히 관심을 가져왔으며 그 관심을 발전시켜 직접 기획하고 개발했던 개인 프로젝트(Bletcher)도 있었기 때문이다. 실제로 이 프로젝트는 채용 과정에서 호기심을 이끌어내기 충분했다. 하지만 이 경험으로부터 좋은 키워드를 찾아내 나만의 강점으로 연결짓는 전략이 부족해 많은 탈락을 경험했다. 이 잘난 나를! 이 좋은 프로젝트를! 어떻게 하면 살릴 수 있을까 고민을 하는 과정 속에서 나는 또 다른 경험들을 쌓아나갔다. 그리고 그 경험들로 인해 나는 매우 크게 성장했을 뿐만 아니라 원하는 기업상이나 내가 되고 싶은 개발자에 대한 모습도 점점 뚜렷해졌다.

지금부터 소개할 것은 그 '또 다른 경험들'이다. 어떤 노력을 해왔고 그를 통해 어떤 변화를 맞이할 수 있었는지, 꽤나 자세하게 기술해보려 하니 옛날 이야기를 듣는 것처럼 스-윽, 읽어주길 바란다.

 

2020 상반기, 네이버 핵데이 - 내 터닝포인트

네이버 핵데이는 웹 개발에 관심을 가지게 된 2017년도부터 쭉 도전해보고 싶었지만, 지원자격에서 요구하는 기술 경험이 없어서 늘 지원을 망설였던 활동이다. 하지만 2020년의 나에겐 좀 달랐다. 개인 프로젝트를 통해 경험을 쌓은 덕인지, 지원자격을 살펴보는데 "오, 이 정도면 한 번 지원해볼만 하다"라는 자신감이 생겼고 지원을 결심하게 되었다.

네이버 핵데이는 네이버 멘토님을 통해 뽑힌 팀원들과 해커톤을 진행하고, 우수참가자로 선정되면 네이버의 채용 전환형 인턴 면접 기회를 부여한다.

사실 첫 지원이라 합격은 기대도 하지 않았는데, 서류-코딩테스트 전형을 통과하고 멘토님, 5명의 팀원들과 핵데이에 참여하게 되었다. 몇 년 간 꼭 해보고 싶었던 활동인데 바로 합격이라니, 처음 느껴보는 합격의 기쁨에 너무 좋아서 방방 뛰었던 기억이 난다.

핵데이는 코로나 때문에 온라인으로 진행되었고, 3주 간 프로젝트 형식으로 하게 되었다. 프로젝트 주제는 '간단한 사용자 인터랙션을 통한 상품 추천 및 전시 개발'으로, 네이버 쇼핑 플랫폼 내에서 사용자 인터랙션과 상품 개인화 추천 기능을 구현하는 것이었다. 팀원들과 회의 후 내가 맡게 된 기능은 '사용자 인터랙션 구현'이었다. 사용자가 카드 스와이핑 인터랙션을 통해 상품에 대한 취향 정보를 남길 수 있도록 하는 기능이었다. 나는 hammer.js 라이브러리를 사용해 구현하였고 프론트와 백엔드 개발 모두에 참여하였다. 나는 기능 구현의 난이도를 떠나서, '그 과정에서 무엇을 얻었는가'를 생각하는 것이 가장 중요하다고 생각한다. 핵데이에서 얻은 것들로는 크게 3가지로 말할 수 있을 것 같다.

👌

첫째, 새로운 기술에 대한 자신감

나는 참 욕심이 많은 성격이다. 팀원들과 처음에 기술 스택 논의를 진행하면서 모르는 기술이 훨씬 많았지만, 욕심을 부려 이번 기회에 다 경험해보고 싶다고 말했다. 그렇게 정해진 기술 스택 중 모르는 기술은 TypeScript, Next.js, React Hooks, Styled-components였다. 세상에, 모르는 기술이라고 그냥 일을 막 벌렸지. React를 클래스 컴포넌트로 많이 다뤄봤으며 CSS에 자신이 있었지만 핵데이에서 팀원들이 작성한 코드는 그저 외계어에 불과했다. 이 외계어를 익혀서 3주만에 기능을 완성해야 하다니, 처음엔 조금 멘탈이 흔들렸다. 하지만 차근차근 시도해보자는 생각에 우선 Next.js 공식 문서 튜토리얼을 공부하며 번역해 문서화하였고, 팀원들에게도 공유하였다. 그리고 TypeScript는 코드 리뷰와 린터가 아주 큰 도움이 되었다. 팀원들의 코드를 관찰하고 린터가 잡아주는 에러를 하나씩 고쳐나가다보니 어느덧 TypeScript를 이해해가고 있었고, 팀원들에게 코드 리뷰를 받았을 때 'TypeScript 처음 사용하는 것 맞나요?'라는 질문도 받았다.

 

나머지 기술도 공식 문서 위주로 참고하며 익혀나갔고, 핵데이가 끝나갈 즈음엔 '아, 이제 어떤 새로운 기술을 만나더라도 망설임 없이 도입해보자라고 말할 수 있겠구나'라는 자신감이 들었다.

둘째, 코드 리뷰 활동

개발자로서 가장 중요하게 생각하는 가치가 무엇이냐 묻는다면 나는 '클린 코드'라고 대답한다. 예전부터 코드를 짠 후에 이 코드의 가독성은 좋은지, 중복 코드를 작성하진 않았는지 등을 검토하는 것이 습관이었다. 그리고 핵데이에서 처음으로 경험해본 코드 리뷰는 진심으로 가슴이 뛰고 행복한 활동이었다. 내 코드를 누군가가 리뷰해준다니, 그리고 다른 팀원의 코드를 읽으며 배울 점을 찾을 수 있다니.

코드 리뷰는 다음의 과정으로 이루어졌다. 각자의 브랜치에서 이슈 단위의 기능에 대한 코드를 작성한 후, 정해진 템플릿에 따라 Pull Request를 작성해 올리고, 2명 이상의 approve를 받아야 merge가 가능하였다. 처음에는 코드 리뷰가 참 어려웠다. 내 기여도가 0%인 코드를 읽어보고 코멘트까지 해주는 것은 절대 쉬운 일이 아니었다. 그래서 초반에는 '좋습니다!'라는 코멘트만 남기고 approve만 했던 것 같다. 모르는 기술을 익히는 과정이다보니 코드가 외계어처럼 느껴지기도 했고 말이다.(ㅋㅋㅋㅋ) 그래서 팀원들이 어떤 종류의 코멘트를 남기는지 관찰했고, 코드 리뷰에서는 '팀원의 코드를 읽어보았다'에 대한 인상을 남기는 것이 중요한 것 같다는 생각이 들었다. 그 생각 후에는 제안할 부분이 떠오르지 않아도 좀 더 디테일한 코멘트를 남기려고 노력했다. 특정 코드에 대해 '이 부분은 제가 몰랐던 부분인데 새로 알게 되었네요!!'라거나, '이렇게 작성하신 이유는 무엇인가요?'와 같은 질문을 던졌다. 리뷰 시 질문을 던지다보면 내가 놓친 부분이 있을까봐 코드를 더 잘 읽으려 노력하게 되고, 그 노력이 모여 새로운 제안으로 이어지기도 했다.

 

핵데이에서 겪은 코드 리뷰 과정은 이후의 모든 활동에 영향을 주게 된, 아주 중요한 터닝포인트가 되었다. 이 활동 이후의 모든 프로젝트에 PR을 통한 코드 리뷰를 적용했기 때문이다.

셋째, 강도 높은 일정에 대한 자신감

핵데이를 진행할 당시 나는 4학년 1학기 과정에 욕심을 내서 20학점을 듣고 있었다. 그리고 그 중 팀플이 포함된 과목이 3과목이었다. 즉 나는 개발에 쏟을 시간이 너무너무 없었고, 핵데이의 3주 기간동안 해 뜨는 것을 보면서 잤다. 눈을 뜨면 수업을 듣고, 수업을 다 들으면 새벽 5시까지 개발하고의 연속이었다. 오죽하면 해가 진 시간에 잠을 자는 것이 소원이었다.

이렇게 강도 높은 일정을 유지하며 힘들게 개발을 했지만, 아이러니하게도 이 경험은 훗날 나의 자신감이 되었다. 취준 기간동안 강도 높은 프로젝트를 진행할 일이 참 많았는데, 그 때마다 핵데이를 떠올리며 '아유 내가 20학점 들으면서 핵데이도 했는데 뭘'이라는 마인드로 자신감 있게 참여했던 것 같다.

✌️

핵데이에서 만난 팀원들은 모두 너무나 뛰어나고 경험도 많은 분들이었다. 멘토님도 참 좋으신 분이라서 팀 내의 단합력이나 케미가 좋았던 같다. 팀원들과 멘토님이 좋은 자극이 되어 나는 맡은 기능에 대한 책임감을 가지고 끝까지 열심히 참여했고, 우수참가자로 선정되는 결과까지 얻게 되었다. 이 활동은 취업 준비의 초입에서 좋은 터닝포인트로 작용하여 앞으로의 활동에 큰 영향을 주었다. 가장 먼저 영향을 받은 것은 앞서 언급했던 내 개인 프로젝트인 Bletcher이다. 핵데이 과정을 통해 이전에 작성했던 코드에서 어떤 고민들이 더 필요한지 알게 되었고, Issue를 통한 task 관리와 PR을 통한 코드 리뷰 등을 적용해보고 싶다는 생각이 들었다. 그래서 핵데이가 끝난 후 여름방학에 Bletcher v2 프로젝트를 기획하게 되었다.

 

2020 여름방학, Bletcher v2 - 내가 정말 사랑하는 프로젝트

Bletcher는 직접 기획한 아이디어를 실현해본 프로젝트이기도 하고, 네이버 멘토님께서 아이디어가 정말 좋다고 칭찬해주신 프로젝트이기도 하고, 참 있는 그대로 애정이 많이 가는 프로젝트이다. 하지만 다른 일로 점점 바빠지고 기존에 함께 하던 팀원도 사정상 함께할 수 없게 되어 흐지부지되고 있었다. 이대로 흐지부지되기엔 너무 아까운 프로젝트라는 생각도 들었고, 핵데이를 통해 다시 작성해보고 싶은 코드도 정말 많이 생각나서 이 프로젝트를 새롭게 살려보기로 했다. 그 첫걸음으로 우선 새로운 팀원들을 구했는데, 이번엔 스타트업 현장실습에서 만난 디자이너 친구들과도 함께 하게 되었다. 팀원들이 바뀌었고 나 스스로도 핵데이를 통해 이전보다 훨씬 성장하게 되었기에 프로젝트 과정은 이전과 확실히 다르게 흘러갔다. '그 과정에서 무엇을 얻었는가'에 대한 것을 이번에도 3가지로 소개해보겠다.

 

👌

첫째, '좋은 팀'에 대한 생각

이전에는 이 프로젝트를 두 명이서 개발하고 있었다. 그렇다보니 기획 규모 대비 개발 인력이 부족하다는 것을 절실히 느꼈고, 코드 관련해 다양한 이야기를 나누기도 어렵다는 아쉬움이 있었다. 그래서 새로운 팀을 꾸릴 땐 팀원들이 많고 단합이 잘 됐으면 좋겠다는 생각을 많이 했다. 이 생각은 내가 정말 믿고 좋아하는 친구들과 팀을 같이 하면 좋겠다는 생각으로 이어졌고, 그 친구들 한 명 한 명에게 직접 여러 번 이야기하며 같이 하자고 제안했다. 속으로는 굉장히 애가 탔지만 겉으로는 부담을 주지 않는 말들로 설득하려 많이 노력했던 것 같다. 그렇게 디자이너 2명과 웹 개발 3명, AI 개발 1명으로 팀이 꾸려졌다.

팀이 꾸려진 이후로 나는 '좋은 팀'을 만들고 싶다는 생각이 1순위였다. 내가 생각하는 '좋은 팀'을 만들기 위해 참 많은 고민과 노력을 했던 것 같다. 그 중 크게 3가지를 추려보자면 다음과 같다.

 

1. 팀원 간의 유대감 형성하기

팀원들 중 개발자 4명끼리는 잘 알고 있는 대학 동기들이었지만, 디자이너 2명은 나와만 친분이 있었다. 그래서 처음엔 다같이 친해져서 유대감을 형성하고 좋은 팀워크를 만들어갔으면 했다. 그를 위해 주기적으로 팀원 전체가 모여 회의 및 개발을 진행하고, 끝나면 회식하는 약속을 만들었다. 생각보다 6명 모두의 시간을 맞추기 어려워 일부만 참석하는 경우도 있었지만, 그래도 덕분에 많이 친해지고 즐겁게 프로젝트를 진행할 수 있었던 것 같다.

2. 팀원을 1명 밖에 구하지 못한 AI 개발 영역 고려하기

팀원을 많이 구했으면 했지만, 주변 친구들의 진로가 각기 달라 AI 개발자는 결국 1명밖에 구하지 못했다. 그 친구에게 미안한 마음도 있었고, 내가 이전 프로젝트를 개발하면서 느낀 아쉬움(개발 인력 부족, 코드 관련 이야기 공유가 어려움)을 최대한 느끼지 않도록 해주고 싶었다. 그래서 AI 개발 영역일지라도 개발자 모두 함께 논의하고 고민을 공유할 수 있도록 분위기를 만들어가는 노력을 했다. 프로젝트 막바지에는 모두가 함께 머리를 싸매고 파이썬 코드를 고치고 있기도 했다. 사실 이건 나의 노력이라기 보다는, 자신의 개발 영역 상관 없이 이렇게 함께 고민해주는 팀원들이 참 소중하다 느꼈다.

3. 팀장 잘하기

팀을 만들며 내가 팀장을 자처했다. 팀장이 되면서 나에겐 팀의 목표를 꾸준히 리마인드하는 것, 일정을 관리하는 것, 회의를 이끌어가는 것 등 다양한 책임감이 부여되었다. 덕분에 좋은 팀장이란 무엇일까에 대한 고민도 참 많이 하게 되었는데, 결국 좋은 팀, 즐거운 팀을 만들어나가기 위해서는 내가 좀 더 많이 하더라도 팀원들에게 최대한 스트레스를 주지 않아야 한다는 결론에 도달했다. 그래서 늘 '팀원들보다 조금 더'라는 마음으로 임했다. 팀원들보다 조금 더 팀에 애정을 가지기, 일정이 빠듯하면 내가 조금 더 긴장하기, 개발이 막히면 팀원들보다 내가 조금 더 시도해보기, 가끔 힘들게 느껴져도 팀원들보다 좀 더 밝게 웃기, 이런 것들을 실천하려 노력했다.

 

사실 위 노력들이 혼자서 한 것이기에 실제로 적용되었는지는 팀원들만 알고 있을 것이다. 그래도 '좋은 팀'에 대해 내내 고민해보는 좋은 경험이 되었고, 협업 과정에 있어서 참 많이 성장한 것 같다. 비록 좋은 팀을 못 만들었을지라도,

나 많이 노력했다 친구들아 !!!!! 같이 팀해줘서 고마워 ❤️❤️❤️

둘째, 디자이너와의 협업

프론트엔드 개발자라면 디자이너와의 협업이 얼마나 소중한 경험인지 공감할 것이다. 나도 당시 소중한 경험이라는 것은 알고 있었지만, 커뮤니케이션 측면이나 현장실습 경험을 통해 깨달은 것(ex. 디자이너는 1px에도 민감하다던지,,) 정도로만 경험할 것이라 생각했다. 하지만 생각보다 더 중요한 경험을 할 수 있었다.

 

1. 기획에 대한 색다른 관점을 배울 수 있었다

프로젝트가 시작되면서 팀원들에게 원래의 기획에 대해 소개를 했다. 그리고 기획과 관련해 디자이너 팀원들이 이야기를 좀 더 나눠보며 구체적으로 기획안을 작성해보겠다고 했다. 그렇게 작성된 기획안에 대한 회의를 하게 되었는데, 프로젝트 주제에 대해 디자이너와 개발자가 바라보는 관점이 다르다는 것을 알게 되었다. 아무래도 각자의 경험이나 전공 분야가 달라서 그렇게 다른 관점에서의 의견들이 나오게 된 것 같다. 서로의 관점을 인정하며 '아, 이렇게 다르게 생각할 수도 있구나'라는 이야기를 나눴던 기억이 난다. 덕분에 이전보다 훨씬 정제된 기획안이 나오게 되었고, 다양한 관점을 가진 사람들이 모여 이야기를 나눈다는 것이 얼마나 중요한 일인지 알게 되었다.

2. 디자인 그대로 개발하기는 어려울 수 있다

디자인이 완성되어 전달되었을 때, 프론트 개발을 맡은 팀원과 어떤 방식으로 컴포넌트를 설계할 것인지 이야기를 나누었다. 그리고 그 디자인에 따라 그대로 개발을 진행했을 때 컴포넌트 설계가 매우 복잡해진다는 것을 알게 되었다. 디자인 그대로 개발을 진행할 수도 있었지만, 개발자로서 코드의 유지보수성이나 컴포넌트의 역할에 대해 생각하지 않을 수 없었다. 결국 이 부분에 대해 디자이너와 다시 한 번 이야기를 나누었고, 그 과정에서 개발 시 문제점이 되는 부분을 디자이너가 이해할 수 있도록 설명하기 위해 노력하였다. 그 결과 디자인이 수정되어 좀 더 수월한 방식으로 컴포넌트를 설계하고 코드를 작성할 수 있었다. 이 경험을 통해 개발자로서 디자인을 있는 그대로 받아들이기보다, 함께 커뮤니케이션하며 더 알맞은 방향을 타협해나가는 것도 중요하다는 것을 깨달았다.

이렇게 디자이너와의 협업을 통해 깨달은 점은 현재 업무를 진행하면서도 크게 도움이 되고 있다. 친한 친구들과 가깝고 편한 분위기에서 스스럼없이 의견을 내고 논의를 진행했기 때문에 더 얻을 수 있었던 소중한 경험인 것 같다.

셋째, '이유' 있는 코드에 대한 고민

네이버 핵데이를 통해 기술 지식이 부족함을 많이 깨달았다고 언급했었다. 그리고 지식을 습득할 때 가장 중요한 것은 아무래도 '왜?' 라는 질문을 반복해보는 것인 것 같다. 그래서 Bletcher의 코드를 작성할 때는 모든 코드에 대해 '왜?'라는 질문을 던졌고, 한 줄을 작성하더라도 '이유'있는 코드를 작성하려 노력했다.

'이유'에 대한 질문은 프로젝트 구조를 설계하고 컨벤션을 설정할 때부터 시작했다. 패키지 매니저부터 yarn을 요즘 많이 쓴다던데 왜 그럴까?, 컴포넌트 분리 기준이 고민되는데 어떤 근거로 그 기준을 설명할 수 있을까?, A 코드보다 B 코드가 좋다면 왜 그런걸까? 등 다양한 질문들을 회의 시간에 나눴고, 그 질문에 대한 해답을 찾아본 뒤 이슈에 정리하여 공유하였다.

 

또한, 네이버 핵데이에서 알게 된 Pull Request를 통한 코드 리뷰를 도입하여 팀원의 코드를 매우 꼼꼼히 살펴보고 리뷰하였다. 팀원들끼리 버그가 존재하거나 확인되지 않은 PR은 절대 master에 merge할 수 없다는 규칙을 만들었고, PR이 올라오면 그 브랜치를 pull 받아 기능을 재현해보며 버그가 없는지 확인했다.(자체 QA) 코드 리뷰는 옆에 팀원이 PR이 작성해둔 글, clean-code-javascript 글을 띄워놓고 모든 코드를 다 읽어보았다. 더 좋은 코드가 생각나면 망설임 없이 제안하였고, 이해가 안 가는 부분은 모조리 질문하였다. 아무래도 친한 친구들이라 이렇게 날것의 PR 리뷰가 가능했던 것 같다.

프로젝트를 진행할 당시 나는 거의 프로젝트 전체 코드에 기여하겠다는 마음으로 참여했던 것 같다. 코드 한 줄 한 줄에 '이유'와 '근거'를 부여한 결과 나는 이전보다 굉장히 많이 성장할 수 있었고, 기술 지식에 있어 빈 틈을 많이 메울 수 있었다. 특히 이 프로젝트 이후로 나는 '코드 리뷰에 매우 집착하는 사람'이 되었는데, 이후 만난 팀원들이 이런 날 많이 싫어했던 것 같다. ㅋㅋㅋㅋㅋㅋ (아 ~ 그림님 그냥 머지하면 안 돼요!??!)

✌️

Bletcher 프로젝트가 끝날 즈음엔 고민을 많이 했던 만큼 스스로 단단해짐을 느끼게 되었다. 이 프로젝트 하나에 소프트웨어 기획-설계-개발-유지보수(리팩터링) 전 프로세스 경험, 디자이너와의 협업 경험, 팀장으로서의 고민 등 많은 것을 담았기 때문에 프로젝트 경험이나 협업 경험으로는 충분하다고 느꼈다. 그리고 이 시점에서 나에게 부족한 것은 코딩테스트와 면접을 대비하기 위한 알고리즘 실력과 CS 지식이라는 생각이 들었다.

 

2020 하반기, 알고리즘&CS 스터디 - 작게 시작한 스터디로 스타 800개 만들기

Bletcher 프로젝트로 불태웠던 여름방학이 지나고, 하반기가 찾아왔다. 2020 하반기는 내가 취업에 대한 목표 시기로 잡았기에 내게 부족한 알고리즘 실력과 CS 지식을 채우는 것이 더욱 조급하게 느껴졌다. 그래서 이번엔 스터디를 기획했다. 개발자 취업에 알고리즘과 CS 지식은 필수로 작용하기 때문에 친한 대학 동기들에게 이야기하여 가볍게 스터디원들을 모았다. 스터디를 기획한 이유는, 알고리즘과 CS 지식은 꾸준히 반복하여 습득하는 것이 핵심인데 혼자서 공부하다보니 그 루틴이 잘 안 만들어졌기 때문이다. 스터디 규칙은 다음과 같았다.

  • 일주일마다 정해진 알고리즘 문제 2-3개를 풀어 인증한다.
  • 일주일에 1회 정기 회의를 통해 정해진 주제에 대한 CS 스터디를 진행한다.
  • 스터디 참여 시 3개의 와일드카드가 부여되며, 알고리즘 문제 미인증 또는 정기 회의 미참여 시 와일드카드가 삭감된다. 와일드카드가 0개가 될 경우 스터디를 떠난다.

이 스터디의 자극점은 스터디원이 대학 동기라는 점에 있었다. 알고리즘 문제가 도저히 안 풀려서 포기를 하거나 풀이를 찾아보려는 생각이 들 때, 그동안 나와 같은 과정을 밟아온 대학 동기들이 문제를 뚝딱 풀어 올리는 것을 보면 굉장한 자극이 되었다. CS 스터디도 마찬가지였다. 친구들도 나와 비슷한 마음이었는지는 모르지만 우리끼리 괜한 오기가 생겨서라도 더 열심히 했던 것 같다. 결국 와일드카드가 0개가 되어 나간 스터디원은 단 한 명도 없었다.

 

https://github.com/Seogeurim/Algorithm-practice

알고리즘 실력은 계단식으로 오른다고 한다. 처음엔 2시간을 매달려도 못 풀던 문제가 있었다. 그 문제를 동기들이 하나 둘 풀어서 올리는 것을 보며 나는 한 번만 더 생각해보자, 이렇게 다시 한 번 생각해보자, 하며 천천히 사고력을 길렀다. 이 사고력을 반복하다보면 계단을 하나씩 오르게 되고, 어느새 난 같은 유형의 문제를 30분 만에 풀어버리고 있었다. 그렇게 하반기동안 알고리즘 문제를 200문제 이상 풀었다. (전체 취준 기간동안은 300문제 정도를 풀었다.)

(깨알 홍보) https://github.com/Seogeurim/CS-study

CS 지식은 처음엔 한 명씩 돌아가며 각 주제를 발표하는 식으로 진행했는데, 이 발표 자료의 퀄리티가 누군가에 의해 상향평준화되기 시작했다. 우리만 보기엔 그 자료가 너무 아깝다는 생각이 들어서 깃허브에 저장소를 따로 파서 올리기 시작했다. 그리고 이 저장소를 활용해 계속 스터디 기록을 남겼다. 주제를 다 돌아버려서 더이상 진행할 주제가 없을 땐 스터디 진행 방식만 바꿔서 계속 반복하고 반복하여 공부했다. 그 결과 리파지토리가 꽤나 알차게 채워졌는데, 지금은 꽤 많은 스타를 받았다. ✌️

이 스터디는 나중에는 면접 스터디로까지 발전하여 취업 직전(~2021 여름)까지 진행했다. 이 스터디가 면접을 준비하는데 가장 큰 도움이 되어주었다.

 

아무튼, 야심차게 시작했던 2020 하반기는 서류와 코딩테스트 전형에서 대거 탈락하게 되었다. 스터디를 더 빨리 시작했어야 했나, 서류 잘 쓰는 법 고민을 먼저 했어야 했나, 많은 좌절감과 고민의 상태에서 대학교 졸업을 앞두게 되었다. 취업에 대한 목표 시기를 이미 놓친 만큼 나에겐 새로운 목표 정립이 필요했다. 그리고 나는 빠르게 취업을 하는 것보다 시간이 더 많이 걸리더라도 정말 내가 원하는 회사에 취업을 하고 싶었다. 그럼 내가 원하는 회사는 어디일까. 이에 대한 대답으로 나는 연봉이 높은 곳, 개발 문화가 좋은 곳 등 아주 막연한 기준만을 가지고 있었기 때문에 좀 더 시간을 두고 생각해볼 필요가 있다고 생각했고, 그에 대한 대안으로 선택한 것은 SSAFY였다.

 

2021 상반기, SSAFY - 어떤 경험이든 다 쓸모가 있다

SSAFY에 지원한 개인적인 이유는 다음과 같다.

  • 졸업 후 소속이 사라지면 취업 준비하며 불안할 것 같았다. → SSAFY에 소속하여 마음에 안정감을 가지자!
  • 취업 준비와 알바를 병행하다보니 시간과 체력 소모가 너무 크다. → SSAFY는 소프트웨어 교육 뿐만 아니라 매달 지원금을 제공한다.
  • 서류탈, 코테탈의 원인을 찾아야 했다. → SSAFY에서는 취업 컨설팅(서류 첨삭 및 모의면접 지원), 알고리즘 교육을 제공한다.

위 이유로 SSAFY에 들어가게 되었지만, 사실 교육 과정이 나에게는 잘 맞지 않았던 것 같다. 전공자반인데도 불구하고 교육이 너무 기초부터 진행된다는 느낌을 받았고, 웹 개발을 배울 땐 프레임워크의 내부 원리나 언어나 패러다임에 대한 사고력을 기르기 보다는 기술의 사용법을 가르쳐준다는 생각이 많이 들었다. 그리고 매일 주중 9시부터 6시까지 교육이 진행되고, 6시 이후 제출해야하는 과제도 있었기 때문에 교육 과정 자체에 들여야 하는 시간이 아주 많았다. 즉 나는 교육 과정에 들이는 시간은 아주 많았지만 그에 대응하는 발전이나 성장을 느끼지 못했으며, 그 과정에서 생기는 기술적 갈증을 해결하지 못하고 쌓아만 두게 되었다. 이는 번아웃으로 이어졌고 몸도 많이 망가지게 되었다. 정말 건강하고 체력도 좋은 편이었는데 생애 첫 응급실행을 했으니, 스트레스가 말도 아니었다.

그래도 우리 엄마는 어떤 경험이든 다 쓸모가 있다고 늘 말씀하셨다. SSAFY를 통해 얻게 된 것도 분명히 있었고, 2가지 정도로 정리해보자면 다음과 같다.

🤞

첫째, 백엔드 나도 쪼오끔은 알고 있어

SSAFY는 프론트엔드보다는 백엔드 위주로 교육이 진행되었고 전공자반은 Java를 통한 수업이 진행되었다. Java에 대한 언어적 이해를 쌓은 뒤 Spring, Spring Boot 프레임워크까지 배울 수 있는 기회가 주어졌다. 이 때 정말 재미있게 배웠던 것 같다. 나중에 프론트 개발자가 되어 협업을 하게 된다면 Java로 개발하는 백엔드 개발자분들과 소통하게 될 것이라고 생각하고 있었는데, Spring에 대한 지식이 전혀 없어서 가지고 있었던 막연한 두려움을 해소할 수 있었다.

여기서 잠시 내가 가지고 있는 '프론트엔드 개발자로서의 백엔드 개발 지식에 대한 중요성'을 언급하자면, 나는 이를 졸업 프로젝트를 하면서 깨달은 적이 있다. 프로젝트 당시 웹 개발은 2명이서 진행하였고 나는 프론트엔드 개발, 다른 팀원이 백엔드 개발을 맡게 되었다. 이 때 나는 백엔드 개발에 대한 지식이 전혀 없었고 그렇다보니 커뮤니케이션이 정말 어렵다는 것을 느끼게 되었다. 기본적으로 백엔드에서 구현이 가능한지, 구현이 가능하다면 어떻게 request를 보내고 어떤 형식의 response를 받는게 좋은지, 이런 것에 대한 지식이 전혀 없으니 팀원과의 소통이 벽에 대고 말하는 것과 다를 바가 없었던 것이다. 이 때부터 프론트엔드 개발자를 꿈꾼다면 백엔드 개발에 대한 기본적인 지식은 필수이겠다고 생각하게 되었고, Node.js 기반으로 백엔드 공부를 하기 시작하여 개인 프로젝트를 통해 구현 경험을 쌓았었다.

그리고 SSAFY에서는 백엔드 구현 경험을 Java 기반으로 쌓을 수 있었던 것이 정말 좋은 경험으로 남았던 것 같다. 1학기가 끝나갈 때쯤 작은 프로젝트를 하게 되었는데, 당시 나는 교육 과정에서 다루지 않았던 'JsonWebToken을 통한 사용자 인증'을 Spring Boot로 구현하였다. 모르는 부분에 대해 계속 찾고, 코드를 어떻게 짜는게 좋을지 고민하고, 플로우에 대해 이해하고, 이런 과정들을 겪으면서 정말 오랜만에 뇌와 손이 춤추는 개발(나는 개발을 하며 재밌고 신날 때 뇌와 손이 춤추는 것 같은 느낌이다)을 한다고 느꼈다.

글을 쓰는 지금 시점에서는 그 때 공부했던 부분을 사실 많이 까먹었다. 하지만 '구현 경험을 가지고 있다'는 사실은 결국 해보지 않은 영역에 대한 두려움을 해소시켜주는 것이니까, 그것만으로 아주 큰 경험이라고 생각한다.

둘째, 난 이런걸 좋아하는 개발자구나

SSAFY 과정 당시 나는 진로를 이야기할 때 '프론트엔드 개발자'보다는 '웹 개발자'라고 이야기했었다. 프론트가 언제나 조금 더 재밌었지만 백엔드 개발도 정말 재밌게 느꼈기 때문에 미련의 끈을 놓지 못했었다. 그렇다고 진로를 '백엔드 개발자'라고 이야기하지도 못했는데, 그 이유는 그동안 쌓아온 경험들이 프론트 개발 위주였으며 백엔드 개발자를 준비하기 위해서는 훨씬 더 많은 시간이 필요했기 때문이다. 이러한 진로에 대한 모호함내가 어떤 개발자가 될 것인지, 어떤 회사에 가고 싶은지에 대한 모호함으로 이어졌다. SSAFY 1학기 과정에는 '관통 프로젝트'라는 트랙이 있다. 이는 하나의 프로젝트에 그때그때 배운 내용을 적용해보며 프로젝트를 완성시켜나감과 동시에 기술에 대한 감을 익혀 나가는 과정이다. 프로젝트 팀원은 주기적으로 바뀌었으며 그때마다 나의 구현 범위나 내용도 달라졌기 때문에, 1학기 내내 다양한 고민을 할 수 있었고 내가 가진 모호한 고민들을 확실하게 해결할 수 있었다.

 

우선 나는 '프론트엔드 개발'로 확실히 진로를 정하게 되었다. 프로젝트를 하면서 프론트엔드와 백엔드 개발 모두에 참여하였고 역시 모두 재밌다고 느꼈었다. 하지만 프론트엔드 개발을 할 때는 좀 더 많은 고민을 한다는 것을 알 수 있었다. 더 좋은 프로젝트 구조가 있을지, 컴포넌트는 적절하게 분리하였는지, UI는 괜찮은지 등 백엔드 개발을 할 때보다 훨씬 예민하게 고민하고 코드에 녹여내려는 노력을 한다는걸 느끼게 되었다. 그래서 1학기가 끝날 즈음엔 백엔드 개발 경험을 더 쌓기보다 '프론트엔드 개발 하나라도 제대로 깊이 파보자'라는 생각을 하게 되었다.

이에 이어서 '어떤 개발자가 되고 싶은가'에 대한 대답도 찾을 수 있었다. 나는 최선의 코드를 위한 고민을 지속적으로 하는 개발자가 되고 싶었다. 좋은 코드라는 것은 주관적이기 때문에 나 혼자 최선을 만들어낼 수는 없고 반드시 팀원의 도움이 필요하다. 그리고 그 수단으로 가장 좋은 것은 코드 리뷰라고 생각한다. 하지만 SSAFY에서 팀원과 코드 리뷰를 하는 것은 정말 어려웠다. SSAFY 과정이 워낙 타이트해서 개발할 시간만으로 벅차기도 했고, 코드 리뷰는 물론 깃허브 경험이 없는 분들도 많았기 때문이다. 여기서 나는 언제나 '그래도'를 외쳤다. "우리 바쁘지만 그래도 아주 조금이라도 좋으니 코드 리뷰 해보아요", "깃허브가 아직 낯설겠지만 그래도 한 번 해보아요, 제가 아는 지식 선에서 매번 도움 드릴게요", 이런 말을 많이 했던 것 같다. 그런 상황들이 많이 반복되다보니 나는 개발 과정 중 코드 리뷰 과정을 제일 좋아하는구나, 나는 코드에 대한 고민을 끊임없이 하길 원하는구나, 그런 개발자가 되고 싶구나, 라는 것을 알게 되었다.

내가 되고 싶은 개발자에 대한 형상이 잡히니 '어떤 회사에서 일하고 싶은지'에 대한 답을 얻을 수 있었다. 개발 일정에 쫓기는 것보다 그 과정에서 코드에 대한 고민을 나눌 수 있는 회사, 그를 통해 팀원들 모두가 성장할 수 있는 회사에 가고 싶었다. 이것이 정해지고 난 뒤부터는 이런 회사에 갈 수 있는 확률을 높이는 법에 대해 생각하였다. 우선 내가 생각한 회사는 '개발 문화'를 고민하는 분위기와 가장 관련있다고 생각했기 때문에 IT 기업을 선택하는 것이 좋을 것이라 생각했고, 개발 일정에 쫓기는 정도가 심하지 않으려면 스타트업보다는 규모가 어느 정도 있는 기업에 가는 것이 좋을 것이라 생각했다. 물론 확률적으로 말이다. (편견이 담겼을 수 있으나, 2개월 간의 스타트업 인턴 경험에서 일정에 쫓기는 정도가 심했기 때문에 들었던 생각이다.)

이렇게 내가 가고자 하는 방향에 대한 확신이 생긴 후부터는 나 자신을 표현하는 것에 있어서도 전보다 훨씬 단단해진 느낌이 들었다. 이 과정이 있었기 때문에 이 다음 과정인 우아한테크캠프에서 보여주고 싶은 모습을 제대로 보여줄 수 있었던 것 같다.

🖐

 

이렇게 SSAFY의 1학기 과정을 겪었던 6개월동안 안 좋은 경험도 있었지만 좋은 고민도 많이 했던 시간을 보냈고, 1학기 과정이 끝나갈 때쯤 2학기 과정에서는 더이상 얻을 수 있는 것이 없다고 판단하게 되었다. 나는 퇴소를 결심하였고 '다른 곳으로 소속해야 나갈 수 있다!'는 마음으로 다음 소속지를 찾았다. 내가 설정한 방향에 해당하는 다양한 회사를 지원하였고, 그 중에서도 1순위로 합격을 원했던 곳은 '우아한테크캠프'이다.

우아한테크캠프 지원

다음 소속지를 찾는 과정에서 서류 합격률이 올라가면서 다양한 합격 소식을 받을 수 있었다. 그 중에는 신입 채용에 대한 면접 기회도 있었지만, 나는 교육형 인턴인 우아한테크캠프를 1순위로 합격하길 원했다. 신입으로 바로 취업하는 것보다 인턴을 선택하고 싶었던 것이 꽤나 도전적이라는 주변의 반응도 있었다. 하지만 나는 당시 취업에 대한 욕구보다, SSAFY 과정에서 기술적 갈증을 느낀 부분이 많았기 때문에 프론트 개발과 특히 자바스크립트 기본기를 탄탄히 채우는 것에 대한 욕구가 더 강했다. 그리고 그 어떤 회사보다도 우아한형제들 회사에 관심이 많이 갔다. 우아한형제들은 기업 문화, 개발 문화를 만들어가는 것에 아주 진심인 회사라는 것을 대외적으로 느낀 적이 많았다. '우아한테크세미나'와 '우아한테크러닝'을 참여한 적이 몇 번 있었고 기술블로그도 여러 번 접했었는데, 그 때 '코드에 대한 고민', '고민한 것은 모두에게 공유', '경쟁이 아닌 함께 성장', '최고가 되어 떠나라'는 개발 문화를 느낄 수 있었다. 이렇게 개발 문화가 대외적으로 느껴질 정도라면 내부 개발자들은 이 개발 문화를 함께 만들어가며 얼마나 성장하고 있을까라는 생각이 들어서 정말 관심이 많이 갔다.

우아한테크캠프는 서류, 코딩테스트, 과제테스트, 면접으로 선발한다. 나는 전년도에 우아한테크캠프를 지원했다가 과제테스트에서 탈락한 경험이 있었는데, 이번에는 정말 '붙어야 한다'는 생각으로 이 악물고 준비했다. 과제 테스트는 프로그래머스의 과제관의 고양이 문제를 계속 리팩터링해보며 3번 정도 반복해서 풀었다. 면접은 자소서에서 나올 수 있을 만한 모든 질문들을 적어보고 계속 연습해보며 붙자, 붙자!! 이런 생각으로 준비했다. 이렇게 준비하니 합격했을 때 내 반응은 '와! 합격했다!'가 아니라, '됐다, 붙었어. 그래. 휴, 다행이다. 됐다!'로 나왔던 기억이 난다.

 

됐다, 붙었어. 그래. 휴, 다행이다. 됐다!

 

2021 여름, 우아한테크캠프 - 취준의 눈물

우아한테크캠프를 '취준의 눈물'이라 표현한 이유는, 내 취업 준비 과정 중 캠프가 끝판왕이라고 생각하기 때문이다. 정말x3 힘들었고 모든 것을 쏟아부어 최선을 다했던 것 같다. 그리고 그만큼 단기간에 굉장히 많이 성장했다. 우아한테크캠프를 진행할 시점의 나는 그동안 얻은 것을 바탕으로 방향을 설정한 뒤였기 때문에, 얻은 것보다는 에피소드 3가지로 어떤 과정을 거쳤는지 이야기해보겠다.

에피소드1. 아~ 그림님~ 그냥 머지하면 안돼요?

내가 가장 많이 들었던 말이다. 캠프에서 나는 코드 리뷰에 미친 사람이었다. SSAFY에서 겪은 아쉬움을 그냥 마음껏 눈치 보지 않고 펼쳤달까.

캠프는 매우 짧은 시간 안에 정해진 요구사항대로 구현을 해내야 한다. 여기서 '프로젝트의 완성도에 집중할 것인가', '내부 구현에 대한 고민에 집중할 것인가'에 대한 두 가지 가치관이 충돌하게 되었다. 나는 후자의 가치관을 가지고 있었고, 팀에 이 가치관을 전파하고 싶어했다. 사실 팀에서 나의 가치관을 강요하는 것은 좋지 않은 행위이다. 하지만 우아한테크캠프의 목적이 '성장'이고, 이는 '교육' 과정이며 교육을 맡아주신 분들께서 코드 리뷰의 중요성을 강조하셨기 때문에 이 가치관을 마음껏 전파할 수 있었다. 무작정 강요하기보다는, 팀원들과 처음 만났을 때 미팅에서 내 성향을 설명하고 동의하는지 여쭤본 후 코드 리뷰에 대한 규칙을 세워서 지키는 방식으로 이 가치관을 지켜나갔다.

그럼에도 불구하고 '그림님~ 그냥 머지하면 안돼요?'를 많이 들었던 이유는, 시간이 정말 부족한데 내가 코드 리뷰를 너무 꼼꼼하게 챙기려 했기 때문이다. 버그가 있는 코드는 머지하지 않는다던가, 컨벤션을 잘 지켰는지 리뷰 때 검토하자던가, 이런 규칙들을 융통성 없이 모든 상황에서 지키려했기 때문에 아무래도 팀원분들이 힘들어했던 것 같다. 그렇지마안~(ㅋㅋㅋ), 일정을 지키는 것이 훨씬 중요한 과제라면 당연히 완성도가 더 중요하겠지만 당시에는 '코드 리뷰를 통한 성장'에 목말라있었기 때문에 이를 꼭 지키고 싶었다.

코드 리뷰는 진심으로 했다. 팀원의 코드를 돌려보고, 모르는 부분이 있으면 질문하고, 더 좋은 코드가 생각나면 제안도 했다. 팀원이 더 좋은 코드를 제안했을 때 내 코드를 설득하고 싶다면 그 근거를 찾기 위해 자료 검색하는 과정에서 또 다른 기술 지식을 얻기도 했다. 캠프 과정에서 내 성장의 동력은 코드 리뷰였다.

에피소드2. 맨날 맨날 감사한 멘토님

캠프에서는 우아한형제들 현직자와의 멘토링을 지원해주었다. 캠프 과정에서 성장의 동력이 코드 리뷰였다면, 성장의 방향을 제시해주었던 것은 멘토링이었다. 내가 만났던 멘토님은 정해진 멘토링 시간보다 더 많은 시간을 지원해주시며 그 시간 동안은 어떤 고민이든 자유롭게 털어놓을 수 있도록 격려해주셨다. 그리고 그 고민에 대한 멘토님의 생각도 들려주셨는데, 그 이야기는 '어떤 개발자가 될 것인가'에 대한 관점을 넓혀주었으며 우아한형제들의 기업 문화 및 개발 문화까지 짐작할 수 있었다.

내가 가장 많이 털어놓았던 고민은 '협업'에 관한 고민들이었다. 나는 우아한테크캠프 이전에도 협업 경험을 많이 가지고 있었지만, 캠프에서 만난 새로운 분들과의 협업은 또 처음이다보니 매주 새로운 고민들이 생겨났다. 그 고민들 속에는 프론트엔드 개발자로서 중요하게 생각하는 가치에 대한 충돌, 팀원과 기술 경험에 대한 싱크를 서로 맞추는 방법, 감정이 상하지 않는 커뮤니케이션 방법 등 다양한 협업 관련 주제가 담겨있었다. 그리고 고민을 털어놓을 때마다 멘토님은 공통적으로 '팀원 간의 유대감'을 강조하셨다. 처음에는 유대감이라는 단어도 생소하게 느껴지고 고민의 주제와는 동떨어진 이야기라고 느껴졌다. 하지만 이는 오히려 모든 고민들을 관통하는 이야기였다. 새로 만난 팀원들과 무작정 프로젝트를 수행하기에 앞서, 함께 식사를 한다거나 오롯이 잡담만 하는 시간을 가지는 등 서로 사적으로 친해지는 시간을 가진다면 그렇지 않을 때보다 커뮤니케이션이 훨씬 편해지고 자칫하면 기분이 상할 수 있는 이야기들도 친근한 말들로 전달할 수 있다는 것이다. 우아한형제들에는 '잡담을 많이 나누는 것이 경쟁력이다'라는 문화가 있다. 잡담을 통해 유대감을 높이고 친근한 분위기를 형성했을 때 더 많은 커뮤니케이션이 형성되며 훨씬 즐겁게 일을 할 수 있다. 결국 멘토님이 주신 유대감이라는 키워드는 기업 문화와 연결되는 이야기였고, 이는 나에게 아주 신선한 충격으로 와닿아 가장 기억에 남는다.

한 번은 멘토님께서 '소프트웨어 장인'에 대한 이야기를 해주신 적이 있다. 우리가 '소프트웨어 개발자'라는 직업 정신에서 벗어나 장인 정신을 가지고 이 직업을 대했을 때 더 좋은 개발자가 될 수 있다는 것이다. '소프트웨어 장인' 책에서는 단순히 동작하는 코드에서 그치지 않고 좋은 품질의 소프트웨어를 만드는 데 가치를 두는 것, 내가 생각하는 아름다운 코드를 작성하는 것이 아닌 다른 사람이 이해할 수 있는 코드를 작성하는 것, 끝없이 자기계발하는 것, 개발자 네트워킹 및 멘토링, 새로운 개발자 채용에 대한 책임감, 아마추어가 아닌 프로로서의 책임감'평범한 개발자가 아닌 장인'으로서 가져야할 마인드에 대해 소개하고 있다. 늘 더 좋은 개발자가 되기를 꿈꿔왔지만, '장인 정신'이라는 키워드를 통해 이렇게 상세하게 기술해놓은 책이 있다는 것은 전혀 알지 못했다. 그리고 당시에는 취업 준비에 매몰되어 있어서 입사를 했을 때 가져야 할 '프로 의식'에 대해서는 생각해본 적이 없었는데, 이 책을 통해 앞으로 개발자가 되었을 때 어떤 마인드를 가져야하는지 그 방향성을 정하는 데 큰 도움이 되었다. 이는 멘토링이 없었다면 정말 생각하지 못했을텐데, 정말 소중한 시간이었던 것 같다. (멘토님이 책 선물도 해주셨다 호호 🎁)

에피소드3. 세미나를 하던 날

'소프트웨어 장인' 책에는 '배움의 문화'라는 챕터가 소개되어 있다. 개발자 스스로 배움의 문화를 만들어 조직의 긍정적인 변화를 이끌어내야한다는 내용이다. 앞서 소개했듯 나는 이전에도 스터디를 개설하거나 프로젝트를 추진하는 등 함께 배우고 발전해나가는 문화를 좋아했다. 캠프에서도 그런 문화를 한 번쯤은 이끌어내고 싶었다. 캠프에서는 매주 자원해 자유 주제로 발표하는 미니 세미나 시간이 있었는데, 나는 이 시간을 활용했다.

캠프의 마지막 프로젝트에서는 타입스크립트가 필수 기술 스택으로 요구되었다. 나는 여기에서도 "이왕 필수 기술 스택으로 쓰는거, 더 좋은 코드를 고민해보면 어떨까?"라는 생각이 들었다. 그럼 더 좋은 코드란 무엇일까. 나는 '더 좋은 코드에 대한 정답은 없고, 팀에서 충분히 논의하여 선택한 것이 가장 좋은 코드다'라고 생각한다. 그래서 캠프에 참여하는 모든 분들께 타입스크립트로 더 좋은 코드를 만들어나가는 과정에 대한 문화를 전파하고 싶었다. 그래서 생각해낸 주제가 바로 '타입스크립트로 토론해보기'였다.

 

나는 타입스크립트로 토론해볼 수 있는 주제로 '프로젝트에 타입스크립트를 왜 도입해야 하는가', 'Interface vs Type alias', 'union type vs enum', 'enum vs const assertion' 이렇게 네가지를 발표했다. 미니 세미나를 통해 토론 주제 및 어떤 방식으로 토론할 수 있는지를 보여주고, 이러한 문화가 캠프의 각 팀에 전파되길 바랬다. 실제로 전파되었는지는 잘 모르지만, 세미나를 준비하면서 나 스스로도 기술적으로 성장할 수 있었으며 '배움의 문화'를 실천할 수 있어서 뿌듯한 경험이었다. (발표 내용은 여기에서 볼 수 있다.)

 

여담으로 세미나 발표를 할 때 내 목소리가 너무 떨려서 염소가 된 줄 알았다. 캠프를 온라인으로 진행하여 화상 미팅으로 발표하게 되었는데, 모두가 마이크를 끄고 조용한 상태에서 나 혼자 떠드는 그 압박감! 심지어 캠퍼분들 다 너무 잘하는 분들인데.... 나 나름.. 무대 체질이라고 생각했는데 아닐zㅣ도....

우아한형제들 최종 합격

캠프가 끝나고 나면 우아한형제들에 신입으로 입사 지원할 수 있는 기회를 준다. 나는 캠프를 통해 우아한형제들의 문화를 더욱 체감하고 정말 가고 싶은 회사라는 확신을 얻게 되어 입사 지원하게 되었다. 그리고.... 

취준생에게!!!! 딱 한 번만 찾아오면 된다는 !!!! 딱 한 번만 받으면 된다는 그 !! 최종합격 메일을 !!!! 이렇게... 받게 됩니다.... 🎉🎉🎉

메일을 받고 나서,, 그동안 받은 수많은 탈락 메일들이 주마등처럼 스쳐지나가며,, 기쁨과 동시에,,, 가슴에서 우러나오는 그 뜨거운,,, 그 ,,, 응어리,,, 터져나오면서 막 ,, 펑펑 울고,,,  엄마한테 .. 전화하고,,,,,, 막ㄱ ..

아무튼 합격할 수 있었던 요인을 돌이켜 생각해보면, 다양한 프로젝트 및 캠프를 하면서 스스로에 대한 고민 및 회고를 많이 했던 것, 수많은 서류 탈락 경험을 통해 다듬어진 자기소개서 그리고 이력서 그리고 포트폴리오, 친구들과 꾸준히 해왔던 면접 스터디 등 어쨌든 많은 노력이 있었기에 원하는 회사에 잘 합격할 수 있었던 것 같다.

 

지금은 어떤가요? - 또 다른 성장을 향해

지금은 선물하기팀에서 8개월차 병아리 프론트엔드 개발자로 지내고 있다. 사실 취업 준비 기간동안은 취업만 하면 만사형통일줄 알았으나, 머릿속은 사실 더 복잡한 것을 느낀다. 지금 하고 있는 고민들만 나열해봐도 정말 많다.

  • 나도 누군가에게 회사다, 팀원들과의 관계에 대한 고민
  • 업무를 더 잘할 수 있는 커뮤니케이션에 대한 고민
  • 업무를 잘 해내는 것은 당연하고, 나는 개발자로서 잘 해내고 있는가?
  • 나는 팀에서 좋은 팀원인가? 좋은 팀원이란 무엇일까?
  • 다채로운 삶을 위해 일과 여가 생활을 함께 발전시키고 싶은데, 이 밸런스 유지에 대한 고민
  • 업무 외 시간의 개발 공부에 대한 고민
  • 개발 공부도 있지만, 인문학 소양도 갖춰야할 필요가 있다.
  • 개발자로서 현재 나의 목표는 무엇인가?
  • ....

이 고민들에 대한 정답은 없고, 그저 끝 없이 고민하며 나 자신을 다듬어나가야한다고 생각하고 있다. 지금 이렇게 또 다른 성장을 향해 가고 있는 것도, 끝없이 성장하려는 고민으로 보냈던 1년 반이라는 취업 준비 기간이 있었기 때문이라고 생각한다. 역시 이 세상에 결코 쓸모없는 경험은 없다. 어떤 경험이든 다 쓸모가 있다.

 

성장을 고민하는 모든 개발자분들께 내 이야기가 작은 도움이 되었길 바라며, 이만 글을 마친다. 마지막 인사로 우리 팀 존경하는 개발자분의 말씀을 인용하며....

 

"제 글을 몇 명이나 보겠어요"

🤭