Dev

삼바의 2021 회고록

SambaLim 2022. 1. 4. 22:18

올해는 프론트엔드를 공부하는데 90%이상의 시간을 사용한 한해였다. Vanilla JS로 특정 기능들을 구현하기도 하고 Angular 레거시를 보기도했지만 React 프로젝트 속에서 React를 공부하고 이해하며 많은시간들을 보냈다. 새로운 회사에 하는 다양한 일에 참여해보고 그 안에서 나를 돌아보고 더 나아갈 방향을 생각할 수 있는 한해였다.

회사

올해동안 내가 회사에서 했던 일을 되돌아보면 회사의 서비스에서 사용자들에게 갖추지 못했던 것을 파악하고 이를 제공해주는 일을 했었다. 큰 규모의 서비스지만 아직 사용자들에게 불편한 점이 많고 업계 1위인 회사에게 항상 비교당하기 일쑤였다. 사실 올해동안 했던 일은 그 사용자들의 불편함을 잠시 가려두기 위해 진행했던 프로젝트가 대다수였다.

Django template to React

두달정도 진행했던 프로젝트가 Django template 상에서 진행되었는데 jQuery와 js-render등 많은 라이브러리들의 혼합체였다. CSR 환경이였고 Submit이 일어날때마다 새로고침이 되어 사용자도 사용하기 불편하고 레거시 코드들이 섞여있다보니 백엔드 개발자도 프론트엔드 개발자도 개발하고 싶지않은 환경이였다. 이렇게 불편한 상황이다보니 처음에는 React 프로젝트를 새로 생성하여 기존의 서비스와 연결시킬 것을 생각하였다. 하지만 개발까지 짧은 기간이 주어졌고 결국 나는 Vanilla Javascript를 통해 해당 프로젝트를 진행하기로 마음먹었다. (결정을 해주신 기획자분들, 결정에 따라 REST API를 만들어준 백엔드개발자분들께 감사를 표합니다. 🙇‍♂️)

Vanilla JS

IE11 까지 지원해야하는 상황이였기 때문에 ES5 이하로 개발을 해야했다. 처음에는 지원 범위가 애매해 caniuse에 많이 물어봤지만 시간이 갈수록 필요한 기능이 있다면, polyfill을 넣어 개발했고 ES5 이전의 JS를 공부할 수 있는 소중한 시간이었다.

ES5이하의 JS를 사용했지만 React스럽게 생각하려 많이 노력했다. 특히 컴포넌트를 만들며 React를 많이 따라하려 노력했다. useState 를 구현하고 각 상태에따라 컴포넌트 단위에서만 Element가 삭제되고 재생성되도록 만들었다. 덕분에 DOM을 직접 조작하는일, createElement로 만들고 appendChild로 DOM트리를 만들어가는 것을 직접 구현하며 데이터에만 집중하며 UI를 구성해주는 React가 얼마나 감사한지 알게되었다.

React

정말 감사하게도 기존 레거시와 내가 했던 기능들이 msa로 분리되고 React 프로젝트로 나오는 것이 결정되었다. 사실 이것이 2022년 내가 가장 하고싶었던 일이었는데, 현재 팀원이 많이 나가서 계획했던 속도를 가지고 진행될지는 잘 모르겠다.

기존 프로젝트를 React 프로젝트로 변경되는 것이 결정되면서 달리는 기차의 바퀴를 갈아끼우는 작업이 시작되었는데 덕분에 React 프로젝트들을 들여다볼 수 있는 시간을 가질 수 있었다. 그동안은 이미 어느정도 구조가 갖추어진 프로젝트상에서 다른 코드들을 보며 끼워맞추기를 했었는데 내가 프로젝트의 Owner가 되다보니 전역상태관리(Redux-toolkit), Route설정, api 모듈등이 눈에 들어왔다. 그래서 낮에는 구현하고 밤에는 공식문서를 읽거나 인강을 보며 공부하는 시간을 갖곤했었다.

블로그

작년에 나는 프로그래머스 라는 개발자 채용 사이트를 통해 이직을 하였는데 올해초 프로그래머스의 마케터분께 부탁을 받아 이직에 대한 이야기를 담은 블로그 글을 발행하였다. Q&A 방식이었는데 입사한지 6개월이 지난시점에서 내가 이직할때 어떤 마음가짐을 가지고 있었는지 되돌아보고 내가 어떤 개발자로 성장하고자 했는지 다시 생각해볼 수 있어 좋은 기회였다고 생각한다.

그리고 프로그래머스의 블로그글을 보고 Developer Advocate님이 회사의 기술블로그에도 글을 써볼 것을 제안해주셨다. 그래서 입사한 후에 이런저런 이야기들을 생각해보다가 사내문화중 나에게 가장 큰 영향을 미친 코드리뷰에 대한 글을 적어보았다. 코드리뷰를 통해 보다 나은 코드를 작성하게 되는 사례들로 구성되어있고 결과적으로는 프로그래밍 언어가 단지 동작을 구현하기 위해 사용하는 언어가 아니라 개발자와 개발자를 연결하는 언어라는 것을 알고 코드를 작성하는 것이 중요하다는 내용을 담았다.

