2024년의 도전들

2024년의 도전들
Photo by Samsung Memory / Unsplash
💡
저의 논스에서의 성장 보고서이자, 2024년 2분기 회고를 하기 전에 도전이라는 키워드를 중심으로 짧은 글을 작성합니다.

2024년은 지난 상반기 회고에서도 밝혔듯, 개인적으로 도전하는 한 해였습니다. 커리어를 전환하며 새로운 개발을 시작했고, 메인넷 출시를 위해 여러 프로젝트에서 많은 커밋들을 하고 있습니다. 커리어뿐만 아니라 지금 이 글을 호스팅하는 개인 블로그를 개설했고, 오픈소스 기여에 재미를 붙여 본격적으로 GitHub 곳곳에 깃발을 꽂는 중입니다. 12월 말 정도에 본격적인 회고를 진행하기 전에 생각 정리할겸 간단한 회고(Bullet Point 위주)를 진행합니다.

도전 1. 코어 개발 시작하기

  • 블록체인 메인넷을 만드는 Superblock에서 프로토콜 엔지니어(Protocol Engineer)로 일을 시작한지 9개월 정도 되었습니다. 흔히 코어 개발이라고 말하는 블록체인 노드 클라이언트 개발과 더불어, 안정적이고 성공적인 메인넷 운영에 필요한 모든 프로젝트에 대한 관리를 하는 직무입니다.
  • 저는 블록체인을 좋아하게 된 이후부터 항상 이 시스템이 어떻게 구성되어 있고, 돌아가는지에 대한 호기심이 있었습니다. 이러한 호기심을 올해 직접 도전하면서 풀 수 있었습니다.
  • 특히 오버 프로토콜의 합의 클라이언트(consensus client)인 Chronos를 주로 담당하며, 다음과 같은 경험들을 할 수 있었습니다.
    • Bazel을 기반으로 한 Go 프로젝트에 대한 온보딩 및 핵심 기여
    • PoS (Gasper) 구현체에 대한 디버깅
    • 오픈소스화 및 GitHub Action을 이용해 CI/CD 파이프라인 구축 (GitHub PRs)
      • Bazel 빌드를 위한 Remote Cache Server 도입
    • Rust 🦀를 이용한 간단한 코드 서명용 웹서버 (with Github Webhook)
  • 2023년, 1년 간 프론트엔드 개발자로서 2~3개의 메인 프로젝트를 담당했다면 프로토콜 엔지니어로서 한 개의 메인 프로젝트와 그외에 많은 프로젝트들을 관리하고 있습니다. 간단히 나열해보면...
    • Explorer for EL(Execution Layer) & CL(Consensus Layer), staking-deposit-cli, 체크포인트 싱크용 GCP Cloud Run...

도전 2. 오픈소스 돌아다니기

fix(tests): Correct misleading variable names and expressions in test files by syjn99 · Pull Request #14292 · prysmaticlabs/prysm
What type of PR is this? Other What does this PR do? Why is it needed? Fixed some misleading names and expressions in test files Which issues(s) does this PR fix? N/A Other notes for review This do…
  • 지난 8월, 간단한 커밋을 Prysm에 머지하면서 오픈소스 기여에 재미를 붙이기 시작했습니다. 이더리움 생태계에 대부분의 프로젝트는 오픈소스로 관리가 되고 있는데, 개발자로써 이 생태계에 조금이라도 기여할 수 있는 기회가 있다는 것은 매우 흥미롭습니다.
  • 프로젝트의 Maintainer와 소통하는 것도 재밌습니다. 최근에 다녀온 Devcon(Devcon 후기 바로가기)에서 GitHub 안에서만 보던 사람들을 실제로 보니 신기했습니다.
  • 저는 블록체인 코어 개발을 좋아하고 잘하고 싶어서, 주로 이더리움 클라이언트들(Prysm, Reth, Lighthouse)에 기여를 지속적으로 하고 있습니다. (작업 리스트는 간단하게 About 페이지에 넣어두었습니다.)
    • 2024년 8월부터 약 4개월 동안 이더리움 프로젝트들에 15개 이상의 PR을 작업했습니다.
  • 특히 Reth에 기여하는 경험은 다른 프로젝트와 달랐습니다. Reth는 오픈소스 정신을 매우 강조하는 프로젝트입니다. 이슈 관리가 매우 잘 되고(그만큼 Maintainer들의 시간을 엄청 투자하는 것 같습니다) 이 이슈에 대한 할당도 오픈되면 금방 다른 개발자가 가져갑니다. Rust 🦀 공부를 틈틈이 하고 있는 중이라, Reth에 기여를 하면서 실전에서 Rust를 활용하는 방법을 배우고 있습니다.
  • 오픈소스 기여를 하고 나면 나름 자랑(?)을 하고 싶은데, Orakle의 오픈소스 팀 텔레그램에 종종 나타나 링크를 던지고 사라지곤 합니다.

도전 3. 블로그 시작하기

  • 이 글은 Ghost라는 플랫폼을 통해 퍼블리싱을 하고 있습니다. 개인 블로그에 대한 갈망은 항상 있었는데, 더 늦기 전에 도전적으로 얼른 열었습니다.
  • Ghost를 통해 SaaS 형태로 블로그를 만들 수도 있고, 릴리즈된 버전을 통해 클라우드에 서비스를 올릴 수도 있습니다. 나름 개발자로서 직접 클라우드에 올리는 것도 좋은 경험이 될 것 같아, Digital Ocean에 작은 인스턴스를 하나 빌려서 호스팅 중입니다.
  • SEO나 이런 것들은 알아서 신경 써주는 것 같은데, 가장 중요한 조회수 관리가 잘 안 되어 Google Analytics를 붙였습니다.
  • 블로그 컨셉은 아직도 찾아가는 중입니다. 원래 하고 있었던 회고록과 더불어 이더리움 코어 개발에 대한 여러가지 이야기를 늘어놓을 생각입니다.
  • 또한 대부분의 글을 영어로 포스팅을 하려고 합니다. 저는 Web3의 가장 큰 장점이 물리적 위치의 제한이 없다는 것이라고 생각합니다.
  • Ghost 블로그에는 구독이라는 좋은 기능이 있더군요. 아래 이메일을 입력하면 간단하게 구독할 수 있습니다. 🤩