[Week14] Code contributor: 오픈소스 프로젝트 활용 (3)

Younha Lee·2026년 4월 12일

TIL

목록 보기
65/70

지난 시간에는 깃허브에서 오픈 소스를 다루는 방식에 대해 알아보았어요. 이번 시간에는 오픈 소스 생태계의 구성원과 프로젝트에 기여하는 컨트리뷰션(Contribution)의 전반적인 내용을 살펴볼게요.

오픈 소스 프로젝트 구성원

오픈 소스 프로젝트를 이끌고 참여하는 사람들은 역할에 따라 크게 다섯 가지로 구분할 수 있어요.

  • 저작자: 프로젝트를 처음 만들고 코드를 공개한 사람이에요.
  • 메인테이너: 프로젝트의 방향성을 잡고 유지 및 관리하는 컨트리뷰터예요. 프로젝트 규모에 따라 메인테이너가 따로 없을 수도 있어요.
  • 커미터: 제출된 코드나 PR 을 리뷰하고 프로젝트에 실제 반영할지 결정하는 권한을 가진 컨트리뷰터예요.
  • 컨트리뷰터: 프로젝트에 어떤 방식으로든 기여 활동을 하는 모든 사람을 의미해요.
  • 사용자: 해당 오픈 소스를 사용하는 사람들이에요.

컨트리뷰션 활동의 종류

컨트리뷰터들이 오픈 소스에 기여하는 방식은 매우 다양해요. 단순히 코드를 작성하는 것 외에도 많은 활동이 포함돼요.

  • 버그 수정 및 기능 추가, 수정, 삭제
  • 코드 리팩토링 및 리소스 사용 효율 향상
  • 버전 및 의존성 업데이트
  • 테스트 케이스 추가
  • 문서 작성, 오타 수정, 번역, 에러 메시지 향상
  • UI/UX 개선 제안 및 배너 문구 수정

이처럼 코드를 직접 수정하지 않고 이슈를 통해 개선 사항을 제안하는 것만으로도 훌륭한 기여 활동으로 인정받을 수 있어요. 리액트 같은 대형 프로젝트들도 공식 문서를 통해 어떻게 기여할 수 있는지 상세한 가이드를 제공하고 있어요.

컨트리뷰션의 장점

오픈 소스 기여는 프로젝트 저작자와 참여자 모두에게 긍정적인 영향을 줘요.

저작자 입장에서는 수많은 컨트리뷰터들이 버그를 대신 찾아주고, 다양한 환경과 관점에서 개선 사항을 제안해 주기 때문에 프로젝트의 품질을 크게 높일 수 있어요.

사용자 및 참여자 입장에서는 내가 필요한 기능을 직접 추가해 볼 수 있고, 전 세계의 훌륭한 개발자들로부터 코드 리뷰와 피드백을 받을 수 있어요. 이 과정을 통해 다른 사람의 코드를 분석하는 시야가 넓어지고 본인의 코드 퀄리티도 자연스럽게 향상돼요. 무엇보다 협업 경험과 기여에 대한 성취감을 얻을 수 있다는 것이 가장 큰 장점이에요.

컨트리뷰션 진행 시 주의 사항

오픈 소스 프로젝트에 기여하기 전에 반드시 확인해야 할 몇 가지 주의 사항이 있어요.

  • 커뮤니케이션: 다양한 문화와 배경을 가진 사람들이 텍스트로 소통하는 공간이므로 상호 존중하는 태도가 필요해요.
  • 소스 코드 충돌 방지: 내가 작업하려는 내용이 이미 다른 사람에 의해 진행 중인지, 혹은 프로젝트 방향성과 맞지 않아 반려되었던 건인지 이슈나 디스커션을 통해 미리 확인해야 해요.
  • 사전 질문: 기능을 본격적으로 개발하기 전에, 해당 기능이 프로젝트에 정말 필요한지 메인테이너에게 먼저 물어보고 방향성을 맞추는 것이 좋아요.
  • 템플릿 확인: 해당 프로젝트에서 요구하는 이슈나 PR 템플릿이 있다면 규격에 맞게 작성해야 해요.

컨트리뷰트 절차

일반적으로 깃허브를 통한 컨트리뷰션은 다음과 같은 순서로 진행돼요.

  1. Fork : 원본 오픈 소스 레포지토리를 내 개인 계정으로 복제해요.
  2. Clone : 복제된 내 레포지토리를 로컬 컴퓨터로 다운로드해요.
  3. 커밋 규칙 확인: 코드를 작성하기 전, 해당 프로젝트의 커밋 컨벤션이나 코드 스타일 가이드를 확인해요.
  4. 구현: 규칙에 맞추어 실제 코드나 문서를 수정해요.
  5. PushPull Request : 로컬에서 작업한 내용을 내 레포지토리로 푸시한 뒤, 원본 프로젝트로 PR 을 생성하여 반영을 요청해요.
  6. Contributor License Agreement (CLA): 기여한 코드에 대한 권리 및 라이선스 동의 절차를 진행해요.
  7. Review: 메인테이너나 커미터 등 기존 기여자들에게 코드를 리뷰받고 필요한 경우 수정해요.
  8. Merge: 코드가 최종적으로 원본 프로젝트에 병합되고, 컨트리뷰터 리스트에 내 계정이 추가돼요.
profile
할 땐 하고 놀 땐 노는 일일놀놀입니다.

0개의 댓글