칭찬카드 개선

기존에 사내에서 서로를 향한 고마움이나 칭찬을 담은 카드를 전달하는 칭찬카드가 있었는데 이 칭찬카드는 손으로 카드를 적어 각 층에 있는 우체통에 넣거나 구글폼으로 내용을 받아 모두 출력하여 봉투에 담아 전달하였다. 칭찬카드를 도입했을 초기에는 카드의 수가 많지 않았지만 사람이 늘어가며 집계, 봉투에 담아 전달하는 작업시간이 늘어났고 따라서 이를 온라인화 하는 프로젝트를 진행햐였다.

CSS 애니메이션과 React에 목말라있던 나는 이 프로젝트를 덮석 물었고 나와 백엔드개발자분 둘이서 회사사람들 몰래 한달정도의 개발기간을 가져 온라인 칭찬카드를 발행할 수 있었다.

채용설명회

내 생일에 유튜브 EO 채널을 통해 라이브 채용설명회가 있었는데 “프론트엔드 개발자 성장기”라는 세션에 참여하게 되었다. 라이브 방송에 출연한다는게 조금은 재밌다고도 생각했고 채용홍보에도 도움이 될거라 생각이 들어서 참여를 결정했는데 막상 라이브 방송을하니 머릿속이 새하얗게 변하고 정말 떨렸다. 사실 세션을 보고 지원을 결정하기는 어렵겠지만, 하나의 세션을 내어줄만큼 회사에서 프론트엔드를 생각하고 있다는 것을 많은 사람들이 알아줬으면 했다.

외부활동

코로나로 인해 외부활동을 많이하지 못한 한해였다. 사실 상황이 조금 나아져서 오프라인을 통해 세미나도 가고 모각코도 하는 것을 기대했지만 그러지 못했다.

강의

이전 회사에서 신입사원 교육을 했던 것을 기반으로 청년취업공작소 GIS 전문가 양성과정에서 HTML, CSS, JS 강의를 할 수 있었다. 감사하게도 프론트엔드에 대한 관심이 있는 수강생분들이 계셨고 준비해간 강의와 실습들에 재밌게 참여해주셔서 참 행복한 시간을 보냈었다.

강의를 진행하며 나도 내가 프론트엔드 개발자로 어떤 일을 하고 있는지 다시한번 생각할 수 있었고 HTML, CSS, JS 강의를 준비하며 기초서적들을 몇권 읽어보았는데 잊고있었던 개념들도 다시한번 공부할 수 있었다.

블로그

나의 소중한 블로그가 누적 방문자수 200,000을 돌파했다. 올해는 일과 내 관심사에 따라 주로 JS, TS, React에 대한 글을 적었고 전처럼 내용을 압축해서 옮기는 방식이 아니라 내가 해당 개념에 대해 왜 궁금증이 생겼고 이를 어떻게 이해했는지 과정을 적으려 노력하였다. 최근 글들이 조회수는 적을지 몰라도 내가 성장하고 있는 것을 담은 나만의 log라고 생각이되어 보다 애착이간다.

앞으로도 내가 배우고 이해하는 것을 기록하여 성장해나가는 것을 기록으로 남기는 블로그를 계속 이어나가고 싶다.

마무리

회고를 시작할때는 올해는 정말 적을 내용이 없을거라고 고민했었는데 막상 적기시작하니 남기고 싶은이야기가 정말 많았습니다. 디자인 시스템의 셀렉트 컴포넌트를 만들면서 리액트스럽게 생각하는 것에 보다 나아갔던 경험담, 함수형 프로그래밍을 더 이해하기 위해 스칼라 스터디에 참여한 이야기, 모각코에서 게더타운 만든 이야기 등 많은 이야기가 있지만 내용이 방대해질거같아 올해 회고록은 이만 줄여보겠습니다.

제가 신입개발자때 주변에서 5년차 정도 되는 개발자를 보기가 힘들었습니다. 그래서인지 5년차 개발자에 대한 엄청난 환상을 가지고 있었고 5년차 개발자라면 어떤 이슈라도 해결해낼 것만 같았습니다. 그래서 제 목표중 하나는 5년차라는 이름에 부끄럽지 않은 개발자가 되는 것이었습니다.

그랬던 제가 벌써 2022년 5년차 개발자가 되었습니다. 사실 그때 기대했던 5년차라는 이름에는 조금 부끄러운 것 같지만 올해도 멋진 한해를 보내 조금 더 고개를 들 수 있도록 열심히 공부하고 이해하며 기록하도록 하겠습니다.

2021년 제 기나긴 회고록을 읽어주셔서 감사합니다. 🙇‍♂️

'Dev' 카테고리의 다른 글

삼바의 2022 회고록  (3) 2023.01.01
삼바의 2020 회고록  (4) 2021.01.03
스모크 테스트란 무엇인가?  (0) 2020.10.01
2020년도 높은 연봉을 받는 15가지 IT 자격증  (0) 2020.04.27
네이밍 컨벤션  (0) 2020.01.10