Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

2022년 회고

회사

어느새 지금 회사인 당근마켓에 온 지 2년이 넘었다. 어쩌다 보니 지금 8번째 회사인데 그동안 자의든 타의든 2년 넘게 다닌 회사가 몇 개 되지 않는다. 지금 하는 일에 꽤 재미있어서인지 딱히 체감하지 못한 채 벌써 2년이 되었다는 느낌이다.

SRE팀의 딜리버리 파트에서 배포 시스템을 만들면서 작년에는 단둘이서 열심히 만들었는데 올해의 가장 큰 성과는 딜리버리 파트가 5명이 되었다는 것이다. 전에 큰 팀에서 매니징이 내 능력 밖이라고 느껴서인지 팀 리드가 파트원을 늘리라는 말을 계속해도 작년까지는 버티고 있다가 연말부터 준비해서 올해 파트가 5명으로 늘어났다. 운 좋게 좋은 동료들이 합류해서 올해는 5명이 잘해 나가고가고 있다고 생각한다. 여전히 할 일은 많지만 좀 탄탄히 다지면서 파트 규모를 늘리고 싶었기에 5명이 된 후에는 규모를 더 늘리기보다는 이 5명이 잘 할 수 있게 집중했다.

배포 시스템(이라고 말하지만, 내부에서는 더 큰 틀로 생각하고 있지만...)은 꽤 큰 시스템이라서 작년의 회사에서 공개했지만, 아직 초기 단계이고 새로 합류한 사람들과도 지금 어떤 시스템을 왜 만들고 있는지 많이 공유하고 얘기를 나누려고 했다. 아무래도 1년 동안 고민했던 히스토리가 기존 멤버에는 쌓여있고 새 멤버에는 그런 히스토리가 없기 때문에 했던 고민이 다시 나오는 경우도 있고 어떤 문제에 대해서 다른 접근을 하는 경우도 많았다.

당근마켓

운 좋게도 다들 만들고 있는 시스템에 대해 공감해 주고 같이 고민하면서 많은 얘기를 나눈 덕에 지금은 꽤 같은 방향을 보고 있다고 생각한다. 팀이 5명이 되었을 때 당분간 사람을 늘리지 않고 이 5명이 합을 맞추는 데 집중하겠다고 했는데 그 합은 꽤 많이 맞아졌다고 생각한다. 항상 목표했던 회의 시간을 넘어설 정도로 회의 수도 많고 시간도 길었기 때문에 고민도 많았지만 그래도 각 논의가 생산적인 얘기를 하느라고 길어지고 많아졌다고 생각했기에 그냥 있었는데 결과적으로는 잘 된 거 같다. 여전히 각자의 생각은 다르고 의견 차이도 크게 있지만 서로에 대한 신뢰도 많이 생기고 취향에 관해서도 알게 되어 회의할 때 잘 설득해 보려고 노력하고 있다.

파트 리드를 하고 있다 보니 어느 정도 매니징이 섞여 있는데 지금 같이하는 동료들이 너무 잘해주어서 큰 어려움 없이 여기까지 올 수 있었다고 생각한다. 매니징이란 스킬은 나에겐 너무 고급 스킬이라서 참 어렵다고 생각하고 내가 생각하는 매니징에서 지난 조직과 지금 조직의 차이를 올해 종종 고민했는데 아직 답은 잘 모르겠다. 이글도 동료들이 볼 수 있어서 조심스럽긴 한데 내가 생각하는 매니징은 크게 보면 프로젝트의 방향과 회사의 방향이 많이 틀어지지 않도록 맞추는 것이고 그 방향성으로 동기부여를 해서 구체적인 액션은 각자 고민하게 하는 거라고 생각하고 있다.(이건 매니저라기보다는 시니어 엔지니어에 더 가까울 수도 있다.) 더 많은 사람이 같은 방향으로 고민해야 더 좋은 아이디어가 나올 테니까... (사람에 대한 매니징은 노력하고는 있지만 여전히 어렵다.)

