개발자에서 기여자로: 기술 블로그와 오픈소스가 바꾼 나의 2025년 상반기

조회수 ...

들어가며

2025년 상반기를 돌아보니, 가장 크게 변화한 것은 "나만 알고 있던 지식을 세상과 나누기 시작 했다"는 점이다. 그동안 개발자로서 쌓아온 경험들과 고민을 글로 정리하고, 오픈소스에 기여 하면서 진정한 의미의 성장을 경험한 상반기였다.


🌟 기술 블로그: 지식 공유의 시작

2024년 12월 23일, 한 해를 마무리하며 회고글을 작성했다. 평소 활발히 소통하던 개발자 커뮤니티에 공유했을 때, 예상치 못한 피드백을 받았다.

"평소 기술 관련 답변을 잘 해주시는데, 회고에는 기술적인 내용이 하나도 없네요."

이 한마디가 내게 새로운 방향을 제시했다. 그 자리에서 바로 결심했다. "그래, 기술 블로그로 내 경험과 지식을 글로 남겨보자!"

첫 글의 용기와 성공적인 반응

회고글을 바탕으로 작성할 주제를 뽑아보니 대략 14개 정도 나왔다. 한 달에 1~2개씩 작성하면 일 년을 채울 수 있겠다고 생각했다.

첫 글로는 내가 많이 고민했고 프로젝트에 성공적으로 적용한 아키텍처 도입 이야기를 선택했다. 내용에 대한 고민도 있었지만, 가장 큰 고민은 "내가 이런 글을 쓰고 공유해도 될까?" 였다.

하지만 완성 후 커뮤니티에 공유한 결과는 예상을 뛰어넘었다. 발간 후 일주일 만에 500회 조회수를 기록했고, 현재는 1,500회를 돌파했다. 첫 글의 좋은 반응 덕분에 '나라는 개발자가 이런 생각으로 개발한다'는 것을 알릴 수 있어 뿌듯했고, 자신감을 얻어 계속 글을 쓰게 되었다.

글쓰기 모임과 발표 경험

더 나은 글을 쓰고 싶어 글쓰기 모임에도 가입했다. 내 글에 대한 리뷰를 받고 싶은 마음도 있었고, 모임이 발표로 마무리되는 것도 매우 마음에 들었다. 실제로 Panda CSS 사용기를 주제로 발표했는데, 질의응답 시간에서 놀라운 경험을 했다.

"Panda CSS에서 조건문 사용이 힘들다고 하셨는데, 그럼 그걸 사용해야 할 때 어떻게 해야 하나요?"
"다른 디자인 시스템에는 어떻게 자연스럽게 적용이 가능한가요?"

10건 이상의 질문과 답변을 주고받으며 사람들이 무엇을 궁금해하는지, 요즘 트렌드는 어떤 것인지 알게 되었다. 정말 소중한 경험이었다.

질문에서 시작된 시리즈 글

또 다른 의미 있는 경험은 누군가의 질문을 글로 작성한 것이다.

"에러 바운더리에서는 비동기 에러를 못 잡지 않나요?"

이 한마디에 바로 JavaScript 에러 핸들링에 대한 시리즈를 작성했다. JavaScript → React → Next.js 순서로 작성하고 테스트 코드까지 작성해 올렸다. 이제는 누군가 비슷한 질문을 하면 이 시리즈 링크를 공유하고 있다.

지속적인 성장과 새로운 시리즈

14개의 주제를 4월 3일까지 다 작성해버린 후, 새로운 주제를 찾기 시작했다. 마침 첫 번째 오픈소스 기여를 하게 되어, 기여의 기쁨과 함께 새로운 글 주제를 찾은 것에 더욱 기뻤다.

최근에는 첫 글로 썼던 아키텍처 이야기를 더 이해하기 쉽게 하기 위해 [Typescript로 설계하는 프로젝트] 시리즈를 시작했다. 이전과 달리 글이 잘 정돈되어 있고, 독자들이 공감할 수 있는 예시와 상황을 제시해서 개인적으로 매우 만족스러운 시리즈다. 커뮤니티에 공개할 때마다 받는 질문들을 통해 실시간으로 소통하며 내 경험치도 올라가는 것 같아 기쁘게 받아들이고 있다.

6개월간의 블로그 운영을 통해 얻은 성과도 나름 의미가 있다.

