7월 20일에서 10월 20일까지 프론트엔드 개발자 보조(Frontend Developer Asssitant)로 일하였는데요. 3개월 일하면서 들었던 생각을 정리했습니다.
큰 그림을 보기 위해서는 사이드 프로젝트를 해야될지도
디자인 시스템, 유틸 라이브러리가 잘 구비되어 있기에 스스로 A to Z로 컴포넌트를 만들어야 하는 경우가 드뭅니다. 그러다보니 왜 이렇게 디자인 시스템이 만들어졌는지에 대한 컨텍스트가 일을 하는데 크게 중요하지 않고, 우선순위가 아니라고 느낍니다. 가져와서 잘 사용하는 사용자로서 작업을 하는 경우가 많은데, 시스템 전체를 이해하기 위해서는 직접 디자인 시스템 및 공통 모듈을 만들어보면서 기본구성(building blocks)을 이해하려고 노력할 필요성이 있을 것 같습니다. 밑바닥부터 쌓아가는 경험을 중시하는 개발자라면 개인적으로 사이드 프로젝트를 해보면서 보충 학습을 하면 좋지 않을까 생각합니다.
커뮤니케이션이 정말로 중요해
프론트엔드와 엮여있는 포지션들이 생각하던 것보다 너무 많았습니다. 저는 KUIT 동아리에서 프로젝트를 할 때 PM 1명, 프론트엔드 2명, 백엔드 2명으로 구성된 팀에서 작업을 했었는데, 회사에서는 다양한 포지션의 팀원으로부터 요청을 받고 팀원에게 요청을 합니다. 디자이너, PO, 백엔드부터 데이터 분석가, 영업, 디자인 시스템 엔지니어, SEO 매니저, 마케팅 리드분까지 여러 분들과 자주 의사소통을 해야합니다. 사내 내부에서 쓰는 자주 쓰는 줄임말 같은 것도 슬랙 기록 찾아보면서 숙지하고, 리드하는 도메인 용어를 숙지하는 등 컨텍스트를 이해하기 위한 약간의 노력이 필요했습니다.
고지식한 학부생에서 쇼부치는 흥정맨으로 전직
대학생 시절에는 과제나 프로젝트를 수행할 때 주어진 요구사상을 정직하게 구현하려고만 노력했습니다. 동아리 프로젝트, 개인프로젝트, 학교 수업 프로젝트 등 어떤 프로젝트를 하더라도요. 마감기한을 지키지 못하는 경우도 많았지만 제 인생에 발목을 잡지 않아서 문제의식을 느끼지 못했습니다. 드림학기제로 리액트 네이티브 프로젝트를 할 때는 스토리북 세팅과 빌드 환경 세팅에 대부분의 시간을 할애해서 기능 구현을 하지 못했지만 학점 A+를 받았으니 별 문제의식을 느끼지 못했습니다. 지금이라면 리액트 네이티브를 사용할 필요성을 굳이 못느끼고 거의 대부분의 코드를 웹 기술을 사용하여 웹뷰로 작성했을테지만요. 요구사항이 복잡한 경우도 드물고 마감기간도 꽤 널널한 편이었기에 더욱더 요구사항을 성경처럼 받아들이고 어떻게든 기술을 디깅해서 문제를 해결했었습니다. 지금 돌아보니 굉장히 고지식한 학부생이었습니다.
하지만 회사에서 개발을 할 때는 이미 추상화된 모듈들이 복잡하게 얽혀있었고 요구사항의 난도도 높은 경우가 많았습니다. 요구사항을 그대로 지켜서 구현할 때 과도하게 개발 리소스를 사용할 것이 훤히 눈에 보였습니다. 회사에서는 어떻게든 마감기간을 지켜야 회사에게도, 저의 경력에도 이로울 것을 알고 있었기에 다른 방법을 찾아야만 했습니다. 그래서 요구사항을 제시한 디자이너 또는 데이터 분삭가 분에게 개발 리소스가 덜 드는 방법을 제안하고, 이해할 수 있을 정도의 '최소 구현'만 한 뒤에 피드백을 부탁하였습니다. 대부분의 경우에 안 된다는 부정적 답변보다는 방향성은 괜찮고, 마이너한 미세 수치 조정이 필요하다는 답변을 받았습니다. 저는 그렇게 소위 가벼운 말로 '쇼부치는 흥정맨'이라는 수식어를 달게 되었습니다.
요구사항을 조율했던 예시를 들어보겠습니다. 페이지가 이탈되었을 때 뷰포트에서 맨 아래 있는 텍스트를 로깅하라는 요구사항이 있었습니다. 리서치를 해보니 웹 api 중에 sendBeacon
이라는 함수가 있어서, 페이지 이탈이 요청 자체가 가능하긴 했습니다. 하지만 이미 로깅 모듈이 깊게 fetch()
에 의존하도록 추상화되어 있어 sendBeacon()
을 사용한다면 개발 리소스가 많이 들 것이 자명했습니다. 따라서 그냥 스크롤 이벤트가 발생할 때마다 로깅을 하도록 하고, 유저의 세션동안 가장 마지막에 로깅된 텍스트를 '페이지 이탈시 봤던 텍스트'로 잡자고 데이터 분석가님과 협의를 했습니다. 다만 스크롤 이벤트가 발생할 때마다 로깅을 했을 때 로그가 너무 쌓여서, 디바운스를 걸어서 로그가 과다하게 쌓이는 것을 방지했습니다.
회사에서 추구해야하는 가치에 대한 고민
대학교에서도 같이 지내는 친구들이 있어서 인간관계에 대한 고민은 크게 하지 않았던 거 같습니다. 회사에 입사하였을 때도 대학교 교우관계와 같이 친밀한 인연들을 찾을 수 있을 거라 기대했었습니다. 하지만 팀원분들은 대부분 재택근무를 하시고, 계약직 같은 경우 사내행사에 참여하기가 어려워서 많이 친해지기가 어려웠던 거 같습니다. 한동안은 인간관계를 잘 맺지 못했다는 좌절감과 소외감을 많이 겪었는데요. 지금은 회사에서 내가 할 수 있는 것과 없는 것을 명확히 받아들여 잘 지내고 있습니다. 되도록 업무에 대한 얘기로 대화를 이어나가고, 일에 대해 몰입할 수 있는 공간으로서 회사를 인지하게 되는 순간 마음이 좀 편해졌습니다. 회사 안의 나는 FE 개발자, 밖의 나는 인간 김별찬으로서 살 수 있는 '관심사의 분리'가 이루어졌습니다. 지금은 이런 생활에 만족합니다.
Top comments (0)