주니어 FE개발자의 2021년 회고

천재민(Karl)·2022년 1월 22일
13
post-thumbnail

다사다난했던 2021년이 끝나고 2022년이 밝았습니다. 지난해는 저에게 있어 많은 도전과 성취가 있던 해였습니다. 이 지나온 발자취를 잘 정리하여 새로운 2022년의 도전과 성취의 밑거름으로 삼고자 합니다.


우아한테크코스 프리코스


2021년이 아닌 2020년 말의 얘기지만, 뭔가 이 얘기부터 해야 흐름이 자연스러울 것 같습니다.


소위 취준생 사이에선 ‘네카라쿠배~’ 라고 하지요. 저에게도 그 중 ‘배’에 속하는 ‘배달의민족(우아한형제)’는 가고 싶은 회사 중 하나였습니다. 그래서 그곳에서 주관하는 ‘우아한테크코스’ 라는 교육프로그램을 주목하고 있었습니다. 이 프로그램이 ‘우아한형제’의 신입 개발자를 뽑는 등용문의 역할을 하고 있었기 때문입니다.


개발자로서의 포부를 잔뜩 적은 서류가 통과된 뒤에 코딩테스트를 보았습니다. 정확히 문제 내용이 기억나진 않지만, 고급 알고리즘을 알고 있지 않아도 상관없던 시험이었습니다. 논리적 사고와 구현 능력을 충분히 훈련했다면 잘 치를 수 있는 시험이었습니다. 좀 잘 본 것 같아서 기대를 무척 많이 했던 기억이 나네요.



이후 프리코스는 제게 폭발적 성장과 가져다주고, 앞으로의 이정표를 제시해준 무척 귀중한 시간이었습니다.


프리코스에서 3개의 미션(숫자야구 게임, 자동자경주 게임, 지하철노선도)를 3주간 개발하였습니다. 단, 바닐라 자바스크립트를 사용하고 정량적 기준코드 컨벤션에 따라 높은 퀄리티의 코드를 생산하는 방식으로 이루어졌죠.


그동안 리액트와 같은 프레임워크 API에 종속적이었고 수십 줄의 스파게티 코드를 길게 늘어 뽑아냈던 저에겐 일종의 계기가 되었습니다. 프레임워크의 추상화를 넘어 무엇을, 어떻게 공부해야하는 지 알려주었죠.


아쉽게도 떨어지고 말았습니다. 지금 생각해보면 당시 너무 힘(?)이 많이 들어가 있었고 제 코드가 프론트엔드 개발 트렌드와 다소 동떨어져 있지 않았나 싶습니다. 그리고 무엇보다 최종 테스트에서 좋은 모습을 못 보여주어서 그렇겠죠.


당시 최종 테스트 전에 캡틴 박재성 님이 말씀하신 게 생각이 납니다. ‘이번에 아쉽게 떨어지더라도 좋은 회사에 취직하는 것이 우리에게 할 수 있는 최고의 복수라고 생각하고 열심히 하길 바란다’ 라는 내용의 말씀이었습니다. 떨어지고 나서 이 말씀이 계속 생각나더라고요. 한동안 ‘배민 불매야!’ 라고 말할 정도로..


하하. 농담이고요. 그 말씀 덕에 정말 열심히 할 수 있었습니다. 그리고 프리코스에서 얻은 성장과 이정표는 제 개발 영역의 근간이 되었습니다.


고마워요 우아한테크코스!


반 년 정도의 취준


우아한테크코스로의 여정이 끝나고, 8학기가 끝나면서 제 대학생활도 끝났습니다. 우아한테크코스를 준비하면서 사실 취준은 뇌에서 비우고 있었습니다. 기말고사와 함께하면서 너무 바쁘기도 했지만, 코딩테스트를 통과하면서 ‘아, 뭐 ... 결국 붙겠지 ㅎㅎ’ 라는 근자감(?)에 휩싸여 있었습니다.


