개발지식/오픈소스
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 문서 / 가이드
- 오픈 소스 프로젝트를 fork
- 내 계정 - 레포지토리 Clone ➡️ 내 로컬

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

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