Contribution
프로젝트는 크게 네이버와 같은 사이트, 혹은 간단한 로그인 기능과 같이 요구사항대로 결과물을 만드는 걸 프로젝트라고 합니다. 프로젝트를 만들 때 우리는 과연 코드 작성만 하는 걸까요? 프로젝트를 만들기 위한 기획, 테스트, 배포, 가이드 등등 다양한 작업도 프로젝트가 될 수 있는데요, 기여 활동도 마찬가지입니다. 코드뿐만 아니라 프로젝트에 다양하게 의견을 어필하는 것도 기여활동이 될 수 있는 것입니다.
코드 외 적 기여활동 | 코드 기여활동 |
오타수정 번역 문서 설명추가 배너 문구 수정 제안 UI/UX 제안 |
버그 픽스 기능 추가/수정/삭제 리팩토링 버전, 외부모듈(업데이트 / 교체) 에러메세지 리소스 테스트 케이스 추가 |
이렇게 기여활동에는 다양한 것들이 존재하는데요 이 기여활동에 해당되는 것을 직접적으로 하지 않고 오타 있다고 알려주거나, 에러메시지 추가하는 건 어떨까요 하는 의견을 내는 것 또한 크게 기여활동이라고 할 수 있습니다.
왜 기여하는가?
오픈소스 프로젝트에 기여를 하는 관점은 두 가지가 존재합니다. 바로 "저작자"와 "사용자/컨트리뷰터"입니다.
- 저작자
- 내가 발견하지 못하는 버그, 서비스를 이용하면서 불편한 점, 개선 코드들을 들을 수 있습니다.
- 사용자 / 컨트리뷰터
- 다른 사람의 코드를 분석하는 것이기 때문에 코드 문해력이 성장할 수 있습니다.
- 다른 사람들의 코드를 보면서 코드를 작성할 때 시선/관점/시야를 넓혀 내 코드의 퀄리티를 높일 수 있습니다.
- 내가 원하는 기능 추가 요청/제작을 하기 때문에 그 오픈소스를 사용하는 실질적인 내 코드에도 도움이 됩니다.
- PR까지 진행하다 보면 내가 작성한 코드를 다른 개발진들이 보고 코드리뷰를 받을 수 있습니다.
기여활동 주의사항
기여활동을 하기 전에 체크해야 할 주의사항이 있습니다.
👉 커뮤니케이션을 잘해야 합니다. 태도나 자세, 말투를 겸손한 자세를 취해야 합니다.
👉 코드 충돌을 방지해야 합니다.
- 코드충돌을 방지하기 위해서는 issues나 discussions를 통해서 이미 구현하고 있는지 이전에 누가 의견을 요청했지만 반려당하지 않았는지 체크를 해야 합니다. (만약에 내가 원하는 기능을 누군가 엄청 오래전에 issue로 남겼는데 open 되어있다면 디코와 같은 커뮤니티나 discussions를 통해서 질문합시다.)
- open 된 이슈들 중에 오래됐거나, 작업을 하지 않고 있거나, 정리가 되지 않는 것들을 정리하는 것도 기여활동에 해당됩니다.
- 만약 코드 구현을 시작한다면 위에 말한 내용을 체크하고 issues에 올려야 다른 사람들이랑 충돌될 가능성이 적어집니다.
👉 새로운 기능을 추가하기 전에 이슈나 커뮤니티를 통해 의견을 묻고, 의견이 반응이 좋다면 내부적으로 팀원 모집을 하여 기능 구현을 하는 게 좋습니다. 이때 의견을 묻는 게 포인트입니다.
👉 PR 던질 때, 템플릿이 존재하는지, 가이드가 존재하는지 확인하면서 준수할 내용들을 체크해야 합니다.(코드컨벤션은 잘 지켰는지, 테스트는 했는지 안 했는지)
기여 절차 알아보기
이렇게 주의사항까지 확인을 했다면 기여 절차에 대해서 설명하겠습니다.
- 오픈소스 fork ( 내 깃허브에 복제 )
- 깃 clone, 내 로컬에 복제한 레포 옮기기
- 코드컨벤션 체크, commit 메시지 규칙 체크
- 코드 구현 / 수정 + 주석 수정
- 깃허브에 push( 내 레포 )
- 내 레포를 저작자 레포에 PR 보내기
- 컨트리뷰터 라이선스 동의
- 리뷰터, 커미터, 메인테이너, 저작자 등등 검토해 줄 사람 - 문제가 없다면 검토 없이 바로 merge 되는 경우 있음
- merge 되었다는 알림, PR closed 알림
- 컨트리뷰터 리스트에 내 계정 추가
'개발지식' 카테고리의 다른 글
개발과 명세1 (0) | 2024.03.20 |
---|---|
오픈소스 문서 (0) | 2024.02.19 |
오픈소스와 라이선스 (0) | 2024.02.14 |
메모리 구조와 메모리 할당 (0) | 2024.01.22 |
컴파일 언어와 스크립트 언어 (0) | 2024.01.22 |