2024 상반기 회고
정신 없이 지내다보니 벌써 반년이 지났습니다. 작년에 총 두 번의 회고(2023년 상반기 회고 & 하반기 목표/계획 , 2023년 하반기 회고 & 2024년 목표/계획 )를 진행했는데, 올해도 다시 돌아왔습니다. 회고 주기는 6개월이 적당하다고 생각했는데, 점차 일이 복잡해지면서 꾸준히 기록하지 않으면 휘발성이 높아지는 것 같아요. 다음엔 분기별 회고로 돌아오도록 하겠습니다. 😄
새롭게 시작하는 커리어 🆕
2023년 1년 동안 몰입하던 프론트엔드 개발을 잠시 멈추고, 올해 4월부터 프로토콜 엔지니어(Protocol Engineer)로 새로운 커리어를 시작했습니다. 제 개인적인 욕심이 있었기도 했고, 회사에서 다행히도 직무 변경에 대한 배려를 해주셔서 수월하게 온보딩을 막 끝낸 시점입니다.
프로토콜 풀에 합류하고 나서는 블록체인 메인넷이라는 큰 틀 안에서 다양한 개발들을 하고 있습니다. 여기서 다양한 개발이라고 하면, 코어 레벨에서의 개발뿐만 아니라 메인넷을 서포트하기 위한 다양한 툴들의 개발 등을 포함합니다. 블록체인 노드 운영을 위한 클라우드와, 모니터링을 위한 인프라를 같이 다루기도 합니다. 엔지니어링의 범위가 넓다보니, 어떻게 나만의 엣지를 찾아가야 할지에 대한 고민도 하고 있습니다.
직무 전환을 하면서 처음 마주한 어려움은 현재 프로젝트의 코드를 파악하는 것이었습니다. 주로 Go로 구현된 컨센서스 클라이언트 코드를 보면서 디버깅을 진행했는데, 기존 프로젝트가 워낙 거대한 프로젝트였다보니 아키텍처 파악에만 시간이 좀 오래 걸렸습니다. 디버거 세팅을 해두고 콜 스택을 쭉 따라가보기도 하고, 특정 주제를 잡아서 노션에 코드에 대한 설명과 흐름을 적어두면서 익숙해지려고 노력했습니다. “블록은 어떻게 전달 받아서 어떻게 처리될까?”와 같이 가장 기본적인 개념들도 구현 레벨에서 처음 접하다보니 깊고 깊은 코드의 바다에서 헤메기 일쑤였습니다. 개인적으로 노션이든 그림이든 정리를 하면서 봐야 좀 와닿는 타입이라서, 노션에 코드를 복사해두고 한줄한줄 보면서 분석했던 기억이 납니다.
또다른 어려운 점은 클라우드 & 인프라였습니다. 작년에 웹 개발을 해보면서, 웹 앱 배포를 위해 AWS와 Github Action을 써본 것이 전부라 새롭게 듣는 개념이 많았습니다. 사내 개발이 클라우드에 의존하는 경우가 왕왕 있어서, 클라우드와 친해지는 것이 필요했습니다. 이미 Terraform & Ansible 세팅이 잘 되어 있어서, 제가 직접 그 부분을 건드리는 일은 많지 않긴 했지만 잘 모른 채로 스크립트를 실행하는 것이 스스로 불편하게 느껴졌습니다. 도커/쿠버네티스 개념도 얼추 들어보기만 했지, 제대로 다뤄본 적이 없어서 강의를 들으면서 익숙해지는 중입니다. (Docker & Kubernetes Notes )
요즘 관심을 두는 것 🤔
PoS 컨센서스 구현 개선하기
합의 알고리즘은 제가 블록체인에 관심을 가지게 된 계기 중 하나입니다. 작년 한해 동안은 PoS 블록체인의 핵심인 스테이킹을 프로덕트 레벨에서 풀어나갔는데(OverNode), 이를 개발하다보니 현재 저희가 참고하고 있는 이더리움의 컨센서스 방식은 유저 레벨에서 불편한 점이 많다는 것을 몸소 느꼈습니다. (이더리움은 PoW에서 PoS로 전환하는 과정에서 클라이언트의 복잡성이 늘어났고, 이로 인해 굉장히 불편하고 오래 걸리는 스테이킹 과정이 탄생했습니다.) UX/UI를 통해 스테이킹 과정을 충분히 개선했지만, 프로토콜 레벨에서의 개선이 있으면 더 나은 UX가 나올 수 있을 것으로 예상됩니다. 팀에서도 이에 대한 연구를 계속 진행하면서 업그레이드를 준비 중에 있습니다.
모니터링 시스템과 도구
메인넷 운영을 시작하게 되면, 메인넷의 현 상태를 빠르게 파악하기 위해 모니터링 시스템이 필요합니다. 이미 Prometheus + Grafana 조합으로 몇 가지 시스템이 붙어있는 상황입니다.
UI 개발을 했던 경험 때문에, 블록체인을 시각화하는 툴들에 관심이 많이 갑니다. 그리고 이미 이 부분에 대해 이더리움의 개발자들은 고민을 많이 한 것 같습니다.
ethPandaOps는 이더리움의 DevOps를 담당하는 팀입니다. 위 영상에서 ethPandaOps의 Parithosh라는 개발자가 팀이 쓰고 있는 테스팅/모니터링 툴들을 소개하는데, 몇가지 툴들은 직접 도입해봐도 괜찮겠다는 생각이 들었습니다. 이미 가벼운 비콘 체인 익스플로러 Dora는 우리 체인 스펙에 맞춰 시범 도입을 해두었고, 다른 툴들도 조사하고 있습니다. Dora는 디버깅을 하거나 특정 상태를 다른 팀원들에게 공유하고 싶을 때 유용하게 쓰이고 있습니다.
클라우드 & 인프라
전체적으로 클라우드에 대해 톺아보고 싶어, 시중에 자료가 많은 AWS Solution Architect Associate 자격증을 준비하고 있습니다. (AWS SAA-C03 도전기 ) 호기롭게 6월 중에 유데미 강의를 다 듣는 것을 목표로 했는데, 일들이 겹치면서 많이 진행을 못했네요. 😭 8월에는 시험을 응시하는 것이 목표입니다.
위에서 언급한 모니터링 시스템에서 쿠버네티스를 주로 활용하는 것 같아, 이 역시 학습 대상입니다.
Miscellaneous 🗂️
- 논스 2차 장학생에 선정되어, 3월부터 논스에 거주하게 되었습니다 🤩
- Missing Semester를 회사 동료분들과 함께 완강했습니다. 특히 많은 CLI 툴들을 처음 알게 되었는데, 실무에서 엄청 많이 쓰고 있습니다 😮
- 일주일에 두번 아침마다 수영을 가고 있습니다. 접영 동작을 따라하는 정도까진 왔습니다. 피곤하단 핑계로 자주 안 가곤 했었는데(이번주도 못 갔네요 😭)… 힘들게 어떻게든 가면 또 재밌긴 합니다. 하반기에는 결석 일수를 줄여보는 것으로…