오픈소스 특강(feat. 당근마켓 SRE 염근철)

서론

황금 같은 토요일, 주말에 별다른 계획이 없었던 나는 항해 백엔드 스터디에서 연다는 오픈소스에 대한 특강 소식을 듣고, 강남으로 발걸음을 옮겼다. 주니어 개발자로서 개발의 세계에 막 발을 들여놓은 나에게 오픈소스는 남이 만든 코드를 무료로 쓸 수 있는 것 정도로만 인식되어 있었다. 오픈소스 기여는 마치 개발의 정점에 선 사람들의 전유물처럼 느껴져서, 특강에 대한 기대는 크지 않았다. ‘그저 그런 세미나겠지’하는 생각으로 가벼운 마음으로 참석했다.

그러나 특강을 듣고 나서는 사정이 완전히 달라졌다. 오픈소스에 기여하는 방법과 그 과정에서 얻을 수 있는 이점, 개발자로서 성장할 수 있는 기회는 물론, 자신의 브랜딩까지 구축할 수 있는 방법에 대해 배우며, 오픈소스 기여에 대한 막연했던 두려움이 ‘한 번 해보면 좋겠다’는 흥미로 변했다.

기술이 빠르게 발전하는 현재, 오픈소스 커뮤니티의 역할은 점점 더 중요해지고 있다. 개발자로서 한 단계 더 성장하고자 하는 욕구를 가진 나에게, 이 커뮤니티에 기여하는 것이 가지는 의미와 그 과정에서 얻을 수 있는 것들을 알게 된 것은 매우 의미 있는 경험이었다. 이번 특강을 통해 얻은 깊은 인사이트를 바탕으로, 오픈소스 기여에 관한 세미나의 내용을 공유하고자 한다.

오픈소스 기여자로서 성장

오픈소스 기여가 단기적으로는 수익과 직접적인 연관이 없을 수 있으나, 장기적으로는 개인의 기술적 성장, 네트워킹 확장, 심지어 커리어 기회까지 넓힐 수 있는 장점을 가진다.

  • 대형 오픈 소스 프로젝트 기여 후 자체 프로젝트 운영: 오픈소스에 기여한 경험은 자신의 프로젝트를 시작하고 운영하는 데 큰 도움이 된다. 대형 프로젝트에 기여하면서 프로젝트의 체계적인 구조와 설계를 배우게 되며, 이러한 경험은 자체 오픈 소스 프로젝트를 개발할 때 매우 유용하다. 이 과정은 커리어 발전에 큰 이점을 제공한다.
  • 기술적 문제 해결: 오픈소스 프로젝트에 기여하면서 실제로 직면할 수 있는 다양한 기술적 문제를 해결하는 과정은 개발자의 문제 해결 능력을 크게 향상시킨다. 실제 프로젝트에서 발생하는 이슈를 직접 해결하면서 얻는 경험은 이론적 지식만으로는 얻을 수 없는 실질적인 기술 역량을 만들 수 있다. 또한, 다른 개발자들과의 협업을 통해 다양한 해결 방법과 최적화 기술을 배울 수 있어, 개발자로서의 전문성을 한층 더 강화할 수 있다.
  • 개발자로서의 시장가치 향상: 오픈소스 프로젝트에 기여하는 것은 개발자의 포트폴리오를 강화하는 데 큰 도움이 된다. 프로젝트에 기여한 기록은 개발자의 기술적 역량과 협업 능력을 입증하는 강력한 증거가 되며, 이는 채용 과정에서 매우 긍정적인 영향을 준다. 오픈소스 커뮤니티 내에서의 활발한 활동은 네트워킹 기회를 제공하며, 이는 새로운 커리어 기회로 이어질 수 있다. 또한, 오픈소스 프로젝트에서의 성공적인 기여 경험은 개발자로서의 브랜딩을 강화하고, 전문 분야에서 인정받는 데 중요한 역할을 한다.

오픈소스 기여의 첫 발걸음

처음엔 오픈소스 기여가 큰 기능 추가나 아직 아무도 발견하지 못한 새로운 해결책을 제공하는 것이라 여겼다. 그러나 실제로 오픈소스 기여는 코드 수정뿐만 아니라 문서 보완, 버그 신고, 피드백 제공 등 다양한 방식으로 가능하다는 것을 알게 되었다. 이런 다양한 기여 방법은 누구나 자신의 능력과 상황에 맞춰 프로젝트에 참여할 수 있게 해준다.

또한, 오픈소스 프로젝트에 참여할 때 모든 것을 알고 시작할 필요는 없다. 심지어 프로젝트의 Maintainer들도 때때로 전체 구조를 완전히 파악하지 못하는 경우가 있다. 이는 문서 개선 같은 소소한 기여로 시작해도 충분하다는 의미로, 기여자들에게 부담 없이 참여할 수 있는 여지를 제공한다.

오픈소스 기여 과정의 이해

오픈소스 프로젝트에 기여하는 과정은 기본적으로 Pull Request(PR)를 통해 시작된다. 기여자가 제안한 코드 변경사항은 프로젝트의 승인권자(Maintainer 또는 Collaborator)에 의해 리뷰되며, 이때 구체적인 피드백을 받게 된다. 프로젝트 내에서의 권한 구조는 기여 경험에 따라 달라지며, 이는 프로젝트에 한 번이라도 기여를 한 Contributor, 프로젝트에 속한 Member, 그리고 프로젝트 고인물 Collaborator로 이어진다.