하지만 실패로 돌아갔고 잊고 있던 취준은 현실이 되었습니다. 이 때부터 부랴부랴 이력서와 포트폴리오를 다듬었고 면접 준비를 열심히 했던 기억이 나네요.


취준생이라 이력이랄 게 없어서, 이력서는 최대한 가볍고 간결하게 가져갔습니다. 대신 다른 지원자와의 차별점을 두기 위해 포트폴리오에 신경을 많이 썼습니다.



대략 100여 개의 회사에 지원했고 여러 시행착오를 겪었습니다. 취준 초반에 고민해서 쓴 서류들이 우수수 떨어지거나 겨우겨우 잡은 기술 면접을 망쳤을 땐 솔직히 상심이 무척 컸습니다.


하지만 인사이트가 생긴 건지 그냥 맞다 보니 아픔에 익숙(?)해진 건지 ‘그냥 이 회사와 핏이 안 맞나 보다.’라는 생각을 하게 됐습니다. 하나의 결과에 일희일비하지 않고 장기전을 준비하자는 마음이었습니다.


노하우가 생겼고 점차 최종 합격하게 됩니다. 이때부턴 신중하게 회사를 선택하게 되었습니다. 개발자로서의 첫 커리어를 멋지게 시작하고 싶었으니까요.


좋은 개발문화를 가졌는지, 기술적으로 뛰어난지, 좋은 동료들과 함께할 수 있는지 등을 주로 고려했습니다.


결국, 지금 제가 다니고 있는 줌인터넷 행을 결정하게 되었습니다! 채용 프로세스에서의 경험이 무척 좋았다는 점이 주요한 이유였습니다. 주어진 사전 과제의 높은 퀄리티, 기술적 토론이라고 할 만큼의 수준 높은 면접을 경험했습니다. 그 결과 ‘채용 과정 내내 지원자에게 이렇게 좋은 경험 선사하는 회사의 개발문화는 무조건 좋지 않을까?’ 라는 기대감을 갖게 되었고 줌인터넷 행을 결정하게 되었습니다.


Hello 줌인터넷!


2021년 5월 3일에 줌인터넷에 입사하였습니다! 신설된 프론트엔드 파트에 합류하게 되었고 이곳에서 존경하는 2명의 동기와 파트장님과 함께 일하게 되었습니다.


파일럿 프로젝트


저희 줌인터넷에서는 신입 개발자가 파일럿 프로젝트를 진행하는 문화가 있습니다. 실무에 투입되기 이전에 회사가 사용하는 기술 스택과 자신이 맡을 도메인에 익숙해지도록 하기 위함입니다.



저를 포함한 3명의 신입 프론트엔드 개발자들은 investing.com 모바일 클론 코딩**을 진행했습니다.


간략하게 요약하면 이러한 도전들이 있었습니다.


  • 각자의 고유한 결과물을 만들기 위한 협업 방법 선택
  • 3명이 사용할 공통 코드를 별도 배포 없이 적용, 테스트, 개발하기 위한 모노레포 적용
  • Vue.js 에 익숙해지기
  • TypeScript 활용하여 안전한 코드 개발
  • 별도의 라이브러리 없이 Canvas API만을 활용해 차트 라이브러리 개발 및 고도화
  • 주식, 코인 등의 자산 데이터 실시간 반영을 위한 적절한 통신 기술 선택
  • SSR(Server Side Rendering) 적용

파일럿 프로젝트를 통해 앞서 필요한 스킬, 도메인을 학습한 것이 소프트하게 온보딩하고, 실무를 위한 발판을 마련하는 데 도움이 되었습니다.


그리고 혼자 개발할 땐 하기 어려웠던 협업과 사용자 경험에 대한 고민을 깊게 할 수 있던 기회였습니다.


자세한 내용은 저희 줌인터넷 기술블로그에서 확인하실 수 있습니다!


