본문 바로가기

개발

2022년 회고

입사가 2021년 12월이었어서 그런지 2022년이 개발자로서 보낸 첫 해인 것처럼 느껴진다. 1년 동안 했던 일, 느낀점을 정리해보려고 한다.

1월 ~ 3월

모노레포에 포함되어 있던 프로젝트 하나를 분리하여 처음부터 다시 만들었다. 프로젝트 규모가 그렇게까지 크지 않았고, 내부적으로 사용되는 프로덕트여서 새로 입사한 내가 맡아서 자유롭게 해볼 수 있었다.

 

기존에 자바스크립트로 되어있던 것을 타입스크립트로 다시 작성했고 비대한 컴포넌트 쪼개기, 반복해서 사용되는 UI 컴포넌트 재활용, 잘못된 hook 사용 고치기 등 전반적인 리팩토링도 진행했다.

 

상황상 코드 리뷰를 받지 않고 거의 혼자 작업을 하게된 점은 아쉽지만, 또 나름 그 덕에 코드에 대한 고민도 많이 해보게 되었던 것 같다.

 

3월 ~ 5월

위에서 작업했던 프로젝트에 통계 기능이 추가되어 테이블, 차트를 위주로 작업을 하게 되었다. 테이블은 요구사항이 조금 까다로웠는데 데이터가 그룹핑되어 있고 어떤 그룹이 접혀져 있으면 합계만 / 펼치면 하위 그룹까지 표시해야 했고, 그룹이 여러 계층 있었다.

테이블 헤더 기능

 

각 그룹별 헤더의 접음/펼침 여부를 상태로 관리하고, 이 값들을 이용하여 헤더 셀들의 colSpan과 rowSpan 값을 계산하고 실제로 화면에 표시될 데이터의 key값들을 추출하는 함수를 구현하여 기능을 완성했다.

 

차트는 라이브러리를 사용해서 구현을 하다보니 커스터마이징에 한계가 있었다. 이런 경우에 해당 차트 라이브러리에서 사용 가능한 옵션을 PM, 디자이너와 적극적으로 공유해서 합의점(?)을 찾는 것도 방법이라는 조언을 들어서 그렇게 했었는데, 지금 돌이켜봐도 좋은 선택이었던 것 같다.

 

디자인을 그대로 구현하는 것도 프론트엔드 개발자의 중요한 자질 중 하나임은 분명하지만, 상황에 따라서는 디테일보다는 중요한 태스크에 좀 더 시간을 쓰는게 맞다는 생각을 갖게 되었다.

 

6월 ~ 7월

기존 페이지를 리뉴얼하는 작업을 진행했다. 사용자(내부 직원)가 계속 보면서 어떤 작업을 수행하는 페이지였는데, UI를 변경해서 편의성을 높이는 목적으로 PM에서 추진한 것이었다. 그런데 기능을 다 완성하고 난 뒤에 오히려 불편하고 작업이 더 오래 걸린다는 피드백이 있어서 현 시점까지(...) 사용되지 않고 있다. 조만간 다시 개편이 예정되어 있다.

 

사용자들이 기존 페이지에 이미 익숙해졌기 때문인지 리뉴얼된 UI의 설계가 잘못된 것인지는 잘 모르겠다. UI 변경은 정말 신중해야하는구나... 그리고 사용자가 이미 익숙해진 UI라면 '잘 바꿨다'는 평을 듣기가 참 쉽지 않겠다는 생각이 들었다. (카카오웹툰 사례가 생각났다)

 

7월 ~ 12월

위 프로젝트는 거의 유지보수만 하면서 새로운 프로젝트에 투입되었다. 이전과 가장 다른 점은 팀원들과 협업을 한다는 것인데, 코드를 짜기 전에 의견도 주고받고 코드 리뷰도 하고 있어서 매우 긍정적이다. 얕게나마 웹소켓, web worker 등의 기술도 사용해봤다.

 

런칭 전에 한창 시간에 쫓길 때 투입이 되었는데 그 때는 코드 리뷰가 잘 이루어지지 않고 있었다. '이대로 가면 나중에 버그 고칠 때 혹은 다른 사람이 짠 코드 수정할 때 시간 더 걸린다. 아무리 급해도 코드 리뷰는 하자'는 의견에 다들 동의해서 현재까지 모두 잘 지켜가면서 프로젝트를 진행하고 있다. 현재는 프로젝트가 운영 단계에 있는데, 이제 어느 정도 안정기(?)에 들어선 것 같다.

 

같은 프로젝트를 꽤 오랜 기간 진행하면서 약간의 불안감도 생겼다. 뭔가 똑같은 난이도의 문제만 계속 푸는 느낌이랄까.. 개발자로서 성장을 하고 있는지에 대한 의문이 들었다. 그래서 회사 안팎에서 나름대로 해결책을 찾아보려 했다.

 

사내에서는 다른 일회성 프로젝트에 참여했고, 개인적으로는 nextjs를 좀 더 잘 써보고 싶어서 작은 사이드 프로젝트(이름 통계)도 하나 완성했다. NestJs, Rust 같은 프론트엔드와 전혀 다른 세계(?)의 기술도 조금 접해봤고 디자인 패턴을 공부해보기도 했다.

 

뭔가 다양하게 시도만 했고 아직 뭘 더 깊게 공부해볼지, 개발자로서 어떻게 성장할 것인지에 대한 계획을 그리지는 못했다. 당분간은 이런 식의 시도와 고민을 반복할 것 같다. 기회가 되면 조금 더 연차가 있는 프론트엔드 개발자에게 진로 상담(?)을 해보는 것도 좋겠다.