기여할 오픈소스 고르는 방법

작가 허락을 받고 번역한 글입니다.(원문)

오픈소스 커뮤니티와 프로젝트에 기여하는 것은 초보자, 경험있는 개발자 모두에게 두려울 수 있는 일입니다. 흥미있는 분야, 배우고 싶은 기술이 일치하는 프로젝트를 찾는 것이 어렵기 때문입니다. 이 문제는 저도 개발자를 시작한지 얼마 안됐을 때부터 큰 골치거리였습니다.

하지만 결국 저는 답을 찾게 되었고, 이제 막 오픈소스 기여에 도전해보려는 초보자들에게 도움이 되고자 합니다.

목표 설정

처음에는 오픈소스 기여로 얻고자 하는 것이 무엇인지 목표를 몇개 적는 것이 좋습니다. 목표가 분명하지 않은게 있다면, 좀 더 뚜렷하고, 행동가능한 것으로 수정해야 합니다. 목표가 구체적이면 구체적일 수록 실제로 가능한 목표인지 아닌지 판단하기가 더 쉽기 때문입니다.

목표가 대회나 경쟁 혹은 네트워킹 등 뭔가 대가로 받는 게 되어선 안됩니다.

그리고 목표를 정할 때 꼭 소스코드 기여만 해야한다고 생각할 필요는 없습니다. 사실 오픈소스는 문서작업, 그래픽 디자인, QA, 테스팅, 프로젝트 관리와 같은 능력도 기여할 수 있습니다.

아래는 그 외 오픈소스 기여를 계획하고 있을 때 고려할 수 있는 체크리스트입니다.

  • [ ] 나는 프로젝트에 기여할 수 있는 기술을 소유하고 있는가?
  • [ ] 나는 프로젝트에 어떤 기술을 사용하고 싶은가?
  • [ ] 내 취미는 무엇인가?
  • [ ] 나는 프로젝트에 얼마나 많은 시간을 할애할 계획인가?

저 같은 경우에는 익숙한 프론트엔드 기술을 사용하고 싶었고, 그 중에서도 리액트나 뷰의 새로운 기능을 활용해보고 싶었습니다. 그래서 리액트 네이티브와 어도비 독스를 선택했습니다.

잠재력있는 프로젝트 찾기

잠재력있는 프로젝트를 찾는 건 그리 어렵지 않습니다. 계속 찾아보고 제대로 된 곳을 보는 방법만 배우면 됩니다.

사용 기술

  • Up for Grabs: 이름, 라벨, 태그로 검색할 수 있습니다. 태그로 프로젝트에서 사용하는 언어를 검색할 수도 있습니다.
  • Good First Issues: 언어로 검색할 수 있습니다.
  • First Timers Only: 초보자를 위한 자료
  • Awesome For Beginners: 초보자 친화적인 프로젝트를 모아둔 곳으로 언어로 정렬할 수 있습니다.

오픈소스 프로그램

오픈소스 프로그램에 참여하는 것은 오픈소스 커뮤니티와 프로젝트에 익숙해지는데 가장 빠르고 쉬운 방법입니다.

관심사로 찾기

흥미에 따라 프로젝트를 검색할 수도 있습니다. 먼저 자신에게 흥미있는게 뭔지 결정하고, 관심사와 관계된 프로젝트를 인터넷에서 찾아보면 됩니다. 때때로 장고걸스와 같은 관련 오픈소스 그룹을 발견할 수도 있습니다.

프로젝트 거르기

기여할만한 프로젝트 들을 고르고 나면, 선택권을 줄여나갈 차례입니다. 여러분의 목표와 맞고, 아래 기준에 적합한 것이 좋은 후보가 될 것입니다.

  • [ ] 무료이며, 오픈소스 라이센스를 가지고 있는가?
  • [ ] 오랜 기간 비활성화되어 있지 않은 진행 중인 프로젝트이다.
  • [ ] 기여자 가이드라인이나 Code of Conduct, wiki 등이 지속적으로 업데이트 되고 있다.

가장 좋은 옵션을 선택하기 위해 기준에 대해 좀 더 자세히 알아보도록 하겠습니다.

오픈소스 라이센스 들에 대한 이해

오픈소스 라이센스들은 무시되는 경향이 있습니다. 하지만 라이센스는 해당 프로젝트를 가지고 무엇을 할 수 있는지 없는지를 결정하기 때문에 중요한 구성요소 입니다. 기여를 시작하기 전에 해당 프로젝트의 라이센스를 확인하는 것은 중요합니다.

오픈소스 라이센스들은 여러가지 종류가 있지만, 크게 두가지로 나누면 copyleft와 permissive 카테고리가 있습니다. 둘다 읽고, 변경하고, 공유하는 것에 관련되어 있지만, 두 라이센스는 후속작의 라이센스 부분에 있어 조금 차이가 있습니다.

  • Copyleft License: copyleft 라이센스는 후속작이 더 강한 라이센스를 사용하는 것을 제한합니다. 예를 들면 GPL, LGPL, Mozilla Public License가 있습니다.

  • Permissive License: permissive 라이센스는 후속작의 제작자가 후속작의 라이센스를 변경하는 것을 제한하지 않습니다. 또한 이 라이센스가 적용된 공개 작품은 회사에서 상업적으로 사용이 가능합니다. 또한 후속작의 제작자에게 라이센스를 적용해야 하는 의무를 지게 하지 않습니다.

활동적인 개발의 결정적인 신호

후보 프로젝트가 지금도 활동적인지 보려면 discussion과 개발 활동 기록을 보면 됩니다. 활동 수준을 대략적으로 파악하려면 아래 체크리스트를 확인해보셔도 좋습니다.

  • [ ] 질문을 하는 사람이 답변을 받습니까?
  • [ ] 컨트리뷰터를 환영합니까?
  • [ ] 관계자의 어조는 어떻습니까?

컨트리뷰터 가이드라인

마지막으로 후보 프로젝트가 컨트리뷰터를 위한 가이드라인이 존재하는지 확인하시기 바랍니다. 이건 불필요하지만, 프로젝트가 다른 기여자를 고려하고 있는지 알 수 있는 항목입니다. 그리고 가이드라인은 첫 기여의 성패를 판단하기에 좋은 지표가 될 수 있습니다.

아래는 좋은 컨트리뷰터 가이드라인에 대한 체크리스트입니다.

  • [ ] 리드미나 위키에 프로젝트를 시작하는 방법에 대한 정보가 있습니까?
  • [ ] 열린 이슈들을 보면 여러분이 돕기 시작할만한 일이 있습니까?

결론

이제는 소개해드린 체크리스트를 기반으로 프로젝트를 분석한 후 우선순위를 정할 시간입니다. 최종 후보를 몇가지 골랐다면 아주 간단한 이슈를 선택해 각각 풀 리퀘스트를 생성해보시기 바랍니다.

그리고 가장 의미있고 효과적인 기여를 하시기 바랍니다. Open Source Best Practice라는 글을 참고하셔도 됩니다.

이 글로 여러분이 오픈소스 프로젝트를 찾는데 도움이 되었으면 합니다. 위 체크리스트들은 여러분의 상황에 맞게 적절히 수정해서 적용하셔도 좋습니다.

제 경험으로 효과적인 오픈소스 기여를 시작하시기 바랍니다.

좋았다면, 댓글을 남겨주세요. 어떤 종류의 피드백도 환영입니다. 연락을 원하시면 아래 링크를 확인해보시기 바랍니다.

LinkedIn | GitHub | Twitter | Medium

Comments