물론 고민은 각자 하더라도 실제로 진행할 때는 동료의 동의를 얻어야 한다고 생각한다. 보통 자기 생각은 동의를 얻지 못하기 마련이고 동의를 얻지 못하면 동의를 얻기 위해 설득 논리를 더 준비해야 한다고 생각한다. 아무래도 리드를 하고 있으니 파트의 업무 대부분을 파악하려고 하고 있지만(그래서 종종 의견을 낼 때 조심스럽지만) 내가 승인(말이 이상하지만 적당한 말이 생각나지 않아서)한다기 보다는 파트 전체의 합의가 이뤄지게 하는 게 중요하다고 생각했다. 그래서 요즘은 의견 대립이 발생했을 때 너무 절충안을 만들려고 고민하나 싶기도 하다. 막연히 생각하다가 실제로 반대하던 접근에 설득되는 경우도 있어서 많이 배웠다고 생각한다. 이런 부분에서 만족할 수준으로 잘 되고 있다고 생각하고 전반기보다 후반기가 더 잘되고 있다고 느껴져서 더 재밌었다.

어쨌든 현재 내가 매니저라는 인식은 그리 많지 않다. 그동안의 경험으로 수평적으로 일하는 것과 리드이면서 수평적이라는 말 아래 무책임해지는 것의 위험성을 좀 배우긴 했지만, 그 인식만 있을 뿐 실제로 어떻게 하는 게 맞는지는 여전히 어렵다. 그런데도 지금 조직은 알아서 잘해주어서 매니징이 거의 필요하지 않다고 느끼고 있고 내가 개인적으로 잘할 수 있다고 생각하는 프로젝트의 방향을 설정하는 부분만 집중하면 프로젝트가 너무 잘 진행되었기에 만족하고 있다. 지금 만드는 배포 시스템을 만들 때 이 시스템은 단순한 배포 시스템이 아니라 SRE 팀 전체의 시스템이 되어야 한다고 생각했는데 올해는 그 부분에 많은 발전이 있어서 더욱 만족스러웠다. 작년에는 딜리버리 파트의 시스템이었는데 이젠 SRE팀의 클라우드 파트도 같이 개발하고 있다. 며칠 전 송년 워크숍을 하면서 한해를 돌아보느라 정리해봤는데 조금씩 개선되니 잘 몰랐는데 1년 단위로 보니까 올해 참 많은 기능을 개발했구나 하는 생각이 들었다.

배포 시스템은 어느 조직에나 있고(직접 만들든 아니든) 엔지니어라면 누구나 생각하지만 "배포 시스템은 어떤 모양이어야 하는가?"에 관해 집중적으로 고민할 기회는 많지 않았다. 시스템이 고도화될수록 더 어려워지기는 하지만 개인적으로 상당히 재미있는 고민이라고 생각한다.(2년을 고민했는데 여전히 재밌다) 쉽게 보면 간단하지만 고민하면 할수록 그 안에 담긴 의미는 심오하기 그지없었는데 그래도 내가 이것저것 관심 가지고 공부했던 부분이 다 섞여 있는 느낌도 있다. 배포에 관한 글도 따로 쓰고 싶은데 너무 복잡해서 아직도 쓰지 못했다.

그동안 고민했던 키워드인 "Self Service"에 대한 생각을 지난 11월 발표에서 약간 공유했었는데 개인적으로 인프라 쪽 업계가 Self Service로 가고 있다고 생각하고 앞으로도 더욱 가속화될 것이지만 아직 확고히 자리 잡진 못했다고 보고 있다. 지금 하는 시도가 괜찮은 시스템을 만들고 있다는 자신감도 어느 정도 생기게 되었다.(물론 동시에 잘 알고 있다고 오만해지고 있지 않나 하는 걱정도 있다) 그래서 내년은 더욱 기대된다. 조직마다 다르겠지만 나는 Argo CD가 배포 시스템으로는 좋지 않다고 생각하는 편이다.

업무용 GitHub 컨트리뷰션 그래프