줌닷컴 쇼핑도메인


파일럿 프로젝트 후 곧바로 줌닷컴 투자도메인 개발에 합류하고 한 달간 개발했었습니다. 그런데 기획이 전면 수정되었고 그간 개발한 코드가 상당 수 쓸모가 없어졌습니다. 그리고 투입된 인원들은 잠시간 대기할 수 밖에 없었습니다. 하지만 저 같은 경우 예약되어있던 개편 프로젝트에 재투입되었습니다. 그 프로젝트는 줌닷컴 쇼핑도메인입니다.



프론트엔드 한 명(본인), 퍼블리셔 한 분, 백엔드 한 분으로 구성된 3인 프로젝트였습니다.


사실 이전에 진행됐던 개편이었으나 회사 내부 사정으로 홀딩됐던 개편이었습니다. 그래서 인수인계받을 당시엔 QA 직전까지 작업된 거라 말씀하셨지만, 지금 생각해보면 그 상태론 QA로 절대 나갈 수 없던 정도였습니다.


기존의 코드 베이스가 도움을 준 것도 있지만 오히려 인질이 되어 개발하는데 장애 요소가 됐던 것 같습니다. 결국, 프로젝트를 마치고 나니 기존 코드 베이스는 재활용되기보단 모두 제 손을 거쳐 실제 서비스하는 데 적합하게끔 바뀌었습니다.


그리고 이러한 도전들이 있었습니다.


  • PC 버전 뿐 아니라 다양한 플랫폼, 환경을 지원해야 했습니다.
    • 모바일 버전을 지원해야 했고 LG U+ 제휴 페이지와 줌프론트 모바일의 쇼핑탭에 임베딩되는 경우도 지원해야 했습니다.
    • 이 경우 멀티페이지로 구성했는데, 번들링을 신경 써야 했습니다. 쇼핑줌의 번들된 js, css 파일은 임베딩되는 경우 늦게 evaluate됩니다. 이 때문에 js code, css style의 충돌이 있을 수 있습니다.
  • 줌닷컴의 상당수가 IE 사용자이므로 모던 브라우저(크롬, 파이어폭스, 사파리) 뿐만 아니라 IE 10까지 지원해야 했습니다.
  • SSR의 선별적 적용에 대한 고민
    • PC 버전에선 검색 결과 페이지 외엔 적극적으로 사용하여 SEO(Search Engine Optimization)와 FCP(First Content Paint)를 개선하려고 했습니다.
    • 모바일 버전이나 임베딩되는 경우 필수적으로 SSR을 적용할 필요는 없겠지요.
  • 사용자 경험 향상을 위한 고민
    • 위에서 언급한 SEO와 FCP 개선사용자 경험 향상을 위한 작업
    • 에러가 발생하거나 작업 시간이 오래 걸리는 경우 에러 페이지, 스피너(로딩바) 제공
    • Image Lazy Load, Infinite Scroll 적용
    • 자주 쓰고, 변할 가능성이 적은 데이터들은 주기적으로 캐싱(caching) 적용하여 빠르게 컨텐츠 제공
  • 광고 수익 창출을 위한 통계 로직 개발
    • 정확한 통계를 보내기 위해 빠지는 통계 프로퍼티가 없도록 꼼꼼히 개발해야 했습니다.
    • 광고 상품의 공평하고 균형잡힌 노출을 위한 상품 셔플 로직 개발
    • 합리적인 요금 청구를 위한 중복 노출 방지, 고속 스크롤링으로 인한 허수 노출 방지 로직 개발
    • 고민을 정리한 글
  • 레거시 코드들의 리팩토링 작업
    • 인질로 잡힌 코드베이스를 구출하기 위해서
  • 협업자와 앞으로의 후임을 위한 주석 작업
    • 내 코드를 읽는 사람들을 위한 배려
  • 기타 어마어마한 삽질의 고통

