목차


도움을 구하는 입장에서 벗어나 주는 입장으로

다른 사람과 협업하는 것으로 혼자 하는 것보다 많은 것을 배울 수 있다는 것을 이번에 채팅 프로그램을 작성하면서 알 수 있었기 때문에 제 기존의 프로젝트에 팀을 구성해보려는 생각을 했지만, 다른 대단한 프로젝트들에 비해 매력적으로 보이지도 않고 홍보하는 것이 용이하지 않아 쉽지 않았습니다. 그래서 반대로 다른 사람의 프로젝트에 참여해보면 어떨까 싶어 고민하던 와중 다음 글을 읽게 됐습니다.

해당 팁을 받아들여 이후 약 3일간 github에서 good first issue를 탐색하고 연락을 취하는 과정을 통해 총 3개의 다른 프로젝트에서 issue에 참가해서 오픈소스에 기여하는 경험하고 있는 중입니다. 해당 프로젝트는 각각 vizro, tagsy-discord, BTC-ETF-Tracker입니다. good first issue라는 라벨을 통해 다른 사람들의 참여에 대해 생각할 정도로 관리를 신경쓰는 프로젝트들이었기 때문에 잠깐의 경험으로도 재밌는 것을 배울 수 있었습니다.


회사에서 스폰서하고 모든 것이 잘 갖춰져 있는 vizro

vizro는 mckinsey에서 개발한 데이터 시각화 어플리케이션을 만들 때 사용하는 툴킷으로 주로 python을 사용해서 작성돼 있습니다. 프로젝트에 참여하게 된 issue는 이것이었습니다. 이슈의 내용은 현재 작성하고 있는 문서에 대한 링크들이 자신들이 규칙으로 정해놓은 것들을 제대로 따르면서 이용하는 사람이 편하게 읽을 수 있도록 정리하는 것이었습니다.

해당 프로젝트는 hatch라는 CI 솔루션을 채용한 잘 만들어진 시스템을 갖추고 있었기 때문에, 공식 문서를 잠깐 읽는 것만으로 한번에 가상환경을 개발할 수 있는 형태로 세팅할 수 있는 것이 굉장히 놀라웠습니다. 덕분에 저는 단 한 번의 코멘트로 된 조언을 받고도 해당 프로젝트에 기여를 시작할 수 있었습니다. 또한 곳곳에 사용하기 편하게 배치된 문서를 읽으면서 오픈 소스에 참여하는 사람이 편하게 느끼도록 돕기 위해 어떤 부분들을 고려해야하는 지에 대해 배울 수 있었습니다.


초창기 가상환경 구축이 인상적인 tagsy-discord

tagsy-discord는 discord에서 사용할 수 있는 태그를 통한 key-value 저장소를 만들어주는 봇입니다. 해당 프로젝트에 참여하게 된 issue는 이것이었습니다. 이슈의 내용은 author에게서 모든 tag를 가져오는 기능을 추가하는 것이었습니다.

이 프로젝트는 주로 venv, pip requirements를 통해 가상환경을 구축해서 개발 환경을 관리했고 commit message를 관리하기 위한 방법으로 contribution guide를 새로 만들어두고, pre-commit hooks란 것을 만들어서 코딩 스타일을 맞추는 것을 강제한 것이 인상 깊었습니다. 차후에 다른 사람들과 협업을 하기 위해 오픈소스 프로젝트를 만들 때 이런 것들을 참고해야겠다는 생각이 들었습니다.


아직 협업을 위한 노력이 더 필요해보이는 BTC-ETF-Tracker

BTC-ETF-Tracker는 비트코인으로 구성한 ETF를 추적하는 프로젝트입니다. 해당 프로젝트에 참여하게 된 issue는 이것이었습니다. 이슈의 내용은 sqlite에서 데이터를 저장할 때 데이터가 rounded 되지 않고 소수점이 일정하지 않게 저장되는 것이었습니다.

세 프로젝트 중에는 가장 모자란 점이 많았고 초창기의 것이었기 때문에 아쉬운 부분도 많았지만, 그렇기 때문에 제가 느낄때 가장 우선이었던 250여줄의 DRY 원칙을 위배하는 raw sql로 작성된 테이블 생성 python 스크립트를 수정하는 것이었습니다. 당분간은 리팩토링 위주로 정리를 하고 프로젝트에 기여를 시작하게 되지 않을까 생각 중입니다.


마치며

오픈 소스에 기여하는 것이 막연하게 어렵게만 느껴졌는데 이번 일을 계기로 도움을 원하는 곳은 많고, 동시에 도움을 받기 위해서도 굉장히 많은 노력을 해야한다는 것을 알 수 있었습니다. 그리고 열정적으로 활동하는 사람들과 교류를 하면서 새로운 것을 배울 수 기회를 얻고 싶다는, 제가 기존에 원했던 목표를 달성할 수 있어서 기쁘게 생각합니다. 모든 프로젝트를 꼭 끝까지 완수할 때까지 도전하지는 않겠지만, 꾸준히 여러 프로젝트에 참여하면서 다양한 경험을 쌓아보고 싶습니다.


2024-04-17
다음 글: re: 제로부터 시작하는 기술 블로그(1) → 카테고리로 돌아가기 ↩