작년에는 코딩이 주 업무였으면 올해는 아무래도 파트 전체가 일을 더 잘할 수 있게 하는 데 집중했다. 거의 모든 코드를 알고 있다가 점점 잘 모르는 코드가 늘어가면서 생기는 불안감이 있지만 그 불안감도 더 잘 마주해주게 된 거 같다. 지금 대부분의 코드는 Pull Request 기반으로 하고 있기 때문에 업무 속도를 느려지지 않도록 코드 리뷰에 많은 시간을 썼다. 여전히 개발할 때가 더 마음이 편하긴 하지만 나보다 더 잘하는 사람에게 맡겨놓을 수 있게 되었다.

업무용 GitHub 컨트리뷰션 그래프

요즘 경제도 안 좋고 겨울도 와서 한화 채굴이 중요한 시기인데 다행히 아직 할 일이 많고 업무가 재밌어서 다행이다.

개인 코딩

올해는 개인 코딩은 많이는 못 했다. 몇 년 전에 만들었던 citizen 프로젝트를 그래도 올해 꽤 관리했고 오랫동안 활동하던 Mocha는 근근이 끊기지 않을 정도로 자잘한 것 위주로 기여했다. 5~6명이던 메인테이너 중에 올해는 나 말고 거의 1명만 활동하고 있는데 그동안 Mocha를 리드하던 사람이 이젠 거의 Mocha에 활동하고 있지 않고 새로 온 사람이 주로 하고 있어서 좀 재미없어졌다. 코어팀끼리 얘기하던 것도 없어졌고 내가 영어가 짧아서인지 몰라도 새로 리드하는 사람이 좀 독단적이고 공격적으로 말한다는 느낌이 있어서 기여의 재미도 줄어들었다.

GitHub 컨트리뷰션 그래프

이렇게 컨트리뷰션 그래프로 보니 월초에는 왜 바빴지? 하는 생각이 들면서 여름에도 좀 쉬었고 12월에도 그냥 쉬었다는걸 알 수 있었다. 일이 막 힘들었던건 아니지만 퇴근하고 와서 그냥 좀 쉬고 싶다는 생각으로 집에서는 늘어져 있었던 거 같다.

업무로 배포 시스템을 만들고 있어서 그 생각으로 오픈소스로 만들어도 좋겠다는 생각에 private 저장소를 만들어서 개인 프로젝트를 시작했다. 예상은 했지만, 생각보다 환경에 대한 전제로 시스템을 만드는 것과 전제 없이 범용적으로 만드는 것의 차이는 엄청나게 컸다. 초기 프로토타입을 회사에서는 1~2주 만에 만들었었는데 오픈소스 버전에서는 어떻게 만들어야 할지 방향을 못 잡고 갈팡질팡하다가 진행하지 못하고 지금은 거의 멈춰버렸다. ㅠ

올해는 TypeScript와 React를 좀 공부해야 해서 고민하고 있는데 항상 그렇듯이 속도를 잘 못 내고 있다. 그래도 개인 프로젝트를 Deno로 TypScript를 좀 써보려고 하고 있고 Citizen에도 React로 UI를 추가해봐야지 하고 있지만 올해는 진행하지 못했다.

RescueTime 1년 통계

RescueTime으로 측정한 1년간의 내 컴퓨터 활동이다. 카테고리화는 내가 직접 하긴 하지만 그래도 관련 있는 거로 했는데 75%는 생상적인 활동으로 기록되었으니 나쁘진 않다. 물론, 이건 RescueTime이 더 유료화되면서 회사 맥북과 따로 추적하려면 2개의 계정을 결제해야 해서 하나로 했더니 업무하면서 했던 활동도 추적되어서 더 생산적으로 나온 것도 있긴 하다. 개발 관련 활동도 자세히 보려고 WakaTime도 설정하긴 했는데 자주 들어가서 보지 않다보니 결제 안하면 최근 데이터만 볼 수 있다는 걸 몰랐다. 내년엔 결제할까 고민 중이다.

RescueTime 앱별 통계