오픈소스 커뮤니티는 프로젝트에 기여한 사람들이 도움을 주고 받는 봉사의 장이기도 하다. 프로젝트에 긍정적인 기여를 하는 경우, 다른 참여자들이 지원을 아끼지 않는다. 이러한 커뮤니케이션은 슬랙 채널 같은 플랫폼에서 활발히 이루어지며, 정기적인 줌 미팅을 통해 더 깊은 논의가 진행될 수도 있다.

이런 체계적인 참여 과정은 기여자들에게 네트워킹의 기회를 제공하며, 혼자서는 어려울 수 있는 성장의 과정에서 경험 많은 개발자들로부터 도움을 받을 수 있는 소중한 기회가 된다.

오픈소스 프로젝트 선정 가이드

오픈소스 프로젝트에 처음 기여하고자 할 때, 어떤 프로젝트를 선택해야 할지 결정하는 것도 일이다. 사용 중인 오픈소스에서 버그를 발견하고 이를 수정하는 과정이 자연스러운 시작이 될 수 있지만, 그런 경험이 아직 없다면 몇 가지 기준을 참고하여 프로젝트를 선정하는 것이 좋다.

  • good first issue 라벨 활용: 많은 오픈소스 프로젝트들이 신규 기여자를 위해 good first issue 라벨을 사용해 이슈를 표시한다. 이 라벨이 붙은 이슈들은 오픈소스 기여의 첫 시작점으로 이상적이며 문제 해결을 위한 가이드가 나와있는 경우도 있다고 한다.
  • 프로젝트 활성도 체크: 프로젝트의 최신 활동 상태, 이슈에 대한 응답 속도, Pull Request 처리 속도 등을 검토해 활성도가 높은 프로젝트를 선택하시는 것이 좋다. 활성도가 높은 프로젝트는 처리 속도가 빠르고, 필요한 피드백을 얻기 때문이다.

오픈소스 기여를 위한 도구

오픈소스 프로젝트에 기여하는 과정을 용이하게 만드는 몇 가지 도구들이 있다. 이 도구들은 개발 환경 설정부터 코드 품질 관리, 프로젝트 관리에 이르기까지 다양한 단계에서 도움을 준다.

  • Dev Container는 복잡한 개발 환경 설정을 간소화한다. 특히 오픈소스 프로젝트는 다양한 도구와 라이브러리 버전을 요구하는데, Dev Container를 활용하면 이러한 환경을 빠르고 쉽게 구성할 수 있다. 이는 시간을 절약할 뿐만 아니라, 기여 의욕을 잃지 않게 하는 데에도 큰 도움이 된다.
  • Git Hook을 사용하면 커밋이나 푸시를 실행하기 전에 코드 검사를 자동으로 실행할 수 있다. 이를 통해 코드를 병합하기 전에 발생할 수 있는 크리티컬한 에러를 사전에 발견하고, 코드의 품질을 유지할 수 있다.
  • Stale Bot / DCO Bot은 프로젝트 관리를 자동화한다. 이 봇들은 오래된 이슈나 Pull Request를 체계적으로 관리하고, 기여자가 개발자 인증서(DCO)를 준수하도록 유도한다. 이는 프로젝트의 품질과 법적 준수 사항을 유지하는 데 도움을 준다.

오픈소스 플레이그라운드와 아카데미

  • 오픈소스 플레이그라운드2023 오픈소스 컨트리뷰션 아카데미는 신규 기여자들이 오픈소스 프로젝트에 참여해 보고, 실제 기여 과정을 경험할 수 있는 좋은 시작점이다. 멘토-멘티가 페어링을 이루어 실제로 오픈소스 프로젝트에 기여함으로써 성장을 이루고 추가적인 상금까지 받아볼 수 있다.
  • Hacktoberfest는 매년 10월에 열리는 이벤트로, 오픈소스 기여를 장려하며, 기여한 사람들에게는 작은 선물을 제공한다.

마무리

오픈소스 특강에 참여하면서 얻은 귀중한 인사이트는 오픈소스 기여가 개발자로서의 성장, 네트워킹의 확장, 그리고 커리어 기회의 확대에 얼마나 중요한 역할을 하는지였다. 처음에는 오픈소스 기여가 복잡하고 어려운 일로만 여겨졌지만, 다양한 기여 방법과 시작을 위해 전부 알 필요가 없다는 사실을 알게 되면서, 조금더 친근하게 오픈소스를 대할 수 있을 것 같다. 또한, 오픈소스 프로젝트에 참여하며 얻는 경험은 개발자의 기술적 문제 해결 능력을 높인다는 점과 포트폴리오를 강화해 개발자로서의 시장 가치를 상승시키는 데 큰 도움이 된다는 걸 깨달았다.

특강을 통해 배운 지식과 경험을 바탕으로 오픈소스 기여를 시작하는 것은 개발자로서 한층 더 성장할 수 있는 좋은 기회임을 확신하게 되었다. 이를 통해 기술적 역량을 확장하고, 개발자 커뮤니티와의 교류를 통해 소통을 강화하며, 커리어를 더욱 발전시킬 수 있는 가능성이 열렸다는 것에 큰 기대감을 가지게 되었다. 이제는 적극적으로 기여할 프로젝트를 찾아 나서는 것으로, 도전을 시작하고자 한다!

오픈소스 특강(feat. 당근마켓 SRE 염근철)

One thought on “오픈소스 특강(feat. 당근마켓 SRE 염근철)

댓글 남기기

Scroll to top