현재 블로그 현황 (2025년 6월 23일 기준)

  • 월 평균 조회수: 약 1,800회
  • 총 조회수: 약 11,000회
  • 총 게시글: 20+개

미래의 목표

글쓰기를 통해 "내 지식을 공유하고, 나라는 개발자가 이런 고민을 하며 개발한다" 는 것을 세상에 알릴 수 있는 좋은 수단이라는 걸 깨달았다. 기회가 된다면 오프라인의 더 큰 무대에서 발표하며 다른 개발자들과 질문과 답변을 주고받는 소통을 해보고 싶다. 이는 올해 목표 중 하나이기도 하다.

🚀 오픈소스 기여: 세상과 연결되는 경험

4월부터 시작한 **오픈소스 기여**는 예상하지 못한 즐거움이었다.

첫 번째 기여: Mantine에서 시작한 여정

기여를 하고 난 후 릴리스까지 되는 걸 보니, 내가 쓴 코드가 다른 프로젝트에 설치된다고 생각하니 가슴이 뛰고 즐거웠다.

Mantine의 maintainer가 적극적으로 내 PR을 검토해주고 승인을 자주 해주니 더욱 신나서 계속 PR을 올렸다. 현재까지 약 15회 정도 PR 승인을 받았고, 추가 기능 구현도 5회 정도 했다. 특히 디스코드에서 maintainer가 기능 구현을 요청할 때마다 적극적으로 나서서 거의 다 담당했다.

이 과정에서 직접 공식 문서를 작성해보는 경험도 할 수 있어 매우 가치진 경험이었다.

React Hook Form 도전

첫 도전에서는 maintainer의 이슈 할당까지 받았지만, 이슈를 보기 시작한 지 이틀 만에 maintainer가 직접 고쳐버렸다. 조금 아쉽지만 포기하지 않고 다른 이슈를 찾기 시작했다.

그래서 찾은 게 바로 reset 기능의 버그였다. defaultValue가 설정된 상황에서 reset을 두 번 호출해야 초기화가 되는 명백한 버그였다.

하지만 reset 기능을 하는 함수에는 아무 이상이 없어 보였다. 혹시나 지난번에 내가 할당받은 이슈와 연관이 있는 건 아닌가 생각이 들었다. 그 이슈는 useWatch 부분이었고, 이 부분은 최근에 maintainer가 신기능을 만들면서 수정한 부분이었기 때문이다.

실제로 예전 코드로 되돌리니 버그가 해결되었고, 테스트 코드도 전부 정상 작동했다.

오픈소스를 통해 배운 것들

이런 과정에서 정말 많은 것을 배웠다:

  1. 대규모 프로젝트 탐색 방법: 거대하고 오래된 프로젝트에서 내가 수정하고자 하는 부분을 정확히 찾아가는 방법을 익혔다.

  2. 문제 해결 방법론: 이슈, PR, Git 히스토리를 종합적으로 분석해 문제의 근본 원인을 찾아가는 방법을 배웠다.

  3. 컴포넌트 설계 능력: 프로젝트 구조를 설계하듯이 컴포넌트를 설계하고 구현하는 방법을 체득했다.

  4. 모노레포 환경 구축: 디자인 시스템을 위한 모노레포 환경을 처음부터 설정하는 경험을 했다.

  5. 디버깅 환경 구축: Jest, Storybook, E2E 테스트 환경을 설정하고, 문제 재현을 위해 테스트 코드부터 작성하는 습관을 기렀다.

Next.js에서의 새로운 도전

최근에는 Next.js에 PR을 올렸는데, 여기는 디버깅을 위한 이슈 재현 환경 구축이 상당히 까다로웠다. 승인이 된다면 정말 기쁠 것 같고, 이 경험들을 정리해서 블로그에 써보려고 한다.

미래의 목표

오픈소스를 통해 정말 많은 것을 배웠고, 내 코드가 세상과 연결되는 경험을 하게 되었다. 누군가 조금이라도 관심을 보인다면 적극적으로 추천한다. 본인이 자주 사용하는 라이브러리에 기여해보라고, 혹시 실패하더라도 배우는 게 정말 많다고 이야기하고 다닌다.

하반기 목표

배운게 참 많은 상반기였고 하반기에는 이렇개 배운 것들을 기반으로 하여 회사 프로젝트에도 적용해볼 생각이다.
특히 디자인 시스템을 배포 할 일이 있있을 듯 한대.
이때 써먹어볼 생각이다.