파일럿 프로젝트에서 얻은 것들을 실무에 녹여내는 경험을 통해, 제 역량을 단단하게 다질 수 있는 시간이었습니다.


프로덕트 개발, 유지보수와 운영의 사이클을 겪으면서 미래에 맡을 프로젝트들을 잘 수행할 수 있겠다는 자신감을 얻었습니다.


그리고 한 도메인, 한 파트의 담당자로서 느끼는 압박감과 책임감이 저를 정신적으로 한 층 더 성장시켜주었습니다.


Keep learning


저는 공부하는 데는 다 적합한 때가 있다고 생각합니다. 저희가 사회생활을 하면서 학생 때만큼 공부하기 좋은 시절은 없다고 생각하는 것 처럼요.


개발자에겐 주니어 시절(1년에서 4년차? 이건 제 주관적 기준입니다..!)이 그런 시절이라고 생각합니다. 돈을 벌 수 있는 프로덕트를 훌륭히 만들어내는 것은 당연하고 추가로 끊임없이 공부해야 한다고 생각합니다. 개인적으론 자신의 커리어, 크게는 속한 팀, 회사와 산업의 발전을 위해서요.


퇴근하고 여러 좋은 아티클을 즐겨보고 코드도 쳐보는 편입니다. 올해는 최신 tooling이나 기술 스택보단 개발 방법론, 철학, 마인드셋에 관련된 책을 자주 본 것 같습니다.


그러나, 게을러지는 건 사람이라 어쩔 수 없었습니다. 그래서 공부에 강제성을 부여하기 위해 스터디를 적극적으로 운영, 참여했습니다.


블로그 스터디


3개월 간의 수습 기간이 끝나자마자 사내 블로그 스터디를 만들었습니다.


입사하기 전엔 사내의 스터디 문화가 잘 정착되어 있으리라 생각했습니다. 하지만 아니었습니다.당시 운영되고 있던 스터디가 없었으니까요.


하지만 아쉬워하지 않고 직접 만들기로 했습니다. 평소에 블로그에 관심이 있어 블로그 스터디를 만들었습니다.


공부하면서 좋은 블로그 글로부터 도움을 많이 받았습니다. 어느순간 콘텐츠 소비자에 머무르지 않고 양질의 콘텐츠 생산자가 되고 싶다는 생각이 들더군요.



저 포함 5명의 동료가 모여 스터디를 시작했습니다!


솔직히 처음엔 ‘스터디가 잘 굴러갈 수 있을까?’ 라는 걱정을 하곤 했습니다. 다들 회사 일로 바쁘셔서 스터디에 잘 참여할 수 있을지, 스터디가 지속될 수 있을지 걱정되었습니다.


하지만 그런 걱정은 기우였습니다. 실제 생긴 문제를 해결하고자 혼자 고민한 것이 아니라, 스터디원들과 함께 고민하여 스터디 방식을 실정과 맞게 피보팅하는 과정 등을 겪었습니다. 처음의 웅대한 계획(주 1회 블로그 포스팅 등)은 없어지고 실정에 맞는 방식(2~3 주 1회 블로그 포스팅 등)으로 바꾸었습니다. 대신 스터디‘지속가능성’을 확보했다는 점에서 더 나은 방향으로 나아가고 있다고 생각합니다.


대략 반년 동안 진행하면서 성과도 꾸준히 쌓이고 있습니다. 이 블로그의 모든 글은 이 블로그 스터디의 결과물입니다. 스터디 전체로 봤을 때 양질의 글이라고 생각하는 글도 대략 25편이 넘습니다.


벌써 반년 동안 단 한 명의 포기자도 없이 진행됐고 스터디원을 모집할 때마다 기수를 올리다 보니 벌써 3기가 진행 중입니다. 이젠 12명이 참여하는 큰 스터디가 됐습니다.(저희 개발실 인원이 40여 명 정도 됩니다.) 제 생각엔 정말 잘 굴러가고 있는 것 같습니다.


