개발지식/오픈소스

1210 오픈소스 기여 절차

thinktank911 2025. 12. 10. 11:19

오픈소스 구성원 역할

  • 저작자 : 오픈 소스 프로젝트를 만든 사람 또는 조직
  • 메인테이너 : 프로젝트의 방향을 알고 있는/직접 설정한 프로젝트를 관리하는 컨트리뷰터
  • 커미터 : 컨트리뷰터가 컨트리뷰션을 하면 리뷰를 하는 컨트리뷰터
                  프로젝트에 반영할지 말지 결정 권한도 가지고 있는 컨트리뷰터
  • 컨트리뷰터 : 오픈 소스 프로젝트에 컨트리뷰션(기여) 활동을 하는 모든 사람
  • 사용자 : 오픈 소스 프로젝트를 사용하는 사람

컨트리뷰션 활동 유형

  • 오픈 소스 프로젝트 기여 : 코드에 한정되는 게 아니다.
  • 오타수정
  • 번역 : 내가 직접? 제안만 해도 컨트리뷰션
  • 문서 설명 덧붙임
  • 배너 문구 수정 제안
  • UI/UX 제안

ex> hubot, react

  • 버그 픽스 : 제안만 해도
  • 문서 작업
  • 기능 추가/수정/삭제
  • 리팩토링(ex. expired ⬅️ e)
  • 버전, 외부 모듈 바꾸는 게 어때?
  • 에러 메세지
  • 리소스
  • 테스트케이스 추가

 

컨트리뷰터 활동 이유

<오픈 소스 저작자>

  • 버그 찾아줄 듯
  • 사용하면서 불편했던 점, 개선할 코드 등등

<오픈 소스 사용자/컨트리뷰터>

  • 개발자들에게 리뷰를 받을 수 있다.
  • 내가 원하는 기능을 추가할 수 있고, 사용자 입장에서 코드 짜는 데도 편리
    • 객관적 평가
  • 코드 퀄리티 높일 수 있다. 코드를 보는 시선/관점/시야
  • 오픈소스 코드 분석 (= 코드 문해력) 길러진다.
  • 협업, 성취감

cf. 이력서, 포트폴리오

OSS

오픈 소스 소프트웨어

  • 소스 코드는 공개 + 라이선스 ➡️ 소프트웨어

cf. 공공기관 : 공개 소프트웨어

OSI : OSS 인증마크
OLIS /
https://www.oss.kr/

공개 소프트웨어 라이선스 문의
공개SW 사업 > 컨트리뷰션 아카데미

  • 멘토링 형태

 

컨트리뷰터 주의 사항

협업 주의 사항 ➡️ 공유

커뮤니케이션 : 태도, 자세, 말투 ➡️ 겸손
소스 코드 충돌

  • 컨트리뷰트 하고 싶은 내용을 이미 구현하고 있진 않은지, 구현하지 않기로 결정한 건 아닌지
  • 오래된 open 이슈 (ex. hubot 한국어 번역)
    • 디스커션이나 커뮤니티 문의
    • 오래된 이슈, 작업 안하는 이슈 정리도 일종의 컨트리뷰션
  • 시작하기 전에 내가 작업을 시작할 것을 알리기(=이슈 오픈, discussion...)
    새롭고, 큰 중요한 기능 추가하고 싶을 때
  • 의견 묻기
  • 내부적 팀원 모집

Pull Request 던질 때

  • 템플릿(틀)이나 문서를 확인하면서 준수할 내용 (테스트 유무, 컨벤션 등등) 체크

언어 장벽

오픈소스 예시

  • pytorch-tutorial
  • vim-plug
  • fzf

영어는 기본문법만, 겁먹지 않기

컨트리뷰트 절차

ex. cloud-barista

 

contributin 문서 / 가이드

  1. 오픈 소스 프로젝트를 fork
  2. 내 계정 - 레포지토리 Clone ➡️ 내 로컬



  3. 코드 컨벤션, 커밋 메세지, 코드 구현 전에 체크해야 하는 규칙
  4. 코드 구현, 수정 / 주석 수정
  5. 내 계정 깃허브 레포지토리(clone) 로 push
  6. 저작자 계정 pull request

  1. 컨트리뷰터 라이센스 동의 서명
  2. 리뷰어, 커미터, 메인테이너, 저작자 ... 검토해줄 사람
  • 검토 생략하고 바로 머지되는 경우도 있다
  1. 머지 = Pull Request Closed 알림
  2. 컨트리뷰터 리스트에 내 계정이 추가될 것!