retrospect

2021년 회고

January 09, 2022

2021년은 다른 느낌의 성장을 하는 해인 것 같다.

요즘의 고민..

상반기와 하반기에는 가장 큰 차이가 있는데
상반기까지만해도 작년에 하던 고민인
나는 어떤 기술 영역을 집중하는 개발자가 되어야할 것인가? 를 계속해서 이어서 하고 있었다.
하지만 이제는 어떤 개발자가 되어야할 것인가? 로 좀 더 상위 계층의 고민을 하게 되었다.

그 이유는 사내에서 프로덕트 리더라는 직책을 가지게 되었기 때문.
내가 엔지니어임에는 변함이 없지만, 나와 함께하는 팀원들이 생기고,

그들과 함께 제품에 대해서 발전시켜나가는데 많은 권한을 가지고 이를 수행하는 역할을 맡게되었다.
하지만 팀을 리드하는 만큼 내 개인 개발 시간도 많이 줄어들었다.

기술을 리드하는 것과 제품을 리드하는 개념은 다르다.
지금까지의 나는 내 미래를 기술을 리드하는 사람으로 보고있었던 것일지도 모르겠다.
하지만 지금 주어진 역할은 제품을 리드하는 역할이 되었고, 여기서 오는 고민이 커져가는 중이다.

나는 어떤 개발자가 되어야하는걸까?
제품이 나의 성과가 되는 것과 기술이 나의 성과가 되는 것 어떤게 더 중요할까?
아니 그 이전에 제품과 기술을 분리해서 생각할 수는 있는걸까?
기술은 그 자체로도 의미가 있긴하지만 그걸 이용하여 제품을 만들어내어 세상에 어떤 가치를 주었을 때 더 의미가 있다.

그렇다면 지금과 같이 엔지니어이자 프로덕트 리더로써 사람들과 같이 제품을 만들어나가는 것이
나에게 가장 도움이 되는 방향일까?

2022년에는 계속 이러한 고민 속에서 보내게 될 것 같다.

반년동안의 리더 회고

아기 리더답게 시작은 내가 단순히 엔지니어이던 시절과 다를바 없이 행동했었다.
지금까지의 나는 제품을 만드는 사람보다는 주어진 업무를 완수하는 용병에 가까웠고,
조직 개편으로 팀이 처음 구성되었을 때에는 하반기에 해야하는 업무가 어느정도 주어진 상태였었다.

그래서 자연스럽게 팀 전체가 나와 함께주어진 업무들을 해결해나가는 용병으로써 일을 하게 되었는데, 물론 회사입장에서는 효과는 좋았다.
필요한게 있으면 뚝딱뚝딱 기간 내에 임무를 완수해내는 훌륭한 팀이였으니.

다만, 이렇게 반년이라는 시간을 팀을 이끌어보니
제품에 대한 많은 권한을 위임 받았음에도 불구하고 기존에 쌓여있는 해야하는 업무들만 쳐내는데 집중하고 있다는 점.
다음에 무엇을 해야할지, 어떤 방향으로 제품을 나아가야할지 고민을 해야하는데 이것을 나 혼자서 결정하고 있다는 점.
그렇다보니 미래의 그림이 내 머리 속에만 있고, 팀원들은 그저 해야하는 업무만을 하기만 하는 상황이 되었다는 점.

이런 문제점들이 생겼고,
그 원인은 아무래도 내가 만든 스쿼드의 구조 때문인 것 같다.

나는 스쿼드는 여러 팀들이 묶여있는 집단이라고 보고 업무를 계획하고 회고를 하는데 있어서 이전 스프린트에 무엇을 했는지 다음 스프린트에 무엇을 할건지 팀별로 계획하도록 하는 구조로 가져갔는데

이렇게 진행을 하다보니,
각 팀의 대표격인 사람들이 생겨 이들끼리 서로 업무를 공유하는 듯한 모양이 되어버렸고
대표격이 아닌 스쿼드원들은 사실상 회고가 아닌, 업무 보고를 하는듯한 느낌을 받으며 간단한 자기 반성의 자리 정도로만 생각하게되어버렸다.

내가 원했던 것은 스쿼드원 모두가 스쿼드의 운영 방식에 대해서 관심을 가지고,
서로 피드백을 주고 받을 수 있고,
또 제품이 개발되어가는 방향에 대해서도 이야기를 나누는 방식이 되길 바랬는데
위와 같은 구조로 진행을 해버리니 대부분의 구성원들이 그저 회고시간을 바라만보는 자리가 되어버렸다.

