2023. 11. 10. 07:47ㆍ취미로 하는 개발
vite를 사용해보고자 했던 단순한 마음으로 시작했던 오픈소스가 어느덧 1K Stars를 돌파했다.
누군가에게는 사소한 1K일 수 있지만, 1000명이 넘는 개발자들이 내 프로젝트를 '볼 가치가 있다'라고 생각해 준 점이 나에게는 큰 감동으로 다가왔다.
내가 운영 중인 오픈소스는 이전에 블로그에서도 몇 번 소개했던 크롬 익스텐션 제작을 위한 보일러플레이트이다.
크롬 익스텐션을 몇 개 만들면서 개발환경 구성이 어렵고 문서를 찾기 어렵다는 점을 느껴, 그 당시 사용해보고 싶었던 vite를 활용해서 얼기설기 만든 것이 시작이었다.
https://nookpi.tistory.com/140
https://nookpi.tistory.com/147
해당 오픈소스 레포는 2022년 4월 10일에 처음 만들어져서, 지금까지 1년 반이라는 시간 동안 지속적으로 유지보수를 진행하고 있다.
레포를 처음 만든 이후부터 현재까지 운영하는 과정에서 희노애락과 여러 기회들이 많이 생겼다. 열정 넘치게 유지보수를 하던 시기도 있었고, 때로는 살짝 심드렁해져 한 두 달 동안 방치되는 시간도 있었다.
이 과정에서 경험하고 느낀 재밌는 부분들을 주로 소개하려고 한다.
초기 홍보가 중요하다?
vite 관련 오픈소스가 상대적으로 적었던 작년 4월, 보일러 플레이트를 만들고 나서 얼마 지나지 않아 awsome vite에 내 오픈소스 레포를 추가했다. awsome vite는 vite로 만들어진 오픈소스를 리스트업 하고 사람들로 하여금 쉽게 찾을 수 있게 제공하는 곳인데, awsome 시리즈는 언어, 프레임워크, 라이브러리 등 굉장히 많아서 익숙하신 분들이 많을 거라 생각한다.
그 당시 awsome vite 목록에 chrome extension 키워드가 들어간 레포는 내 오픈소스가 유일했으므로 초기 유입에 굉장히 도움이 되었을 것이라고 추측하고 있다.
사실 그 이후 별다른 홍보는 하지 않았지만, 이때 확보한 초기 이용자들(~100 Stars)로 인해 SEO도 더 잘 되었다고 생각한다.
생각보다 기여해 주시는 분들이 많다.
부끄럽게도 나는 스스로의 오픈소스를 운영하기 전부터 지금까지도 다른 오픈소스 생태계에 적극적으로 기여하지 않았다. 물론 실력이 부족한 문제도 있었지만 귀찮음도 한몫을 했다.
사실 애정이나 관심이 없으면 issue를 올리는 것 자체도 쉬운 일이 아니다. 더군다나 PR로 기여를 하기 위해서는 해당 프로젝트를 포크하고, 로컬에서 수정 후 기여하려는 레포의 브랜치를 base로 설정하고 PR을 올리는 과정을 거쳐야 한다.
지난 시간을 돌이켜보면, 이런 귀찮음을 감수하고 오픈소스에 기여를 해주시는 분들이 참 많았던 것 같다.
단순히 issue 생성이나 PR뿐 아니라 타인의 issue를 보고 내 대신 더 좋은 해결방법이나 아예 다른 관점에서의 해결책을 제시해 주시는 분들도 많았는데 이분들이 내게 큰 동기부여가 되었다.
기여는 너무 감사하지만 검토는 잘해야 한다.
초기에는 PR 등의 기여가 발생하면 일단 기여를 해줬다는 사실 자체가 너무 감사해서(?) 믿고 Approve 후 머지를 하는 경향이 있었다.
내가 maintainer로써 책임감을 더 가지고 크로스체크 이후에 머지를 하는 게 맞았는데, 어느 날 버그가 있는 PR을 머지하는 경험을 하고 나서야 정신을 차렸다.
기여의 선한 의도와는 별개로, 프로젝트의 맥락과 구조를 제일 잘 이해하고 있으며 유지보수의 책임이 있는 내가 더욱 꼼꼼히 검토하는 태도가 필요하다는 사실을 깨달았다. (이상한 PR이 가끔 있다.)
Issue와 PR의 비율은 체감상 9:1
실제로는 그렇지 않지만, maintainer인 내가 느끼는 두 기여의 비율은 9:1 정도였다. 많은 사람들은 쉽게 생성할 수 있는 issue를 생성해서 아이디어에 대해 건의하거나 버그를 제보했지만, 발견한 버그나 개선점에 대해 작업 후 PR을 올리는 사람들의 비율은 매우 낮았다.
당연한 일이라는걸 알았지만 가끔 그 부분에서 힘듦을 느꼈던 것 같다.
한창 다른 관심사에 빠져 유지보수를 게을리하다 보니, 동시에 열려있는 issue가 20개 가까이 되던 시기가 있었다.
issue가 쌓이면서 체력과 시간, 그리고 의욕에 한계가 느껴진다는 생각이 들었고 누군가가 도와줬으면 하는 생각이 많이 들던 시기였다. 그 당시 나는 '왜 이 사람들은 이 정도의 이슈라면 스스로 해결하지 않지? 혹은 PR로 직접 해서 제안하지 않지?' 하는 다소 배부른 생각도 가지고 있었다. 사실 issue건 PR이건 기여해 주는 것 자체가 감사한 일인데...
최근에는 좋은 아이디어와 훌륭한 디버깅 능력, 엄청난 적극성으로 도와주시는 분이 생겨서 큰 동기부여가 되고 이런 생각은 더이상 하지 않지만, 한창 동기부여가 안 되던 시기에 시간을 충분히 내지 못해 미안하다던 내게 '나도 시간이 없어. 빨리 해결해줘야 해' 라는 코멘트를 남긴 사람도 있었다. 당시에는 해당 글을 보고 회의감이 심하게 왔었다.
물론 이런 회의감을 지우고 다시 동기부여가 되게끔 도와주는 다른 훌륭한 개발자분들이 있기에 지금도 꾸준히 유지보수를 할 수 있다고 생각한다.
1K Stars가 넘으면 후계자(successor)를 정해 달라는 배너가 노출된다.
1K가 넘어가는 순간, 레포 상단에 후계자를 지정하라는 배너가 노출되었다.
농담이 아니라 정말로 내가 사망하면 사망 진단서(...)등의 서류를 보내 해당 레포를 이어받을 수 있는 후계자를 지정하라는 내용이었다.
버스팩터 관리를 해야 할 정도의 소스라고 github 측에 인정받은 것 같아 재미있었다. :)
재밌는 연락들이 종종 온다.
1년 반 정도 오픈소스를 운영하다 보니, 재미있는 연락들이 종종 오곤 한다.
외국인에게 한글로 감사인사를 받아보기도 하고
너 유지보수 안 하니? 하는 넛지 메일도 받아보고
순수한 감사의 메시지도 받아보고
본인의 오픈소스를 소개해주는 메일도 받아보고
일을 같이 하자는 메일도 받고
다 기록하진 못했지만, 이런 재미있는 메일들이 종종 오곤 한다. 기재하지 않은 메일 중 하나는 실제 오프라인 모임으로도 인연이 이어진 계기가 되기도 했다. 무엇보다도 기쁘고 보람이 느껴지는 반응은 '덕분에 시간을 아꼈다'는 내용인데, 내가 쏟은 시간과 노력이 그 이상 누군가의 시간과 노력을 아끼는 계기가 되었다는 건 참 짜릿한 일인것 같다.
지난 1년 반 동안, 참 특별하고 기억에 남는 경험을 했던 것 같다.
내가 블로그를 쓰기 시작한 계기는 누군가가 적은 문장을 보았기 때문이다.
"한 달에 블로그 글 하나씩 꾸준히 작성하면, 들인 시간과 노력의 제곱 이상으로 나중에 크게 보상받는 순간이 온다."
이 말을 차용해서 나는 이렇게 말해보려고 한다.
"오픈소스에 꾸준히 기여하면, 들인 시간과 노력의 제곱 이상으로 특별한 경험과 보상을 얻을 수 있다."
오픈소스 활동은 개발자 커뮤니티에 보은(?) 하며 동시에 유대감과 보람까지 느낄 수 있는 특별한 활동이라고 생각한다.
이번 주말에 당장 작은 기여라도 시도해보는게 어떨까? 여러분들에게도 적극적으로 권해드리며 이만 글을 마친다.