활동별로 보면 아이폰에서 한 활동이 제일 많지만 다 비생산적인 활동으로 잡혔고(아이폰 내에서 상세 구분은 안 되는 거 같기도...) 그 외에는 트위터만 하는구나. 내가 슬랙을 생각보다 많이 쓰는구나. Sublime Text는 내가 글을 주로 Sublime Text에서 작성해서 그렇다.

블로그

월별 블로그 글 통계

올해는 블로그를 더 열심히 해야겠다고 생각했는데, 어느 정도의성과는 이루었다. 예전에는 블로그 글도 쓰면서 코딩도 많이 했는데 간단한 주제보다는 시간이 걸리는 주제로 글 쓰는 경우가 더 많아져서인지 블로그 글을 많이 쓰면 아무래도 다른 활동은 잘 못하게 되고 시간도 꽤 빡빡하게 쓴다는 기분이 든다. 똑같은 24시간인데 왜 체감이 달라졌는지...

2018년이후 연별 블로그 글

그래도 2018년 이후 처음으로 다시 60개 이상의 글을 작성했다. 이 회고 글까지 올리면 올해는 68개의 글을 작성했다. 70개를 넘기고 싶었는데 결국 넘기지 못했다. 내년에는 70개를 넘기기를 기대해본다.

작년에는 안 했었는데 또 안하니까 아쉬운 거 같아서 올해 많이 본 페이지 10개를 뽑아봤다. 항상 좀 비슷하긴 한데 기본적인 내용이 아무래도 많이 검색되고 macOS 버전이 올라갔기 때문인지 zsh 설정과 git의 switch/restore도 많이 읽혔다. 하지만 난 정작 switch/restore에 적응하지 못하고 checkout에 머물러 있다.

  1. Javascript에서 String을 Number타입으로 바꾸기 - 2009/08/19, 70,130 PV
  2. 제발 a href="#" 좀 쓰지 말자.... - 2008/10/22, 29,527 PV
  3. 이력서 - 2016/08/11, 24,196 PV
  4. Git의 기본 브랜치를 master에서 main으로 변경하기 - 2020/10/10, 17,709 PV
  5. Java의 Foreach 루프 사용하기 - 2009/01/19, 16,727 PV
  6. git이 추적하지 않는 untracked files 한꺼번에 삭제하기 - 2015/08/20, 15,911 PV
  7. Ubuntu의 apt-get 명령어 정리 - 2009/06/23, 14,230 PV
  8. 알고 있어야 할 8가지 정규식 표현 from nettuts+ - 2009/08/14, 13,473 PV
  9. Powerlevel10k로 zsh 설정하기 - 2020/07/29, 12,815 PV
  10. 새 버전에 맞게 git checkout 대신 switch/restore 사용하기 - 2020/10/32, 12,003 PV

올해 쓴 글 중에서 많이 읽힌 글 10개도 뽑아보았다. 물론 후반기에 쓴 글은 노출 기간이 적어서 아무래도 전반기에 쓴 글이 페이지뷰가 높긴 하다.

  1. GitHub에서 기본 브랜치 변경하는 명령어 살펴보기 - 2022/05/26, 5,312 PV
  2. Git에서 다수의 워킹 디렉토리를 관리하는 worktree - 2022/04/06, 1,730 PV
  3. curl 7.82.0에 추가된 JSON 옵션 - 2022/03/09, 1,205 PV
  4. [Book] 팀 토폴로지 - 빠른 업무 플로우를 만드는 조직 설계 - 2022/02/27, 1,132 PV
  5. GitHub Actions의 workflow_call로 워크플로우 재사용하기 - 2022/04/18, 1,125 PV
  6. 다른 저장소의 GitHub Actions 워크플로우를 호출할 수 있는 repository_dispatch - 2022/04/12, 1,090 PV
  7. 의존성 위험성과 펀딩 - 2022/01/11, 1,031 PV
  8. 구성(Configuration) 복잡도의 저주 - 2022/05/18, 937 PV
  9. GitHub Actions의 Composite 액션 작성하기 - 2022/04/23, 829 PV
  10. GitHub Actions의 잡 요약 기능 - 2022/05/14, 806 PV

