데브코스

컨트리뷰션(Contribution)

hxx_1 2024. 11. 28. 22:16

오픈 소스 구성원 역할

- 저작자

: 오픈 소스 프로젝트를 만든 사람 또는 조직

 

- 메인테이너

: 프로젝트의 방향을 알고 있는 / 직접 설정한 프로젝트를 관리하는 사람

 

- 커미터

: 컨트리뷰터가 컨트리뷰션을 하면 리뷰를 하는 사람

: 프로젝트에 반영할지 말지 결정 권한을 가지고 있는 컨트리뷰터

 

- 컨트리뷰터

: 오픈 소스 프로젝트에 컨트리뷰션(기여) 활동을 하는 모든 사람

 

- 사용자

: 오픈 소스 프로젝트를 사용하는 사람

 

컨트리뷰션 활동 유형

  • 오타 수정 ( ex. README.md  rect => react)
  • 번역 ( 내가 직접? 제안만 해도 컨트리뷰션)
  • 문서 설명 덧붙임
  • 배너 문구 수정 제안
  • UI / UX 제안

 

✨제안 ✨

  • 버그 픽스
  • 문서 작업
  • 기능 추가, 수정, 삭제
  • 리팩토링
  • 버전, 외부 모듈 바꾸기
  • 에러 메시지 구체화
  • 리소스
  • 테스트 케이스 추가

 

컨트리뷰션을 하는 이유?

 

< 오픈 소스 저작자>

: 컨트리뷰터들이 버그를 찾아준다.

: 사용하면서 불편했던 점, 개선할 코드 등등 혼자는 찾을 수 없느 사항들을 찾아준다.

 

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

: 다른 개발자들에게 리뷰를 받을 수 있다. 

: 내가 원하는 기능을 추가할 수 있고, 사용자 입장에서 코드 사용하는 데도 편리하다. 

: 코드 퀄리티를 높일 수 있다. 코드를 보는 시선, 관점, 시야

: 오픈 소스 코드 분석( = 코드 문해력) 이 길러진다. 

: 협업, 성취감

 

컨트리뷰션 주의 사항

✔️ 커뮤니케이션

: 태도, 자세, 말투➡️"겸손"

 

✔️ 소스 코드 충돌

: Contribute 하고 싶은 내용을 이미 구현하고 있지는 않은지, 구현하지 않기로 결정한 건 아닌지

: 너무 오래된 open 이슈 ( ex. hubot: translate korean 2018 ) ➡️ 디스커션이나 커뮤니티 문의

: 오래된 이슈, 작업하지 않는 이슈, 정리되지 않은 이슈.. 정리! 일종의 컨트리뷰션

: 시작하기 전에 내가 작업을 시작할 것을 알리는 것이 좋음 ( = 이슈 오픈, discussion, .. )

 

✔️ 새롭고, 큰 중요한 기능을 추가하고 싶을 때 

: 나 이런 기능 추가해보고 싶은데 생각 어때?

: 내부적으로 팀원 모집도 추천

 

✔️ Pull Request 던질 때

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

 

컨트리뷰트 절차

1. 오픈 소스 프로젝트를 fork ( 저작자 계정 => 내 레포지토리로 복제 )

2. clone ( 내 컴퓨터, 로컬로 받아 옴)

3. 코드 컨벤션 확인하기 ( 코드 구현 전에 "규칙" 확인하기 )

4. 코드 구현, 수정 👉🏻  커밋 (✨주석 수정 ✨) 

5. 내 계정 깃허브 레포지토리(Clone 했던) 로 push

6. 깃허브 내 레포지토리 ➡️ 오픈 소스 레포지토리 Pull Request

7. Contributor License Agreement 

8. 리뷰어, 커미터, 메인테이너, 저작자 ... 검토해줄 사람

- 검토 생략하고 바로 머지되는 경우도 있다! 

9. merge 되었다 = Pull Request closed 알림

10. 컨트리뷰터 리스트에 내 계정이 추가될 것! 🎉