오픈소스 기여, 첫걸음을 뗀 개발자의 생생한 후기 및 가이드

🤖 AI 추천

오픈소스 프로젝트에 기여하고 싶지만 어디서부터 시작해야 할지 막막한 프론트엔드 및 백엔드 개발자, 특히 주니어 개발자에게 추천합니다. 오픈소스 기여의 전반적인 과정, 오픈소스 선택 방법, 코드 분석 및 PR 작성 방법 등 실질적인 경험을 공유하여 큰 도움이 될 것입니다.

🔖 주요 키워드

오픈소스 기여, 첫걸음을 뗀 개발자의 생생한 후기 및 가이드

핵심 기술: 이 글은 오픈소스 프로젝트에 기여하기 위한 전 과정을 생생한 경험담과 함께 상세하게 안내합니다. 특히, 오픈소스 선택부터 시작하여 'good first issue' 활용법, 코드 분석을 통한 버그 원인 파악, git blame과 같은 유용한 개발 도구 활용, 그리고 PR(Pull Request) 작성 및 머지(merge)까지 개발자가 알아야 할 실질적인 방법론을 제공합니다.

기술적 세부사항:

  • 오픈소스 기여 동기: 동료들의 일상적인 오픈소스 기여 모습과 거대한 코드베이스 이해 훈련의 필요성을 계기로 기여를 결심.
  • 오픈소스 프로젝트 선택: 처음에는 사용 경험이 있는 mcp-go를 검토했으나 감을 잡지 못함. 이후 'good first issue' 라벨이 붙은 이슈를 탐색하며 docs 폴더의 아이콘 깨짐 문제를 해결하려 했으나 다른 기여자에 의해 먼저 해결됨.
  • es-hangul 프로젝트 선택: 지인의 추천으로 토스 오픈소스 프로젝트인 es-hangul에 집중. 고등학교 국어 공부를 연상시키는 테스트 케이스에 흥미를 느낌.
  • 기여 지점 탐색 및 버그 발견: 처음에는 코드 개선점을 찾기 어려웠으나, es-hangul 소개 문서에서 표가 제대로 표시되지 않는 문제를 발견함.
  • 버그 원인 분석: VS Code의 git blame extension을 활용하여 문제가 발생한 코드 라인의 변경 이력을 추적. docs: es-hangul의 신뢰성을 나타낼 수 있는 문서를 만듭니다 #302 PR을 통해 이전에는 표가 정상적으로 출력되었음을 확인.
  • coverage-summary.json 분석: yarn test 실행 시 생성되는 coverage-summary.json 파일의 구조를 파악하고, isValidFilePath 함수의 정규식(//src/[^/]+/[^/]+(?<!..+).ts$/)이 src 아래 3-depth 이상의 경로를 허용하지 않아 발생하는 문제임을 규명. 과거 코드베이스 분석을 통해 당시에는 2-depth였으나, 이후 변경으로 인해 3-depth가 되어 문제가 발생했음을 확인.
  • 오픈소스 기여 워크플로우: 팀 프로젝트와 달리 오픈소스는 fork 후 작업하고 원본 레포에 PR을 날리는 방식으로 진행됨 (upstream vs origin 개념 설명).
  • PR 작성 및 머지: 문제 상황, 원인, 해결 방법, 결과를 명확하고 간결하게 작성하고 UI 버그 수정을 위해 이미지/동영상을 첨부하여 이해도를 높임. shottr과 같은 편리한 스크린샷 도구 활용을 추천.
  • 결과 및 향후 계획: 성공적으로 PR이 머지되었고 컨트리뷰터 배지를 획득. OSSCA 프로그램 참여를 통해 더 깊이 있는 오픈소스 기여를 희망.

개발 임팩트: 오픈소스 프로젝트에 직접 기여하는 경험을 통해 코드 베이스 이해도를 높이고, 다양한 개발자의 코드를 학습하며 실력 향상을 도모할 수 있습니다. 또한, Git 워크플로우 숙달 및 커뮤니케이션 능력을 향상시키는 데에도 큰 도움이 됩니다. 컨트리뷰터로서의 성취감 또한 얻을 수 있습니다.

커뮤니티 반응: 원문에서는 동료 개발자들이 오픈소스에 일상적으로 기여하는 모습에서 영감을 받았다는 내용이 강조됩니다.

📚 관련 자료