제 하나의 작은 시도가 회사의 개발문화에 기여했다는 점이 무척 뿌듯합니다. 2021년에 정말 잘한 일이 아닌가 싶습니다.


블로그 스터디의 활동 내역은 여기에서 확인하실 수 있습니다.


우아한 Rust 스터디


이번에 우아한형제에서 외부 개발자와의 교류를 위해 우아한스터디를 진행했습니다. 비록 우아한테크코스는 저와 연이 없었지만, 우아한스터디에는 합류할 수 있었습니다. 이번엔 Rust라는 언어의 스터디에 참여하게 되었습니다.



설명된 것처럼 Rust 자체적으로 몹시 멋진 언어입니다. 정말 안전한 언어임을 배우면서 느끼고 있습니다. 하지만 프론트엔드 개발자에게 가장 와닿는 것은 FE생태계에 Rust의 영향력이 점차 확대되고 있다는 점입니다. 웹어셈블리Rust로 작성할 수 있고, Babel의 상당 부분을 커버하는 swc도 프론트엔드 개발환경에 넘어왔죠. 그리고 얼마 전에 TC39Rust로 만들어진 자바스크립트, 타입스크립트 런타임인 Deno가 합류하기도 했습니다.


앞으로 더욱 그 영향력이 확대될 것 같습니다. 그래서 미래에 대비하고자(초저점 풀매수..) 합류하게 된 겁니다.


스터디 내용은 무척 만족스럽습니다! 저희는 The Rust Programming Language 책떼기를 하고 있는데요, Rust 언어 자체가 무척 매력적이어서 모두 즐겁게 매주 한 챕터 씩 진도를 팍팍 나가고 있습니다.


그리고 사실 가장 좋은 점은 주니어 개발자로서 능력적으로, 경험적으로 우수한 스터디 원들에게서 수 많은 인사이트를 얻고 있다는 것입니다. 주니어 개발자로서 느끼는 성장, 커리어에 대한 고민과 트러블슈팅 방법과 같은 개발적인 고민에 대해서 자신의 경험을 공유하고 조언을 주시는 것에 무척 적극적이십니다.


지금도 스스로 매일 성장하는 게 느껴집니다. 앞으로 더 진도가 나가면 2개의 사이드 프로젝트를 같이 수행할 예정입니다. 벌써 제가 프로젝트에 얼마나 기여할 수 있을지, 결국 장기간의 스터디 끝에 얼마나 성장할 수 있을지 기대가 됩니다.


2022년 목표


2021년을 열심히 보냈지만 아쉬운 점은 공부를 생각보다 덜했다는 점입니다. 공부와 실무를 잘 병행하는 것은 제 예상보다 어려웠습니다. 할 일을 느슨하게 계획하면 공부도, 실무도 잘 안됐습니다. 적채된 일이 눈사태처럼 몰려와 압박감을 주었습니다. 그래서 올해는 하고자 하는 일을 정량적으로 정해보고자 합니다.


  • 책은 한 달에 한 권은 읽기
  • 타입스크립트와 테스트 코드에 익숙해질 것
  • 일주일에 운동 최소 3번은 나가기
  • 개인 깃허브에 일주일 당 2번은 커밋하기
  • 정해진 개발 일정을 준수하기
  • 블로그 글은 2주에 1개는 포스팅하기
  • 오픈소스에 5개 PR이상 기여해보기 (처음은 번역 오픈소스부터 도전해보자!)
  • 스터디 2개 이상은 늘 유지하기
  • 사이드 프로젝트 1개 이상 하기

막상 정해보니 다 할 수 있을까라는 생각이 들지만 일단 해보려고 합니다. 올 해를 마무리하는 시간이 오면 그 땐 제가 얼마나 성취했는지 쉽게 알 수 있겠지요. 그 때 느낄 성취의 기쁨을 기대하며 열심히 노력하겠습니다!


