2019년 상반기의 회고
2019년에 들어 새로운 활동을 시작하였다. 그리고 2019년 상반기에 대한 회고를 작성하는 것이 그 활동이 첫 시작이었다. 때마침 하반기가 시작됨에 따라 올해의 하반기 목표를 되새기고자 회고를 작성하게 되었다.
2월, 프로젝트의 달
2월 26일, 새로운 조직에 입사하고 난 후 담당하게 된 프로젝트를 성공적으로 오픈하였다. 이커머스 특성상 회사에서는 물건을 구매하기 전의 프로세스와 물건을 구매하는 프로세스 그리고 물건을 구매하고 난 이후의 프로세스 세 가지 프로세스로 나누어지는 데, 이번에 진행한 프로젝트의 경우 상품 구매 이후의 프로세스에 대해서 이해할 수 있는 프로젝트로서 쉽게 이야기하여 “구매내역”과 “구매한 상품에 대한 일련의 클레임”이 포함돼 있다.
이 프로젝트는 나에게는 감회가 새로운 프로젝트이기도 했다. 새로운 조직에 합류한 후 처음 오픈하는 프로젝트라는 점도 있지만 제일 큰 점은 ReactJS 생태계에 처음 발을 들였다는 점이다. 이전에는 ReactJS를 사용해본 경험이 없어 프로젝트를 시작과 동시에 문법부터 공부하기 시작했다. 회사에서 세미나 발표에서도 이야기 했지만, ReactJS를 이용하여 프로젝트를 진행하며 제일 기억에 남는 것은 온갖 종류의 써드 파티 라이브러리를 접할 수 있다라는 점이다. 이번 프로젝트는 상태 관리 시스템을 Redux를 선택하였는데, Redux를 선택하기 전에도 Redux와 Mobx 사이에서 많은 고민을 하기도 했다. 그런데 막상 Redux를 선택하고 나니 다시 redux-thunk냐 redux-saga냐의 갈림길에 빠지게 되는 한마디로 매 순간이 선택의 기로에 빠지게 만들었다.
개인적으로는 상태 관리나 라우트와 같이 주요한 라이브러리는 정해져있고, 사용할지 말지만 결정하면 되는 VueJS와는 대비되는 점에서 약간의 거부감이 들기도 했던 시점이기도 했다. 물론 회사의 기술 스택 선택은 자유롭기 때문에 처음 프로젝트를 들어가기 전에 꼭 ReactJS가 아닌 VueJS로 개발을 해도 상관은 없었지만, 회사 내에 개발되는 대부분의 프로젝트들이 ReactJS로 개발이 되고 있기 때문에 ReactJS로 개발을 시작하였다. 개인적으로는 프로젝트 안에서의 타입 시스템은 휴먼 에러를 위한 최소한의 방어선이라고 생각하기 때문에 타입스크립트를 도입하여 사용하였다. 조직 안에서 처음 프로덕션 레벨에 타입스크립트를 도입한 이후로 점점더 타입스크립트로 개발되는 프로젝트들이 많아 개인적으로는 또 하나의 보람을 느끼기도 했다.
3월, 본격적인 TDD 프로그래밍
3월은 테스트 코드와 친해지기 위해 고군분투하였다. 2월에 사내에서 프로젝트를 오픈하고 나서는 여유가 생겨 기존에 작성돼 코드에 테스트 코드를 붙이기 시작하였으며, 오픈 이후에 들어오는 스펙에 대해서는 TDD 프로그래밍 방식으로 개발을 하기 시작하였다. 테스트 코드를 작성하게 된 계기는 아무래도 리팩토링 시 생길 수 있는 사이드 이펙트에 대한 안정성을 보장받기 위해서였던 것 같다. 아무래도 일정과 익숙하지 않은 환경에서의 개발로 인해 프로젝트를 오픈한 이후에는 개선해야 할 코드들이 많았기 때문에 주기적으로 리팩토링을 하여 배포를 했다. 리팩토링 과정에서 매번 QA의 도움을 기대할 수 없었기 때문에 예측 범위 내에서의 코드 수정을 해야만 했다. 그러한 사이드 이펙트에 대한 예측 가능성을 테스트 코드를 통해 높여나갔다.
4월과 5월, 현기증 나는 책 집필
4월에는 집필하고 있던 VueJS 서적의 대상군을 모집하여, 집필된 책에 대한 코멘트를 받고자 VueJS 스터디를 진행했다. 페이스북의 VueJS Korea와 하코사에 글을 올려 사람들을 모집했는데, 감사하게도 대략 130명이 넘는 많은 분들이 지원을 해주셨다. 죄송하게도 공간상의 이유로 모든 인원과 함께 할 수 없어 집필하는 책의 대상군을 선별하여 함께 스터디를 진행하였다. 대략 3달 정도 진행을 했는데 신중하게 선별해서 그런지 모든 분들의 참여율이 거의 100%에 가까웠으며, 책에 대한 코멘트 역시 적극적으로 해주셨다.
그렇게 5월, 함께 스터디를 진행한 분들의 코멘트까지 모두 반영하여 책의 집필이 모두 끝났다. 아니, 끝난지 알았다…
스터디가 끝난 후 본격적인 기술 감수 및 베타리딩을 위해 베타 리더분들께 책을 발송하기 시작했다. 그리고 2주 만에 100개가 넘는 수많은 수정 사항들을 남겨주셨다.. 이러한 이유에는 베타 리더분들의 기대 이상의 관심을 보여주셨고, 모든 분들이 책을 꼼꼼하게 봐주셨기 때문이 아닐까 싶다. 물론 이러한 이유로 결국 최종 탈고가 한 달 미뤄지는 상황이 생겼지만, 다행히도 출판사의 담당자분이 양해를 해주셨다. 그렇게 5월 내내 책을 탈고하기 위해 고군분투했다.
(이 글을 보실지는 모르겠지만, 이 기회를 빌어 스터디 참여에 지원해주신 분, 스터디에 참여해주신 분 그리고 베타리딩 해주신 분들 모두에게 감사하다는 인사드립니다.)
6월, 상반기의 마지막 달
그리고 6월, 최종 수정본을 받아 드디어 책을 출판사에 넘겼다. 2018년 8월부터 시작하여 10개월 동안 준비를 했지만 아쉬움이 많이 남았다. 한 문장 한 문장에 대해 고민을 많이 하기도 했지만 혹시나 “틀린 정보를 전달하면 어떻게 하지?”라는 두려움을 가진 채 글을 쓰다 보니, 생각보다 10개월이라는 시간이 길게 느껴지지 않았다. 물론 최종 탈고를 미룰 수도 있었지만, 기간이 늘어난다고 더 좋은 책을 쓸 수 있다는 확신이 들지 않았다. 그리고 무엇보다, 한평생에 쓸 글을 10개월 사이에 쏟아내듯 작성했기 때문에 책상에 앉아 인내심 있게 글을 쓸 수 있을 것 같지도 않았다. 책에 대한 자세한 이야기는 책이 출판된 이후에 별도의 회고로 작성하지 않을까 싶어 할 말은 많지만 더 이상 말하진 않는다…
그리고 VueJS 집필 스터디의 좋은 인연으로 생각지도 못한 좋은 경험을 하게 될 기회가 생겼다. 함께 스터디 하던 분들 중 한분이 “멋쟁이 사자처럼”의 운영진으로, 해커톤을 주최하게 되었는데 그 해커톤에 연사로 참여할 기회가 생겼다. 해커톤의 자세한 참여 후기는 여기에서 별도로 다루진 않지만 혹시나 궁금하신 분들을 위해 링크는 남겨둔다. 내 스스로 아직 이뤄놓은 것도 없는데, 누군가 앞에서 나의 경험을 이야기한다는 것은 하나의 부담이기도 했지만, 보잘것없는 나의 이야기로 인해 다른 누군가에게 긍정적인 영향을 미칠 수도 있다는 점이 또 하나의 매력이기도 했다. 앞으로 이런 기회가 또 올지는 모르겠지만, 조그마한 나의 경험이 다른 누군가에게 도움 줄 수 있는 기회가 생긴다면 또 하지 않을까는 생각을 해보기도 했다.
상반기를 돌아보며, 하반기는…
돌이켜보면 생각보다 상반기에 적은 것 같으면서도 많은 일을 한 것 같다. 올해 초, 상반기와 하반기로 나누어 두루뭉실하게나마 올해의 목표를 세운 적이 있다. 상반기에는 책 집필 완료였고, 하반기에는 본격적으로 기술 부채를 해결하는 것과 영어 공부였다. 7월의 시작과 동시에 영어 공부를 시작하였고, 기술 부채를 기록하기 위한 새로운 커뮤니티를 시작하였다.
새로 시작한 모임은 글또 라는 변성윤님이 주최하는 커뮤니티로서 여러 분야의 개발자들이 모여 주기적으로 블로깅을 하는 모임이다.
사실 어색한 분위기를 못 견뎌하기 때문에 새로운 사람들과의 만남에 있어 엄청난 부담감을 가지고 있지만 다행히도 모임은 처음과 마지막만 오프라인으로 진행하고, 나머지는 온라인으로 진행하기 때문에 이러한 부담감을 덜 할것 같아 참여를 하게 되었다. 앞으로 구체적으로 어떠한 글을 쓸지는 미지수이지만, 대략적인 방향은 회사에서의 트러블 슈팅 혹은 내가 배워나가는 개발 지식들에 대해서 글을 쓰지 않을까 싶다 :)
이제 하반기가 시작되었다. 과거 2018년의 회고와 같이 아마도 별일이 없다면 2020년이 되기 전 2019년의 회고를 작성하지 않을까 싶다. 그리고 그 글을 작성할 때는 “상반기보다 조금 더 보람찬 하반기를 보낸 한 해였다”라는 글을 쓰고 싶다.