개발자 관계

오픈소스 프로젝트에 첫 번째 공헌하기

2018-10-03
개발자 관계
ko

이것은 많은 일의 첫 번째 단계입니다.

오픈소스에 공헌하는 것이 어려운 일이라는 일반적인 오해가 있습니다. 여러분은 “때로는 내 자신의 코드조차 이해하지 못하는데, 다른 사람의 코드를 어떻게 이해할 수 있을까?”라고 생각할 수 있습니다.

편안하게 하세요. 작년까지 저도 그렇게 생각했습니다. 다른 사람의 코드를 읽고 이해한 다음 그 위에 자신의 코드를 작성하는 것은 주눅 드는 작업입니다. 하지만 적절한 자료가 있다면, 생각보다 그렇게 나쁘지 않습니다.

첫 번째 단계는 프로젝트를 선택하는 것입니다. 이 결정은 초보자가 노련한 오픈소스 공헌자로 변하는 데 핵심적인 단계가 될 수 있습니다.

오픈소스에 관심이 있는 많은 아마추어 프로그래머는 Git부터 시작하라는 조언을 받지만, 이것이 최선의 시작 방법은 아닙니다. Git은 수년간 소프트웨어 개발 경험이 있는 슈퍼 긱들이 유지 관리합니다. 공헌할 수 있는 오픈소스 프로젝트를 찾는 좋은 곳이지만, 초보자에게 친절하지 않습니다. Git에 공헌하는 대부분의 개발자는 충분한 경험이 있어, 다양한 자료나 문서를 참조할 필요가 없습니다. 이 글에서 저는 초보자에게 친절한 특성 목록을 제공하고, 오픈소스에 더 쉽게 공헌할 수 있도록 몇 가지 제안을 드리겠습니다.

제품 이해하기

공헌하기 전에 프로젝트가 어떻게 작동하는지 이해해야 합니다. 이것을 이해하려면 직접 시도해야 합니다. 이 제품이 흥미롭고 유용하다고 느끼면, 공헌할 가치가 있습니다.

초보자는 종종 사용해 보지 않은 소프트웨어에 공헌하려고 선택합니다. 그들은 실망하고 결국 공헌을 포기합니다. 소프트웨어를 사용해 보지 않았다면, 그것이 어떻게 작동하는지 이해할 수 없습니다. 어떻게 작동하는지 이해하지 못하면, 버그를 수정하거나 새로운 기능을 어떻게 추가할 수 있을까요?

기억하세요: 시도해야, 바꿀 수 있습니다.

제품 상태 확인하기

이 프로젝트는 얼마나 활성화되어 있나요?

유지 관리가 중단된 프로젝트에 풀 리퀘스트pull request를 제출하면, 여러분의 요청은 영원히 논의되거나 병합되지 않을 수 있습니다. 활성화된 프로젝트를 찾으세요. 그래야 여러분의 코드가 즉각적인 피드백을 받을 수 있고, 공헌이 낭비되지 않습니다.

프로젝트가 여전히 활성화되어 있는지 확인하는 방법을 소개합니다:

  • 공헌자 수: 증가하는 공헌자 수는 개발자 커뮤니티가 새로운 공헌자를 받아들일 준비가 되어 있음을 나타냅니다.
  • 커밋commit 빈도: 최근 커밋 시간을 확인하세요. 일주일 이내, 심지어 한두 달 이내라면, 이 프로젝트는 정기적으로 유지 관리되고 있습니다.
  • 유지 관리자 수: 유지 관리자가 많을수록 지도를 받을 가능성이 높습니다.
  • 채팅방 또는 IRC 활성도: 분주한 채팅방은 여러분의 질문이 더 빨리 답변될 수 있음을 의미합니다.

초보자 자료

Coala는 오픈소스 프로젝트의 예입니다. 자체 튜토리얼과 문서가 있어, API(모든 클래스와 메서드)를 사용할 수 있습니다. 이 웹사이트는 매력적인 인터페이스를 설계하여 읽고 싶은 흥미를 줍니다.

문서: 어떤 수준의 개발자든 프로젝트의 세부 사항을 이해하기 위해 신뢰할 수 있고 잘 유지 관리되는 문서가 필요합니다. GitHub(또는 다른 곳에 위치)이나 Read the Docs와 같은 독립 사이트에서 완선된 문서를 제공하는 프로젝트를 찾으세요. 그래야 코드를 더 깊이 이해하는 데 도움이 됩니다.

튜토리얼: 튜토리얼은 초보자에게 프로젝트에 기능을 추가하는 방법을 설명합니다 (하지만 모든 프로젝트에서 찾을 수 있는 것은 아닙니다). 예를 들어, Coala는 작은 곰 작성 가이드(코드 분석을 위한 코드 포맷팅linting 도구의 Python 래퍼)를 제공합니다.

분류된 이슈issue: 첫 번째 프로젝트를 선택하는 방법을 막 알아낸 초보자에게, 이슈를 선택하는 것은 더 어려운 작업입니다. “난이도/낮음”, “난이도/초보자”, “초보자에게 유리”, “손 닿기 쉬운low-hanging fruit“으로 태그가 설정된 것은 모두 초보자에게 친절함을 나타냅니다.

기타 요소

CI user pipeline log

  • 새로운 공헌자에 대한 유지 관리자의 태도: 제 경험상, 대부분의 오픈소스 공헌자는 자신의 프로젝트에 있는 초보자를 돕는 것을 좋아합니다. 하지만 질문을 할 때, 덜 친절한 사람(심지어 약간 무례할 수 있음)을 만날 수도 있습니다. 이런 사람들 때문에 자신감을 잃지 마세요. 그들은 단지 자신보다 경험이 많은 사람에게서 화를 풀 기회를 얻지 못했을 뿐입니다. 도움을 줄 수 있는 다른 많은 사람이 있습니다.
  • 검토 과정/메커니즘: 여러분의 풀 리퀘스트는 동료와 경험 많은 개발자의 검토와 변경을 여러 번 거칩니다—이것이 여러분이 소프트웨어 개발을 배우는 가장 주요한 방법입니다. 엄격한 검토 과정을 갖춘 프로젝트는 여러분이 생산급 코드를 작성하는 과정에서 성장하게 합니다.
  • 건실한 지속적 통합continuous integration 파이프라인: 오픈소스 프로젝트는 초보자들에게 지속적 통합과 배포 서비스를 소개합니다. 건실한 CI 파이프라인은 CI 로그를 읽고 이해하는 법을 배우는 데 도움이 됩니다. 또한 실패한 테스트 케이스와 코드 커버리지 문제를 처리하는 경험을 줍니다.
  • 프로그래밍 프로젝트 참가 (예: Google Summer Of Code): 조직에 참가하는 것은 여러분이 프로젝트의 장기적 발전에 공헌할 의향이 있음을 증명합니다. 또한 초보자에게 보수를 받으며 현실 세계의 개발 경험을 얻을 기회를 제공합니다. 이러한 프로젝트에 참가하는 대부분의 조직은 새로운 사람들의 참여를 환영합니다.

초보자에게 친절한 7개 조직

저자 소개

Palash Nigam - 저는 인도 컴퓨터 과학 전공 학부생으로, 오픈소스 소프트웨어 개발에 참여하는 것을 매우 좋아합니다. GitHub에서 대부분의 시간을 보냅니다. 현재 관심사는 웹 백엔드 개발, 블록체인, 그리고 모든 파이썬 관련 것들입니다.

재인용 출처: 개발자 관계 »


Similar Posts

Content icon
Content