
이번 시간에는 오픈 소스 기여를 처음 경험해보는 사람들을 위해 만들어진 first-contributions 프로젝트를 통해 기여 실습을 진행하고, 실제로 기여할 오픈 소스 프로젝트를 탐색하는 방법까지 정리했습니다.
오픈 소스 기여가 좋다는 것은 알지만, 막상 어디서부터 시작해야 할지 막막한 경우가 많습니다. 이번 시간에는 그 첫걸음을 낮은 허들로 경험해볼 수 있는 first-contributions 프로젝트를 활용해 기여의 전체 흐름을 직접 익혀보았습니다.
first-contributions 는 오픈 소스 기여를 처음 시작하는 사람들이 실제 기여 과정을 안전하게 연습할 수 있도록 만들어진 프로젝트입니다.
first-contributions 를 검색하면 찾을 수 있습니다.기여 내용은 간단합니다. Contributors.md 파일에 자신의 이름을 추가하는 것입니다. 내용 자체는 단순하지만, Fork → Clone → 브랜치 생성 → 수정 → PR 제출이라는 기여의 전체 흐름을 처음부터 끝까지 직접 경험할 수 있다는 점에서 매우 유익합니다.
본격적인 실습 전에 프로젝트의 README.md 와 기여 가이드를 먼저 확인합니다.
확인한 주요 내용입니다.
Contributors.md 에 이름을 추가합니다.add-이름 형식으로 브랜치를 생성합니다.Add 이름 to Contributors list 형식으로 작성합니다.가이드라인만 잘 따라도 기여가 반려될 확률이 크게 줄어들기 때문에 반드시 먼저 읽고 시작하는 습관을 들이는 것이 중요합니다.
가이드라인을 확인한 뒤 실제 기여를 진행했습니다.
# 1. 원본 레포지토리를 내 계정으로 Fork합니다 (깃허브 UI에서 진행)
# 2. Fork한 레포지토리를 로컬로 Clone합니다
git clone https://github.com/내계정/first-contributions.git
# 3. 작업 브랜치를 생성합니다
git checkout -b add-내이름
# 4. Contributors.md 파일에 내 이름을 추가합니다
# 5. 변경 사항을 커밋합니다
git add Contributors.md
git commit -m "Add 내이름 to Contributors list"
# 6. Fork한 레포지토리로 Push합니다
git push origin add-내이름
Push가 완료되면 깃허브에서 자동으로 PR 생성 버튼이 나타납니다. 버튼을 클릭해 원본 레포지토리로 PR을 제출하면 첫 번째 기여가 완료됩니다.
v1에서 기본적인 흐름을 익혔다면, v2에서는 원본 레포지토리에 업데이트가 생겼을 때 내 Fork를 최신 상태로 동기화하는 방법도 함께 실습했습니다.
# 원본 레포지토리를 upstream으로 등록합니다
git remote add upstream https://github.com/firstcontributions/first-contributions.git
# upstream의 최신 변경 사항을 가져옵니다
git fetch upstream
# 내 main 브랜치에 upstream 변경 사항을 병합합니다
git checkout main
git merge upstream/main
원본 프로젝트는 계속해서 업데이트되기 때문에 기여하기 전에 항상 최신 상태로 동기화하는 것이 충돌(conflict)을 방지하는 좋은 습관입니다.
first-contributions 실습을 마친 뒤, 실제로 기여할 수 있는 오픈 소스 프로젝트를 탐색하는 방법을 배웠습니다.
깃허브의 Explore 와 Topics 기능을 활용하면 관심 분야의 오픈 소스 프로젝트를 쉽게 찾을 수 있습니다. 특히 다음과 같은 검색 필터가 유용합니다.
| 필터 | 설명 |
|---|---|
good first issue | 입문자가 기여하기 좋은 난이도의 이슈입니다 |
help wanted | 메인테이너가 외부 도움을 원하는 이슈입니다 |
bug | 버그 수정 관련 이슈입니다 |
documentation | 문서 작성·수정 관련 이슈로 진입 장벽이 낮습니다 |
깃허브 외에도 오픈 소스 프로젝트를 찾는 데 도움이 되는 서비스들이 있습니다.
good first issue 로 태그된 이슈만 모아서 보여주는 사이트입니다.단순히 이슈가 있다고 해서 무조건 좋은 기여 대상인 것은 아닙니다. 프로젝트를 선택할 때는 다음 사항을 먼저 확인하는 것이 좋습니다.
탐색한 오픈 소스 프로젝트를 대상으로 실제 기여를 진행했습니다.
실습에서 겪은 전체 흐름을 정리하면 다음과 같습니다.
1. 기여할 이슈를 찾고 담당하겠다는 의사를 댓글로 표현합니다
2. 프로젝트를 Fork하고 로컬에 Clone합니다
3. 이슈에 맞는 브랜치를 생성하고 작업을 진행합니다
4. 커밋 컨벤션에 맞게 커밋 메시지를 작성합니다
5. Fork한 레포지토리로 Push하고 원본에 PR을 제출합니다
6. 메인테이너의 리뷰를 기다리고 요청 사항이 있으면 반영합니다
7. 최종 Merge가 되면 기여 완료입니다
처음에는 낯설고 긴장되는 과정이었지만, first-contributions에서 흐름을 익혀두었기 때문에 실제 프로젝트에서도 단계별로 침착하게 진행할 수 있었습니다.