1년 회고록 - 2022년
2021년 12월 20일, 회사에 프론트엔드 개발자로 입사했고 벌써 1년이 지났다.
처음에는 선임의 제안으로 쓰게 되었지만 한 해 동안 내가 무슨 일 했고 어떤 일을 배웠는지 그리고 무엇을 느꼈는지 돌아보기 좋은 타이밍이라는 생각이 든다. 그래서 월마다 무슨 작업을 했고, 그 과정에서 느낀 것들에 대해 얘기해보려고 한다.
[ 1월 - 2월 ] 온보딩, 그리고 첫 작업에서 얻은 것
개발팀 첫 온보딩 당첨자였다. 다들 신경을 많이 써주셔서 잘 적응할 수 있었다.
온보딩 기간에는 크게
💻 작업 내용
- 도메인 이해
- 랜딩 페이지, 알림센터 업데이트
- 디자인 시스템 구축 (스토리북 + component common.v2)
- 회원 상세 페이지
작업을 했다.
입사 당시 개발팀은 효율성 증대라는 목표를 가지고 있었고 그중에 하나가 디자인 시스템을 구축하는 일이었다. 비슷한 시기에 입사한 디자이너 분이랑 소통하며 디자인 시스템 구축하는 일을 진행했고, 이때 구축한 컴포넌트들을 사용하면서 개발 작업의 효율성을 높인 것 같아 아주 뿌듯했다. (물론 부족한 점이 보이지만😅)
다음 작업인 회원 상세 페이지에선 ‘디테일’에 대해 중요성을 가지게 되었다. 첫 메인 작업인 만큼 척척 해내는 모습을 보여주고 싶었지만, 당시 cs랑 데이터 이관이 많아 API 작업이 늦춰지기도 했고, 하나하나 다 확인받고 싶은 마음에 일정이 미뤄졌었다. 다시 한번 점검할 수 있는 시간이 생겼고 첫 작업의 마무리가 생각보다 좋았다.
배포까지 진행해보니 내 업무가 끝나야 모든게 마무리된다는 것을 보고 프론트엔드 업무가 사용자와 가장 가까이 있는 직무라고 다시 한번 느꼈다. 이번 일로 내가 만드는 제품이 사용자들에게 최고의 경험을 제공하고 싶었기에 더 꼼꼼하게 작업해야겠다고 다짐했다.
[ 3월 - 5월 ]
💻 작업 내용
- 일정 Version2
- 대시보드 실시간 출석
3월에는 사무실 이전으로 재택근무를 하게 되었다. 1달 동안의 재택근무 경험은 제가 했던 걱정과는 반대로 좋았다. 아직 수습도 떼지 못했고 직접적으로 물어볼 수 없어 걱정되었는데, 게더타운을 통해 마치 옆에 있는 것처럼 원활하게 의사소통을 할 수 있었다.
재택근무 기간에는 일정 version2 작업을 진행하였다. 작업을 하다 보면 기능개발에 드는 자원만 생각하면 안 된다는 걸 깨달았다. 예상치 못한 문제를 만나 기획이 변경될 수도 있고, 코드 리뷰, 문서 작성 등에 대한 시간도 고려해야 한다.
일정v2 작업은 선임과 내 생각보다 훨씬 큰 작업이었고, 배포 하루 전에 완료되지 않은 채 공유가 되었다. 작업이 완성되지 못할 것 같다면 빠르게 상황을 공유하고 플랜 b를 만들어야 하지만 이런 과정을 수행하지 못했다.
그렇기에 4월에는 배포가 된 후에도 한동안 일정 QA 피드백을 수정하는 데 시간을 사용했다. 이 작업 이후로는 계획을 세울 때 좀 더 현실적으로 접근하게 된 것 같고, 계획을 수립하고 진행하는 과정이야말로 직접 경험해보면서 알아가는 영역인 거 같다.
[ 6월 - 8월 ] 관리자앱 전담마크 & 유료화 전환
💻 작업 내용
- 구성원 초대 플로우
- 급여정산
- 전자계약
- 유료화 전환
6월의 첫 작업인 구성원 초대 플로우 작업을 시작으로 우리 프러덕트에 관리자앱을 맡게 되었다. 관리자앱은 하이브리브 어플리케이션 프레임워크인 ionic + capacitor으로 개발된 프로젝트이다. 웹 기술을 기반으로 되었어 다짐매니저와 다르지 않지만, 승인이 필요한 native 배포와 codepush 배포 환경에 대한 이해가 필요했다.
몇 번 해보다 보니 아주 어렵지 않았지만 Nextjs +. Vercel로 구성된 다짐매니저의 배포 난이도는 쉬었기에 앱의 배포-심사과정을 거쳐 앱스토어에 배포해야 하는 과정이 많게만 느껴졌다.
9월에 다짐매니저는 유료화 전환이라는 큰 변화를 앞두고 있었다. 그전에 사용자들과 약속했던 급여정산과 전자계약 기능을 추가해야만 했다. 첫 번째 스프린트였던 급여정산은 상품, 일정, 구성원, 출석, 예약과 연관된 작업이라 기획에서 생각했던 것보다 몇 배로 많은 사이드 이펙트를 고려해야 했고, 전자계약 기능은 html 계약서를 pdf로 그리는 접근 방식에서 많은 어려움이 있었다.
💡 당시 고민 했던 것
- 사인, 도장의 배경색을 어떻게 없애야 할까?
- 기능이 하나 업데이트 되면 엄청난 양의 코드가 나오게 된다. 일정상 리뷰를 할 수 없을 땐 어떻게 진행할까? → 공유가 필요한 코드는 별도로 리뷰
이때는 ‘급여 정산만 끝나면…’, ‘전자계약만 끝나면…’, ‘유료화만 끝나면…’ 이라는 말을 달고 살았다. 그만큼 이 기간은 모두가 힘들었을 거라고 생각된다. 하지만 이 3개의 기능 개발을 하면서 더 나은 방향을 위해 치열하게 토론하고 고민하는 과정을 반복하는 동료들이 너무 대단해 보였다. 그렇게 옆에 있는 동료들에 대한 더 큰 자부심이 생겼고, 뛰어난 동료들처럼 더 잘하고 싶다는 마음이 더 강해졌다.
[ 9월 - 12월 ]
💻 작업 내용
- 그동안 관리되지 못한 CS
- 일정 생성 version2 업데이트
- 관리자앱 일정 CRUD
- 상품 version 2
- (진행중) 교차수강
서비스가 유료로 전환되면서 그동안 관리되지 못한 cs를 처리하면서 메인 서비스와 관리자앱의 일정 페이지 업데이트, 상품 version2 업데이트를 진행했다. 이 세 작업은 프론트 단독 작업이었고, 이전에 메인 서비스에서 한번 했던 작업이기에 수월했다. 작업 속도가 빨라진 것을 느끼면서 일정에 맞추기 위해 노력하면서 전에 했던 작업을 토대로 더 나은 방법을 찾으려고 했다. 개발을 하다 보니 구현해봤던 것들이 많아진다. 한 번 만들어봤던 것은 두 번째 만들 때 훨씬 쉽게 만들 수 있다. 더 나은 방법을 고민하는 과정이 재밌었다.
현재는 교차수강 작업을 진행중이고, (사용자들이 사용하는) 어드민 프로젝트 세팅부터 시작해 진행 중에 있다. 내가 속해 있는 회사의 서비스가 무럭무럭 잘 크고 있어 굉장히 뿌듯하다.
남은 이야기들
웹과 앱의 경계는 무너지고 있다.
개발팀 스터디에서 PWA를 공부라면서 느꼈지만, 앞으로 웹의 발전이 더욱 기대가 된다. 2016년 구글이 발표한 PWA(Progressive Web App)은 웹앱에서 모바일 앱의 기능을 구현한 하나의 기술 표준이다.
- 바탕화면에서 앱을 실행할 아이콘
- push notification
- 네트워크가 없어도 접속이 가능한 caching
전부 가능하다는 걸 확인했다. 장점도 명확하다.
- 웹의 접근성
- 배포 용이성
- 개발 리소스 감소( Os에 맞는 언어로 개발 필요 X )
물론 앱처럼 작동하기에는 아직 부족한 부분이 많다. 지금까지 수익을 위해 소극적으로 대응했던 애플도 PWA 개발에 동참하면서 MacOs는 13버전부터 푸시알림이 가능해졌고, ios도 내년에 개발이 끝나는 걸로 알고 있다. 또 하나 아쉬운 점은 브라우저가 완전 종료되면 앱도 완전히 종료되지만, 크롬이움에서 os에 접근하여 웹앱을 깨울 방법을 개발 중이다.
우리는 단지 앱의 푸시 알림 기능이 필요해서 앱을 만들 필요도 없어졌다. 점점 네이티브 기능(카메라나 GPS, 블루투스, push, 연락처 정보, 파일시스템)이 자바스크립트를 통해서 개발이 가능해지고 있다.
passkey 개발
- 웹에서 비밀번호 없애기 프로젝트 진행 중
- 동일한 암호를 재사용, 해킹에 대한 위험, 2단계 인증 추가
- 비밀번호를 보완하거나, 두 번째 인증을 추가하는 대신 비밀번호 자체를 없애버린다.
Apple, Google, and Microsoft commit to expanded support for FIDO standard
크롬에서의 Passkey를 소개합니다 | GeekNews
개발 효율성
우리 개발팀은 더 나은 개발 환경, 더 높은 효율성을 위해 계속해서 노력하고 있다. 여기가 첫회사라 당연하다고 생각했는데, 주변 얘기를 듣다 보니 꽤 답답한 상황들도 많았다.
제가 있는 1년 동안 프론트엔드 파트에선 DDS, 서브모듈 등이 있다. 그중 단연 하이라이트는 서브 모듈의 도입이다.
서브모듈이란 **‘Git 저장소 안에 다른 Git 저장소를 디렉토리로 분리해 넣는 것’**이다. 서브모듈은 내가 한 작업은 아니지만 모듈화를 통해 재사용성을 극대화했다. 서브 모듈의 도입으로 같은 디자인 시스템을 사용하는 프로젝트(메인 서비스, 관리자 앱, 어드민 서비스)에서 기존에 있던 컴포넌트들을 가져와 쓰기만 하면 됐다. 물론 API(쿼리, 뮤테이션)도 마찬가지이다. 이러한 장점으로 프로젝트를 쉽게 생성할 수 있었다. 메인 서비스와 어드민 서비스는 웹이고 관리자앱은 웹앱이라 OS에 따라 맞지 않는 부분도 존재했지만, 그런데도 효율성을 높이는 좋은 개발 경험을 할 수 있었다.
개발 효율성
우리 개발팀은 더 나은 개발 환경, 더 높은 효율성을 위해 계속해서 노력하고 있다.
여기가 첫회사라 당연하다고 생각했는데, 주변 얘기를 듣다 보니 꽤 답답한 상황들도 많았다.
제가 있는 1년 동안 프론트엔드 파트에선 DDS, 서브모듈 등이 있다. 그중 단연 하이라이트는 서브 모듈의 도입이다.
서브모듈이란 ‘Git 저장소 안에 다른 Git 저장소를 디렉토리로 분리해 넣는 것’이다. 서브모듈은 내가 한 작업은 아니지만 모듈화를 통해 재사용성을 극대화했다. 서브 모듈의 도입으로 같은 디자인 시스템을 사용하는 프로젝트(메인 서비스, 관리자 앱, 어드민 서비스)에서 기존에 있던 컴포넌트들을 가져와 쓰기만 하면 됐다. 물론 API(쿼리, 뮤테이션)도 마찬가지이다. 이러한 장점으로 프로젝트를 쉽게 생성할 수 있었다. 메인 서비스와 어드민 서비스는 웹이고 관리자앱은 웹앱이라 OS에 따라 맞지 않는 부분도 존재했지만, 그런데도 효율성을 높이는 좋은 개발 경험을 할 수 있었다.
빠르게 성장하는 방법
제가 생각하는 빠르게 성장하는 방법은 2가지라고 생각하는데
- 첫 번째는 나보다 잘하는 개발자와 함께 일하는 것
- 두 번째는 그런 환경을 최대한 빨리 만드는 것.
운동할 때도 느꼈지만, 옆 사람의 수준에 따라 나의 실력이 많이 달라진다. 자신이 비록 실력이 없고 아무것도 모른다고 하더라도 내 옆에 잘하는 사람이 있다면 결국 잘하게 된다.
옆 친구의 지식을 습득하면서 내 레벨이 점점 올라간다. 처음에는 잘하는 친구에게는 도움이 되지 않겠지만 점점 서로에게 좋은 영향을 미치면서 서로 발전해 나가기 시작한다.
이제 3년차가 되는 선임은 입에 항상 달고 사시는 말 중에 ‘내가 구현 못할 기능이 있을까?’라고 얘기하셨는데, 나도 어느 정도 동의한다. 솔직히 1년 전의 내가 이런 생각을 가질 거라고 전혀 생각하지 못했는데, 이 자신감은 나보다 잘하는 사람들과 1년이라는 시간을 함께 일했기 때문이라고 본다.
또 저번에 회고하다 선임이 이런 얘기를 했다. ‘낮은 연차의 동료들이 많아지고 있다 보니 동료들이 어떻게 성장하게 만들어야 하는지에 대한 철학이 생겼다. 문제를 해결할 수 있는 능력 자체를 키워주고 싶다. 문제를 해결할 때 사고하는 방식에 대해 발전시켜주고 싶다.’라고 얘기했다. 이런 사람과 한 팀이라니… 정말 미치도록 좋다. (박수)
여기 와서 너무 좋은 동료들을 만났고 많은 도움을 받고 있다. 나도 더 도움이 되는 사람이 되고 싶다.
아쉬웠던 점
- 더 깊게 공부하지 않은 것
기능 구현에 집중했던 탓에 너무 겉핥기 식으로 공부한게 아닌가 싶어 23년에는 좀더 깊게 공부할 생각이다.
벌써 나보다 늦게 입사한 사람이 3명이나 생겼다. 들어오시는 분들의 수준이 점점 높아지고 있고 그들을 보면 뭔가 뒤쳐지는 것 같아 불안할 때가 있다. 남들보다 늦게 시작한 만큼 더 노력해야 한다. 제대로 설명하기 위해선 제대로 공부해야 한다.
- 트렌드를 파악하는 일
많이 하지 못했던 것이라고 하면 ‘새로 나온 앱이나 서비스 써보는 일’이다. 좋은 앱을 만들기 위해선 좋은 앱과 나쁜 앱의 차이점도 알아야 한다. 하지만 매번 ‘나중에 확인해야지’ 하면서 넘긴 순간들이 좀 많다.
- 개인 기록
하루 어떤 작업(일일 회고)을 했고, 어떤 문제를 만났고 해결했는지 정리하는 과정에 소홀했다.
기록하면 당장 기억은 못 할지라도 예전에 기록한 내용들을 찾아볼 수 있기에 돌아보니 더 아쉽게 느껴졌다. 지금, 이 회고록을 쓰면서도 ‘이때 분명 뭐가 있었는데 뭐였지?’라는 생각만 100번 이상은 했다.
그리고 한때, 열심히 블로그를 작성하던 적이 있었는데 개발 일을 하면서 점점 글의 퀄리티에 신경 쓰다 보니 손에 잡히지 않았다. 또 잘못된 정보를 입력하는 것만 같은 느낌도 들어서 안 했다. 이번 회고록을 계기로 다시 시작해볼까 한다.
마무리
한 해를 마무리하면서 내가 어떤 작업을 했는지 작성할 수 있는 시간이어서 재밌었다.
1년이라는 시간이 빠르게 지나갔고, 많은 성장과 동시에 많은 변화가 있었다.
가장 크게 바뀐 것은 입사 초기에는 모든 일 하나하나에 확인이 필요했지만, 이젠 먼저 행동하고 ‘이렇게 했어요.’라고 보고할 때가 많아지고 있고 그럴 때마다 책임감이 커지고 있다. 프로젝트를 설계, 스프린트 진행, 조직 문화에 대한 얘기를 나누기도 하면서 미약하지만 조금씩 회사에 영향을 주게 되는 것 같다.
2023년도엔 더 잘해보겠습니다. 내년도 화이팅!