이를 개선하기 위해
모두가 스쿼드 운영방식에 관심을 가질 수 있는 구조, 모두가 제품의 방향성에 대해 관심을 가질 수 있는 구조가 필요하다고 생각을 했고,
연말을 맞이하여 스쿼드원들과 우리의 방향성과 프로세스의 문제점에 대해서 개선을 시도했다.

그리고 정말 감사하게도, 스쿼드원들 모두가 이런 문제점에 공감을 하고, 현 방식의 문제점에 대한 본인들의 의견을 가감없이 공유해주었다.

이를 통해 우리는 문제점을 해결할 수 있는 방법들에 대해서 다같이 고민하기 시작할 수 있었는데, 다음과 같은 크게 4가지 관점에서 변화를 주려고 시도했다.

  • 스쿼드 구성원 모두가 참여하는 회고가 될 수 있도록 하는 것.
  • 스쿼드 구성원 모두가 어떤 제품을 만들고자하는지 생각하고, 미래의 로드맵을 같이 그려나가는 것.
  • 스쿼드 구성원 모두가 비즈니스 상황을 인지하는 것.
  • 변화하는 주변 비즈니스 상황을 스프린트를 깨지 않으면서도 유연하게 반영하는 것.

지금은 위의 변화점을 모두 반영한 새로운 프로세스로 업무를 진행해보는 중이다.
이전 반년은 비교적 혼자서 만들어갔던 팀이라면 2022년은 다 같이 만들어가는 팀이라는 느낌이 강해졌다.
2022년 말에 작성하게 될 회고에는 이러한 방식이 굉장한 효과를 가져왔고 압도적인 팀이 되었다는 회고를 쓰기를 바란다!

오픈소스 활동?

oss

늘 그렇듯 내가 만드는건 많아서 github에서 활동은 많이하지만 남의 레포에 의견을 남기거나 기여를 한게 많지는 않았는데 올해는 그래도 작년보다는 오픈 소스 관련 활동을 조금이나마 한 것 같다.

단순히 의견을 내거나 이슈를 등록한 것도 있고

실제로 PR을 날려서 수정한 것도 있다.

올 해 PR을 날린 것들에 대해서는 블로그의 한 페이지에 메모해두었는데
가장 기억에 남는 것 하나를 뽑자면 바로 appsmith에 날린 이슈!

이 이슈는 팀 내 인턴으로 계시던 분에게
PR 올리는걸 장려해서 오픈소스에 첫 기여를 해보는 것을 추천을 드렸었고,
실제로 이렇게 https://github.com/appsmithorg/appsmith/pull/9708 도 올려주셨다.

후배 개발자를 양성한다는 느낌보다는
나와 같이 개발의 재미를 느낄 사람을 더 만들고 싶었던 이유가 더 컸었는데 실제로 PR도 올리고 블로그에 후기 글도 써줘서 굉장히 기쁨을 느끼고 있다.

사이드 프로젝트

올 해도 굉장히 많은 레포가 만들어졌는데 살펴보니
typescript, snowpack, tensorflowjs, firebase, react-native, webRTC, yarn berry 등등을 경험해보려고한 것 같다.
이것들에 대한 이야기는 따로 하지 않을 거고
늘 그렇듯 진행했던 프로젝트들 중에 기억에 남아있는 것들을 쓰고자한다.

알려줘전북대

oss

https://github.com/hmu332233/LetMeKnow.jbnu

2022년에는 6년차에 접어든 프로젝트이지만
사실상 2021년은 거의 방치에 가까웠던 프로젝트. 이제는 내 손을 떠나서 혼자서 동작하고 있다.
여전히 코로나는 진행 중이고 비대면 수업도 많아서 1년이 지났음에도 고작 1000명의 사용자가 늘어난 것이 전부이다.
실제로는 더 많은 사람들이 거쳐갔겠지만 남아있는 유저들의 수치상 그렇다 ㅠㅠ..

이제는 이 프로젝트를 건들기보다는 이 프로젝트의 이용자들을 이용한 다른 서비스들을 런칭을 해보려고했었는데 코로나 때문에 사용량이 너무 많이 줄어들어서 만드는 재미가 별로 없어진 상태이다.

2022년에는 다시 한번 이 유저들을 웹으로 끌어내서 광고를 달 수 있도록..!
아 그래도 생각해보니 그걸 시도해보려고 한게
바로 아래의 알려줘전북대 페이지.

알려줘전북대 페이지

oss

