GDGoC 7th Connect Session 후기

마이·2025년 4월 17일
0

대외활동

목록 보기
4/8
post-thumbnail

2025.04.16 GDGoC 7th Connect Session

지난 수요일 GDGoC Gachon에서 주최한 제 7회 Connect Session에 발표자로 참가하여 처음 오픈소스에 기여하기를 망설이시는 분들을 위해 "입문자를 위한 하루 완성 오픈소스 기여 가이드" 라는 주제로 어떻게 오픈소스에 기여하는 것이고, 저는 어떻게 오픈소스에 기여를 하였는지, 그리고 알아두면 좋은 오픈소스 관련 행사와 정보들을 전달드렸습니다.

세션 주제를 정한 이유?

오픈소스 기여는 정말 사소한 기여도 Creator와 Maintainer에게 정말 큰 도움이 됩니다. 하지만 대부분의 많은 사람들이 오픈소스 기여라고 하면 어렵기만 하고 막막하게 생각하시기에 오픈소스에 대한 막연한 두려움을 해소해드리고자 이 세션을 준비하게 되었습니다.

세션 설명

해당 세션은 오픈소스는 무엇인지, 오픈소스에는 어떻게 기여하는 것인지, 저는 어떻게 기여를 했는지, 어떠한 관련 행사들이 있는지에 대한 내용을 다루고 있습니다. 상단 이미지의 QR코드를 통해 전체 내용을 확인하실 수 있습니다.

오픈소스란?

많은 분들이 오픈소스를 단순히 공짜로 쓸 수 있는 소프트웨어, 코드가 공개된 소프트웨어라고만 생각하시는데 오픈소스는 단순히 코드를 공개하는것에서 그치지 않고, 투명성, 협업, 공동체 정신에 기반합니다. 리눅스, 파이썬, 워드프레스, 안드로이드 등 우리가 일상에서 자주 사용하는 많은 소프트웨어가 오픈소스로 개발되고 있습니다. 이러한 프로젝트들은 전 세계 수천 명의 개발자들이 함께 참여하여 더 나은 소프트웨어로 발전시키고 있죠.

오픈소스에 기여하는 방법

오픈소스 기여는 생각보다 간단한 과정으로 이루어집니다. 크게 네 단계로 나눌 수 있어요.

  1. 프로젝트 찾기: 자신이 관심 있거나 기여하고 싶은 오픈소스 프로젝트를 찾습니다.
  2. 프로젝트를 나의 레포지토리로 복제(Fork)하기: 원본 프로젝트를 자신의 GitHub 계정으로 복제합니다.
  3. 기여하기: 코드 수정, 문서 작성, 버그 수정 등 다양한 방식으로 기여합니다.
  4. Pull Request(PR) 작성하기: 변경사항을 원본 프로젝트에 적용해달라고 요청하는 PR을 작성합니다.

이 과정이 처음에는 복잡해 보일 수 있지만, 한 번 경험해보면 생각보다 쉽다는 것을 알게 될 거예요.

첫 기여를 위한 팁

만약 기여가 처음이시라면 'up for grabs'와 같은 사이트에서 기여하기 좋은 이슈를 찾거나, GitHub에서 'good first issue', 'beginner friendly', 'first-timers-only' 등의 태그를 찾아보시는 것이 좋습니다. 이런 태그가 붙은 이슈들은 초보자를 위해 비교적 간단하게 설계되어 있어요.

또한 처음부터 복잡한 코드에 도전하기보다는 오타 수정, 문서 개선, 간단한 버그 수정 등으로 시작하는 것을 추천합니다. 이런 작은 기여들도 프로젝트에 큰 도움이 되며, 기여자로서의 자신감을 키울 수 있습니다.

자신이 자주 사용하는 라이브러리나 도구에 기여하는 것도 좋은 방법입니다. 이미 사용법을 알고 있다면 기여하기가 더 수월할 수 있습니다.

실제 기여 과정

만약 기여하고 싶은 프로젝트를 찾으셨다면, GitHub에서 해당 프로젝트 페이지로 가서 오른쪽 상단에 있는 'Fork' 버튼을 눌러 본인의 레포지토리로 fork를 하시면 됩니다. 이렇게 하면 원본 프로젝트의 복사본이 여러분의 GitHub 계정에 생성됩니다.

Fork 과정이 완료되면 페이지 상단에 여러분의 닉네임이 표시됩니다. 예를 들어, 'username/project-name'과 같은 형태로 보이게 됩니다. 이는 성공적으로 fork가 되었다는 의미입니다.

이제 이 fork된 레포지토리를 로컬 컴퓨터로 클론(clone)하여 수정 작업을 할 수 있습니다. 변경사항을 적용한 후에는 이를 다시 GitHub의 fork된 레포지토리에 push하고, 원본 프로젝트로 Pull Request를 보내면 됩니다.

프로젝트 관리자가 여러분의 변경사항을 검토하고 승인(Accept)할 때까지 기다려야 하기에 Pull Request를 작성할 때는 어떤 변경을 했는지, 왜 이런 변경이 필요한지 명확하게 설명하는 것이 중요합니다. 때로는 추가 수정이 요청될 수도 있으니 인내심을 갖고 기다려야 합니다.

승인이 되면 여러분의 코드가 실제 프로젝트에 병합(merge)되어 전 세계 사용자들에게 배포됩니다. 이렇게되면 여러분의 첫 오픈소스 기여가 완료된 것 입니다.

