
비트코인의 기술적 측면에 대해 배울 수 있는 다양한 방법에 대한 시리즈를 계속하여, 이 기사에서는 비트코인 코어 GitHub 리포지토리의 좋은 첫 이슈에 초점을 맞출 것입니다.
비트코인 코어는 비트코인의 참조 구현으로 널리 인식되고 있습니다. “비트코인 코어”라는 이름은 2013년까지 사용되지 않았지만, 클라이언트 자체는 2009년 사토시 나카모토의 첫 번째 릴리스로 거슬러 올라갈 수 있습니다. libbitcoin(C++), bcoin(Javascript) 및 btcd(Go)와 같은 다른 비트코인 구현은 나중에 만들어졌습니다.
GitHub 알아보기
비트코인 코어는 오픈 소스 프로젝트입니다. 코드와 문서는 인터넷 연결이 있는 누구나 볼 수 있고 다운로드할 수 있습니다. 비트코인 코어(및 많은 다른 소프트웨어 프로젝트)는 분산된 기여자들 간의 코드베이스 변경 사항을 추적하기 위해 오픈 소스 및 비독점적인 Git 버전 관리 시스템을 사용합니다.
Git은 리눅스 커널의 창시자인 리누스 토발즈에 의해 개발되었습니다. 반면, GitHub(최근 마이크로소프트에 인수됨)는 Git 프로토콜 주위에 편리한 도구와 사회적 기능을 제공하는 독점 소프트웨어를 제공합니다. 비트코인 코어는 지속적인 생존을 위해 GitHub에 의존하지 않지만, 프로젝트가 갑자기 이동되거나 GitHub 소프트웨어 사용이 금지된다면 불편하고 혼란스러울 것입니다.
마이크로소프트의 GitHub 인수 당시, 비트코인 커뮤니티와 다른 오픈 소스 프로젝트에서는 향후 GitHub에 대한 의존도를 줄여야 하는지에 대한 논의가 있었습니다. 기여자와 잠재적 기여자들이 GitHub 소프트웨어 사용이 금지되는 경우가 늘어나면서 이 견해는 점점 더 인기를 얻고 있습니다. 마이크로소프트가 정치적으로 논란이 될 수 있는 프로젝트를 금지할 가능성도 있습니다. 시간이 지나면 비트코인 코어와 다른 비트코인 구현이 향후 GitHub의 잘 만들어진 사용자 친화적인 기능을 계속 활용할 수 있을지 알게 될 것입니다.
‘좋은 첫 이슈’ 찾기
그러한 기능 중 하나는 버그, 개선 사항 및 요청을 발표하고 추적하는 데 사용되는 GitHub Issues입니다. 모든 GitHub 사용자가 이슈를 생성할 수 있지만, 기존 기여자와 IRC에서 논의한 후에만 이슈를 여는 것이 좋습니다. 이슈 작업을 시작하기 위해 허가를 요청할 필요는 없습니다. 그러나 요청할 경우, 다른 기여자와의 협업을 장려하기 위해 이슈에 댓글을 달도록 권장됩니다. 필요할 때 도움을 요청하는 좋은 방법이기도 합니다.
“좋은 첫 이슈” 레이블의 목적은 코드베이스에 대한 깊은 이해가 부족할 수 있는 새로운 기여자에게 적합한 이슈를 강조하는 것입니다. 좋은 첫 이슈는 소프트웨어 개발 초보자를 대상으로 하지 않습니다. 최소한 기본적인 Git 능력이 필요하며, 이상적으로는 비트코인 코어 코드베이스가 이러한 언어로 작성되었기 때문에 C++ 및/또는 Python 능력도 필요합니다.
비트코인 코어의 좋은 첫 이슈는 해당 이슈를 해결하는 데 필요한 “유용한 기술”을 강조합니다. 코드 관련 기여를 위해 C++ 및/또는 Python을 배우는 것이 좋지만, 이러한 언어에 능숙하지 않다면 문서에 대한 실질적인 개선을 하거나 셸 스크립팅, Automake 또는 CMake 경험이 필요한 좋은 첫 이슈를 찾아 시작할 수 있습니다.
‘오타’와 ‘실제’ 이슈
일부 사람들은 변수 이름, 주석 또는 문서의 기본적인 오타를 수정하는 것으로 시작합니다. 제레미 루빈은 새로운 기여자들이 이를 찾아 수정할 수 있도록 자신의 기여에 의도적으로 오타를 남긴다고 농담을 했습니다. 새로운 기여자로 시작하는 한 가지 방법이지만, 오타에 대한 풀 리퀘스트(PR)를 제출하기보다는 좋은 첫 이슈에 집중하는 것이 더 좋습니다.
좋은 첫 이슈는 기존 기여자들에 의해 프로젝트에 중요한 가치가 있는 것으로 강조된 것입니다. 오타를 식별하도록 설정되지 않으며, 기존 기여자와 유지 관리자는 리뷰 및 병합할 고우선 순위의 PR에 시간을 집중하기를 선호합니다. (풀 리퀘스트는 기여자가 제안한 변경 사항으로, 유지 관리자가 검토 후 충분한 합의가 있을 때만 병합됩니다.)
따라서 오타를 더 실질적인 풀 리퀘스트의 일부로 수정하는 것이 더 좋습니다. 앞서 논의한 바와 같이, 기존 PR을 검토하는 것이 일반적으로 새로운 PR을 제출하는 것보다 더 가치가 있다는 점을 기억할 가치가 있습니다. 존 뉴베리는 개인적으로 제출하는 PR마다 5~15개의 PR을 검토하는 것이 좋은 경험 법칙이라고 추천합니다. 작성 시점에서 약 300개의 열린 풀 리퀘스트와 700개의 열린 이슈가 테스트 및 검토를 요구하고 있습니다.
연습하고 배우기 위한 많은 기회
비트코인 코어의 최근 새로운 기여자인 파비안 야르(Fabian Jahr)는 새로운 기여자에게 종종 부족한 주요 기술이 충분한 Git 능력, 예를 들어 커밋을 스쿼시하는 능력이라고 지적했습니다. 기여자는 명령줄에 Git 명령을 입력해야 합니다. 명령줄 및/또는 Git 초보자라면 비트코인 코어의 자원 제약을 받지 않는 다른 프로젝트에서 튜토리얼을 완료하고 연습하는 것이 가장 좋습니다.
온라인에는 많은 Git 튜토리얼(일부는 무료)과 저스틴 문(Justin Moon)의 Mooniversity 과정(유료)도 있으며, 이는 명령줄에서 비트코인 코어와 상호작용하고 기여하는 데 필요한 전제 조건을 배우는 데 도움이 될 것입니다. 추가 지침이 필요하다면 최근 새로운 기여자에게 온라인이나 지역 소크라틱 세미나에서 도움을 요청하는 것을 두려워하지 마세요.
도움 요청하기
새로운 기여자를 온보딩하는 데 있어 하나의 도전 과제는 경험이 풍부한 기여자가 짧은 시간 안에 완료할 수 있는 작업이 새로운 기여자에게는 훨씬 더 오랜 시간이 걸릴 수 있다는 것입니다. 이는 새로운 기여자가 도전 과제에 직면할 때마다 지속적으로 노력하고 필요할 때 도움을 요청해야 함을 요구합니다. 비트코인 코어의 최근 새로운 기여자는 좋은 첫 번째 연락처가 될 수 있으며, 그들이 귀하의 문제를 해결할 수 있을 것입니다. 그렇지 않다면 적절한 장기 기여자로 안내할 수 있어야 합니다. 작업 중인 이슈에 댓글을 달아 도움을 요청할 수도 있습니다.
비트코인 매거진의 블라드 코스테아(Vlad Costea)와의 인터뷰에서 체인코드 랩스 엔지니어 칼 동(Carl Dong)은 기존 기여자들이 게시한 새로운 “좋은 첫 이슈”가 있을 때마다 플래그를 지정하는 IFTTT 이메일 알림을 설정했다고 회상했습니다. 이는 그가 비트코인 개발을 시작하고 기여할 수 있는 일부 미니 프로젝트를 식별하는 데 사용한 전략 중 하나였습니다. 동은 이후 누구나 새로운 좋은 첫 이슈에 대한 알림을 받을 수 있도록 @GoodFirstIssues라는 트위터 계정을 만들었습니다.
이 기사에 기여해 주신 존 아택( Jon Atack)과 마르코 팔케(Marco Falke)에게 감사드립니다.