오픈 소스 구성원 역할
- 저작자: 오픈 소스 프로젝트를 만든 사람 또는 조직
- 사용자: 오픈 소스 프로젝트를 사용하는 사람
- 메인테이너: 프로젝트의 방향을 알고 있고, 직접 설정한 프로젝트를 관리하는 사람
- 컨트리뷰터: 오픈 소스 프로젝트에 컨트리뷰션(기여) 활동을 하는 모든 사람
- 커미터: 컨트리뷰터가 컨트리뷰션을 하면 리뷰를 하는 사람으로, 프로젝트에 반영할지에 대한 결정 권한도 가지고 있음
컨트리뷰션
컨트리뷰션을 하는 이유
- 오픈 소스 저작자 입장에서는 컨트리뷰터들이 버그를 찾아줄 수 있고, 사용하면서 불편했던 점을 발견하고 코드를 개선할 수 있다.
- 오픈 소스 사용자/컨트리뷰터 입장에서는 코드 리뷰를 받을 수 있고, 내가 원하는 기능을 추가해 볼 수 있다. 또한, 오픈 소스 코드 분석 능력을 기를 수 있다.
활동 유형
- 버그 수정
- 문서 작업
- 기능 추가/수정/삭제
- 리팩토링
- 버전, 외부 모듈(의존성) 변경
- 에러 메시지 수정
- 테스트 케이스 추가
주의 사항
- 커뮤니케이션할 때의 태도, 자세, 말투는 겸손해야 한다.
- 기여하고 싶은 내용을 이미 구현하고 있지 않은지, 구현하지 않기로 결정한 것은 아닌지 먼저 확인해야 한다.
- 시작하기 전에 내가 이 작업을 시작할 것이라고 이슈 오픈이나 디스커션 탭에서 알리는 것이 좋다.
- 너무 오래된 open 이슈는 디스커션이나 커뮤니티에 문의한다.
- Pull Request를 던질 때는 템플릿이나 문서를 확인하여 준수할 내용을 체크해야 한다.
절차
- 오픈 소스 프로젝트를 내 계정의 레포지토리에 fork 한다.
- 내 계정에 있는 레포지토리를 클론 해서 로컬에 받아온다.
- 코드 컨벤션, 커밋 메시지 규칙 등을 코드 구현 전에 확인한다.
- 코드를 구현하고, 수정한다.
- 내 계정의 깃허브 레포지토리로 push 한다.
- 깃허브의 내 레포지토리에서 오픈 소스 레포지토리로 Pull Request 요청을 보낸다.
- 컨트리뷰터 라이선스에 동의한다.
- 리뷰어, 커미터, 메인테이너, 저작자 등이 검토한다. 검토를 생략하고 바로 merge 되는 경우도 있다.
- merge 완료 (Pull Request closed 알림이 온다)
- 컨트리뷰터 리스트에 내 계정이 추가된다.
라이선스 제안
- 어떤 프레임워크 위에서 동작하는지, 어떤 모듈이랑 같이 쓰이는지 확인하여 라이선스를 제안한다.
- 딱히 고려할 것이 없으면 MIT 라이선스로 제안한다.
- Apache는 특허 관련 내용이 포함되어 있기 때문에 기업이 사용하기를 원하면 Apache(웹 관련)로 제안한다.
- 오픈 소스 커뮤니티/프로젝트 구성원/컨트리뷰터 등의 히스토리를 모두 공개하길 원하면 GNU (L/A/)GPL v3로 제안한다.
배운 점
- 오픈 소스 구성원에는 어떤 것이 있고, 각자 무슨 역할을 하는지에 대해 알게 되었다.
- 컨트리뷰션은 프로젝트가 더 나은 방향으로 갈 수 있도록 해준다.
- 컨트리뷰션을 하기 전에 이슈와 디스커션을 먼저 확인해야 한다.
- 컨트리뷰션을 할 때는 해당 오픈 소스 프로젝트를 내 레포지토리에 fork 한 후에 로컬에서 작업하고 내 레포지토리에 push 한다. 그리고 Pull Request를 요청한다.
- 라이선스 제안 방법과 각 라이선스가 어떤 의미를 가지고 있는지 배웠다.
'데브코스' 카테고리의 다른 글
[14주차 - DAY1] 오픈 소스(5) (0) | 2024.05.27 |
---|---|
[13주차 - DAY5] 오픈 소스(4) (0) | 2024.05.24 |
[13주차 복습 발표] 싱글톤 패턴 (0) | 2024.05.22 |
[13주차 - DAY3] 오픈 소스(2) (0) | 2024.05.22 |
[13주차 - DAY2] 오픈 소스 (0) | 2024.05.21 |