이슈를 배정받지 않아도 기여해도 되나요?

실제로 대부분의 프로젝트들은 이슈를 배정받지 않아도 자유롭게 기여 할 수 있습니다. 하지만 그 전에 확인해야 할 몇가지 사항들이 있는데요. 다음과 같습니다.

  1. 중복 확인: 다른 사람이 동시에 같은 문제를 해결하고 있지는 않는지 확인하기

  2. 기여 가이드라인 확인하기: 해당 프로젝트의 기여가 자유로운지 아니면 배정방식인지 확인하기

오픈소스 기여는 해당하는 오픈소스의 관리자가 우리의 PR을 Accept해줘야만 가능하기에 프로젝트의 룰을 잘 확인하는 것이 중요합니다.

저의 오픈소스 기여기

저는 제 11회 Hacktoberfest기간에 처음으로 오픈소스 기여에 성공했습니다. Hacktoberfest는 매년 10월 한달간 진행되는 전세계에서 가장 유명한 오픈소스 기여 캠페인으로 많은 프로젝트들이 해당 기간에 맞춰 초보자 친화적인 이슈들을 많이 만들기에 오픈소스 기여가 처음이라면 해당 기간에 기여에 도전해보시는것도 좋습니다.

저는 해당 기간에 Planetarium이라고 하는 블록체인 게임 회사의 레포지토리에 기여하였습니다. Planetarium은 해당 기간에 회사 내에서 자체적으로 오픈소스 기여를 돕는 행사도 진행하였기에 저는 전체 오픈소스 기여 과정을 실제 오픈소스 관리자분들과 엔지니어분들과 함께 진행하였습니다.

제 첫 기여는 특별했습니다. 기여를 위해 가이드 문서를 읽고 개발 환경 설정을 따라가던 도중, 가이드 문서에서 생략되어 있는 중요한 설정 단계를 발견했습니다. 이를 수정하는 것이 제 첫 PR이자 기여였습니다. 단순히 문서의 오류를 수정하는 작업이었지만, 이 과정에서 오픈소스 기여 방법에 대해 실제로 경험하며 배울 수 있었고, 무엇보다 자신감을 얻을 수 있었습니다.

이러한 경험을 바탕으로 자신감이 붙자, 저는 더 도전적인 기여에 도전했습니다. .NET 기반 블록체인 알고리즘을 TypeScript로 호스팅하여 단순 자바스크립트 함수로 해당 알고리즘을 사용할 수 있도록 하는 로직을 설계하고, 그에 대한 테스트 코드를 작성하는 작업을 수행했습니다. 이는 처음 문서 수정보다 훨씬 복잡한 작업이었지만, 첫 기여의 경험이 큰 도움이 되었습니다.

오픈소스 기여를 하며 배운점

저는 이러한 기여 경험을 통해 몇 가지 중요한 교훈을 얻었습니다. 오픈소스 기여가 꼭 코드일 필요는 없다는 것입니다. 문서 작성, 번역, 테스트, 디자인, 피드백 제공 등 다양한 방식으로 기여할 수 있습니다. 또한 커뮤니티와 함께하는 것의 중요성을 깨달았습니다. 혼자 하는 것보다 행사에 참여하거나 커뮤니티와 함께할 때 더 쉽고 재미있게 기여할 수 있었습니다.

무엇보다 "어떻게든 시작하는 것이 가장 중요하다"라는 점을 깨달았습니다. 처음에는 두렵고 어렵게 느껴질 수 있지만, 한 번 첫 발을 내딛으면 생각보다 쉽고 보람찬 경험이 될 수 있습니다.

오픈소스 기여를 시작하려는 분들을 위해 몇 가지 추천 행사와 사이트를 소개해 드리겠습니다:

이러한 사이트들을 통해 자신에게 맞는 프로젝트와 이슈를 찾아보세요. 또한 관심 있는 프로젝트의 Discord나 Slack 채널에 가입하여 커뮤니티와 소통하는 것도 큰 도움이 됩니다.

마치며

오픈소스에 기여하면 여러 가지 장점이 있습니다. 우선 실제 프로젝트 경험을 쌓을 수 있어 포트폴리오로 활용할 수 있습니다. 또한 코드 리뷰를 통해 코딩 스킬을 향상시킬 수 있고, 전 세계 개발자들과 네트워킹할 수 있는 기회가 됩니다.

특히 학생이나 취업준비생에게는 실무 경험을 간접적으로 체험할 수 있는 좋은 기회입니다. 많은 기업들이 채용 시 지원자의 GitHub 프로필과 오픈소스 기여 이력을 확인하기도 합니다.

후기

사실 이번 행사는 준비 시간이 그렇게 길지 못했습니다. 행사 6일전에 내용을 전달받고 다른 행사와도 일정이 겹쳐 바쁘게 준비했던 기억이 있습니다. 길지 않은 시간을 발표하였음에도 들어주신분들의 감사한 피드백 덕분에 정말 좋은 경험이였다고 생각합니다. 이번 행사를 통해 나의 경험이 다른 사람들에게 도움이 된다는 사실을 직접적으로 깨달을 수 있었기에 다음 행사에도 꼭 참여하고 싶다는 생각이 듭니다. 좋은 행사 기획해주시고 또 좋은 기회 주신 GDGoC Gachon 지영인 리드님께 감사드립니다.

오픈소스 기여 깃허브

profile
Multi-Platform Enginner

0개의 댓글