글 쓰는 거 말고 블로그도 유지보수를 좀 해야 하는데 계속 미루다가 결국 못했다. 그러고 보니 연말에 쉴 때 좀 봤어야 했는데... 기능 추가는 PHP라서 좀 어렵긴 한데 이상하게 동작하거나 불편한 건 좀 수정해야겠다. Google Adsense도 연초인가 좀 껐는데 Adsense의 뭐가 또 달라졌는지 광고가 또 많이 나오고 있긴 하다. 환율이 비싼 이때 광고 수익도 서버비 댈 정도는 나오고 있어서 귀차니즘을 핑계로 놔두고 있다.

내년에는 Google Universal Analytics가 23년 7월부터는 수집이 중단된다고 해서 Google Analytics 4로 갈아타야 하는데 아직도 파악을 잘못하고 있다. 이 작업도 빨리 좀 끝내야 하고 구글 검색에서 검색 결과에 잘못된 링크로 유입되는 게 있어서 이것도 점검을 좀 해봐야 한다.

올해는 책을 좀 많이 봐야지 했는데 별로 많이 보진 못했다. 목표는 더 높게 잡았었지만, 책 읽는 게 워낙 느리기도 하고 중간중간 쉬었다 읽어서 10권을 겨우 읽었다. 난 소설류는 잘 보지 않아서 다른 책을 보느라 IT 관련 책을 별로 안 본 게 아니고 이게 내가 읽은 책의 전부이다. 물론 지금 읽고 있는 책도 2권 정도 있지만..

월별 독서 통계

책 많이 읽는 사람 부럽다. 올해는 "구글 엔지니어는 이렇게 일한다"가 제일 재밌었고 "팀 토폴로지"도 생각지 못한 관점을 주어서 기억에 많이 남는다.

  1. 해커, 광기의 랩소디 - 세상을 바꾼 컴퓨터 혁명의 영웅들
  2. 팀 토폴로지 - 빠른 업무 플로우를 만드는 조직 설계
  3. 리팩터링 2판 - 코드 구조를 체계적으로 개선하여 효율적인 리팩터링 구현하기
  4. 피, 땀, 픽셀 - 트리플 A 게임은 어떻게 만들어지는가
  5. 프로그래머의 뇌 - 훌륭한 프로그래머가 알아야 할 인지과학의 모든 것
  6. 구글 엔지니어는 이렇게 일한다 - 구글러가 전하는 문화, 프로세스, 도구의 모든 것
  7. 안드로이드 뜻밖의 역사 - 세상을 뒤흔든 모바일 OS에 담긴 숨은 이야기
  8. 단위 테스트 - 생산성과 품질을 위한 단위 테스트 원칙과 패턴
  9. 클라우드 네이티브를 위한 쿠버네티스 실전 프로젝트 - 아마존 EKS로 배우는 데브옵스 및 IaC 기반 서비스 배포와 관리
  10. 실전 카프카 개발부터 운영까지 - 데이터 플랫폼의 중추 아파치 카프카의 내부 동작과 개발, 운영, 보안의 모든 것

발표

코로나가 끝나가면서(실제로 끝난 건 아니지만 어느 정도...) 오프라인 행사가 자주 생겨서 작년에는 발표를 거의 하지 않았는데 올해는 밋업과 콘퍼런스에서 3번이나 발표했다. 준비할 때도 재밌긴 했지만 역시 발표는 오프라인이 청중의 표정과 반응도 볼 수 있고 발표 전후에 사람들 얼굴도 볼 수 있어서 재밌는 거 같다.

이 외에도 삼성 멀티캠퍼스 SAFFY에서 정기적으로 하는 발표도 진행했고 GitHub에 계신 Bryant Son님과 연이 닿아서 KAITA에서도 발표를 온라인으로 진행했다.