https://github.com/hmu332233/LetMeKnow.jbnu--page

현재는 단순히 식단을 보여주는 웹페이지로의 역할만 하고 있다.
이 페이지에 광고라도 붙여볼까 했는데
컨텐츠가 없다는 이유로 반려당해서 그 이후로는 크게 건들고 있지는 않다.
내년에는 firebase 이용해서 간이 블라인드를 오픈해보면 어떨까 싶다.

gatsby-starter-minung

https://github.com/hmu332233/gatsby-starter-minung
https://gatsby-starter-minung.netlify.app

작년 회고의 공약?이였던 블로그 템플릿을 만들어서 오픈했다.
기존 블로그에서 TOC의 하이라이팅 기능을 추가 개발했는데
하이라이팅이 되는 기준점을 고민하면서 일반 웹페이지부터 배민 앱까지 여러 앱들의 동작을 참고해봤던 기억이 난다. ㅋㅋ
구현 결과는 지금도 PC 버전 기준 오른편에 떠 있다.

Random ui picker

https://github.com/hmu332233/random-ui-picker-cli
https://www.npmjs.com/package/random-ui-picker-cli

사내에서 다음 랜덤으로 사람을 추첨할때가 있는데 그 때 개발자들이 간단하게 코드로 랜덤을 추첨하곤 했었다.
너무 긴장감 없이 추첨되는 것 같아서, 터미널에서 UI로 슬롯 머신처럼 볼 수 있도록 만들어서 npm에 올려두었다.
요즘은 스크럼 미팅 진행하면서 다음 사회자?를 뽑는데 유용하게 쓰고 있다.

Screen Recorder - 화면 녹화 확장앱

oss

https://github.com/hmu332233/web-recorder https://store.whale.naver.com/detail/igmapgpncllmjjkicinfmeaehhdbhmbm

웨일스토어에도 올려둔 화면 녹화 익스텐션이다.

"올 해는 공부하고 나면 뭐라도 만들어서 서비스화 시켜야지"의 일환으로
MediaStream, MediaRecorder를 사용해보는데 목적이 있었다.

근데 기본적인 기능을 만들고나니 아쉬워서 mp4와 gif 기능을 추가하려고하니 ffmpeg.wasm를 사용해보게 되었고 이 모듈은 script를 삽입하는 방식으로 코어 함수들을 불러오는 방식이였어서 wasm 실행과 SharedArrayBuffer를 사용하지 못하는 이슈가 있었었다.
또 사용량이 궁금하니 GA를 붙였는데, 익스텐션에는 GA를 붙이는데 있어서 이슈가 있었고 이를 해결하는데 삽질을 좀 했다.

두 이슈를 해결한 방법은 각각 메모를 해두었다.

Peer Whiteboard

oss

https://github.com/hmu332233/peer-whiteboard

피그마를 사용하면서 유용하다고 생각했던 기능인 커서가 실시간으로 공유가 되고, 채팅이 되는 기능이 일반 웹페이지들에서도 되면 괜찮지 않을까?에서 시작한 아이디어로

mvp를 구현하기 위해 webRTC로 통신하고 커서의 실시간 공유까지는 만들어두었으나..
유저마다 해상도가 다르기 때문에 커서의 위치가 서로 동일한 곳을 보고 있다는 걸을 보장하기가 어려워서 현재는 멈춰진 상태이다.
이를 해결할 방법이 있으면 다시 시작해볼 계획인데

그냥 별도의 서버가 없는 webRTC를 이용한 캐치마인드 같은 걸로 아이디어를 옮겨볼까? 도 생각해본다.

마무리

항상 그렇듯 매년 고민을 안고 살고 있는데
2022년은 이전과는 다른 고민들을 계속해나갈 것 같다.
연말에는 고민의 결과에 따라 어떤 행동을 하고 있을지 궁금하다.

회사와 관련해서는
팀을 운영하는 방식에 대해서는 적어도 당분간은 걱정이 없을 것 같아서 다행이다.
걱정이 되는 부분이 조금 있긴한데 이건 또 다 같이 고민하고 개선하면 될 뿐이다.

올 해의 가장 큰 목표는
스쿼드 내 엔지니어들을 좀 더 성장시켜서, 그들도 새로 들어오는 신입분들과 함께 스스로 진행할 수 있게 만드는 것.

그리고 나도 그들과 함께 개발을 열심히 해나가는 것..!

minung.han

내가 쓰기 위해 만드는 자급자족 사이드 프로젝트를 즐겨합니다.