긴 글 읽어주셔서 감사합니다!

profile
나에게 나무를 자를 여섯 시간을 준다면, 나는 먼저 네 시간을 도끼를 날카롭게 하는 데에 쓰겠다.

7개의 댓글

comment-user-thumbnail
2022년 2월 1일

이런 실력있는 개발자와 함께 일할수 있어서 저는 햄볶합니다. 잘 읽었어요! 👍🐻

1개의 답글
comment-user-thumbnail
2022년 2월 1일

International dating sites and international marriage agencies completely blur boundaries and distances. Now everyone is open to unlimited https://datingjet.com/free-hookup-sites-no-payment-required/ communication with everyone – you can meet a girl from Japan, the Philippines, or Sweden. Many brides from various countries of Asia, Western and Eastern Europe, with interest and pleasure, are considering the candidacy of foreigners. All other things being equal, they give preference to Americans first of all.

답글 달기
comment-user-thumbnail
2022년 9월 8일

멋지네영!

답글 달기
comment-user-thumbnail
2023년 8월 7일

좋은 내용 감사합니다 멋지네요! 저도 개발 공부하는 중인데, https://quantpro.co.kr/ 해당 사이트 퀀트 내용 어떤지 의견주시면 감사하겠습니다!

답글 달기
comment-user-thumbnail
2023년 10월 4일

The Aligarh Escort are well known to provide satisfaction to their customers. Sexy Call Girls Number They have rosy cheeks, dark hairs, and glossy lips that are enough to entangle you without any second thought. They are beautiful divas who have different tastes, and their accessories are simple enough to entice any individual.

답글 달기
comment-user-thumbnail
2024년 1월 25일

If you are looking for safe and secure escorts service in Pune maintaining full privacy you can contact me..
Why to choose our services - First of all I am providing genuine escorts without any kind of advance payment.Secondly,my services are free from any type of scams.Thirdly,Your reqirements and preferences are our first priory and i try to fullfill that 100 percent
https://topescortspune.com
https://puneescorts24.com/
https://puneescorts24.com/viman-nagar-escorts/
https://puneescorts24.com/lonavala-escorts-service/
https://topescortspune.com/pune-escort/
https://topescortspune.com/gorgeous-pune-escorts/
https://topescortspune.com/best-pune-escorts/
https://topescortspune.com/balewadi-call-girl/
https://topescortspune.com/deccan-escorts-service/
https://topescortspune.com/wakad-escorts/
https://topescortspune.com/russian-escorts-pune/
https://topescortspune.com/lonavala-escorts/
https://topescortspune.com/aundh-escorts-service/
https://topescortspune.com/russian-escorts-lonavala/
https://topescortspune.com/koregaon-park-call-girl/
https://topescortspune.com/independent-shivaji-nagar-escorts/
https://topescortspune.com/pune-mg-road-escorts/
https://topescortspune.com/impeccable-escort-service-in-pune/
https://topescortspune.com/kothrud-call-girl/
https://topescortspune.com/housewife-escorts-pune/
https://topescortspune.com/reliable-pune-escorts/
https://topescortspune.com/housewife-escort-pune-call-girl/
https://topescortspune.com/viman-nagar-escorts/
https://topescortspune.com/high-profile-pune-escorts/
https://topescortspune.com/shivaji-nagar-escorts/
https://topescortspune.com/college-girls-escorts-pune/
https://topescortspune.com/escort-service-hinjewadi/
https://topescortspune.com/pimple-saudagar-call-girl/
https://topescortspune.com/hinjewadi-escorts/
https://topescortspune.com/kalyani-nagar-escorts/
https://topescortspune.com/pimple-gurav-escorts/
https://topescortspune.com/pimpri-chinchwad-escorts/
https://topescortspune.com/lonavala-escorts-service/
https://topescortspune.com/baner-escorts-agency/
https://topescortspune.com/wakad-call-girl/

답글 달기