오프라인 행사가 생겼지만, 예전처럼 많이 돌아다니진 않았다. 일단 올해까지는 재택을 많이 하다 보니 사무실 가는 일정과 맞지 않으면 세미나도 잘 참석하지 못하게 되었다. 그래도 INFCON으로 코엑스에서 콘퍼런스 할 때는 발표하진 않았지만 오랜만에 사람들도 만나서 재미있었다. 역시 오프라인에서 해야 부스 구경도 하고 새로운 사람들과도 인사하게 되는 거 같다. 제대로 즐기진 못했지만 코로나 때문에 못 가던 해외 콘퍼런스도 올해는 갈 수 있게 되어 AWS re:Invent에 갔다 왔다.

스터디

"팀 토폴로지"는 회사에서 독서 모임처럼 책을 읽고 얘기하면서 진행했는데 회사가 조직 관리와 관련된 부분이라 같은 회사 내에서 얘기하면서 하니까 꽤 괜찮았다. 회사에서 만드는 서비스를 Node.js로 하다 보니 연초에 코드에 대해 생각을 나눠보면 좋을 것 같아서 "리팩터링"으로 스터디를 진행했다. 회사에서 스터디를 한건 꽤나 오랜만인데 기대처럼 잘 안된 경우도 많고(뭔가 강제로 하게 되는 분위기도 있고) 바빠지면 자연스레 스터디도 흐지부지 되는 경우도 많아서였는데 이번에는 끝까지 잘 진행되었다.

수년째 같이하고 있던 인프라 스터디 모임에서는 지난 2년간 온라인으로만 스터디하다가(컨퍼런스와 달리 스터디는 온라인이 더 좋은거 같다.) 올해 번개로 다같이 한번 모인김에 다음 스터디 주제로 Kafka가 나와서 스터디가 시작되었다.

  1. 팀 토폴로지 - 빠른 업무 플로우를 만드는 조직 설계
  2. 리팩터링 2판 - 코드 구조를 체계적으로 개선하여 효율적인 리팩터링 구현하기
  3. 실전 카프카 개발부터 운영까지 - 데이터 플랫폼의 중추 아파치 카프카의 내부 동작과 개발, 운영, 보안의 모든 것

인프라 스터디는 멤버가 아주 좋아서 잡담에서도 배우는 게 많기 때문에 내년에도 할만한 주제를 고민해 봐야겠다. 점점 주제 고르기가 어려워지긴 한다.

팟캐스트

아는 사람은 알지만 44BITS 팟캐스트를 같이하고 있다. 친한 사람들이라 자주 나오는 게스트였는데 작년 말인가부터는 멤버로 같이 하게 되었다. 작년보다는 많이 모일 수 있게 되어 올해는 팟캐스트 녹음도 많이 했다. 44BITS는 너무 준비 없이 즉석에서 말하는 느낌이 좀 있지만 은근히 재밌어서 열심히 하고 있다. 다행히 들어주는 사람도 꽤 있다.

누구나 유튜버를 꿈꾸는 시대라 나도 수년간 유튜브 고민을 했지만, 전혀 하질 못했다. 최근에 개인적으로 팟캐스트를 하나 기획했다. 팟캐스트를 유튜브에도 같이 올리지 말라는 법은 없으니까... 난 유튜브보다는 팟캐스트란 매체를 훨씬 좋아하고 지금도 상당히 많이 듣고 있다. 대충의 기획안은 있고 주변 사람한테는 기회 될 때 조금씩 던져놔서 나쁘진 않을 것 같은데 과연 재미가 있을지는 나도 잘 모르겠다. 물론 준비해서 실제로 녹음해야 하는데여전히 못 하고 있다. 내년에는 할 수 있기를 기대해본다.



올해는 술을 정말 많이 마신 한해였다. 보통 건강한 편이라 건강 관리에 크게 신경 안쓰는 편인데 아직 아픈데는 없지만 그래도 관리를 해야겠다 생각한다. 내년에는 술도 좀 줄이고 운동을 좀 해야겠다. 코로나로 집에만 붙어있다가 지난 2년간 살이 너무 많이 쪘다.

다들 새해 복 많이 받으세요.

2022/12/30 18:53 2022/12/30 18:53