2025년 7월 8일 — Open Source Contributor

헤비 컨트리뷰터 도전기 1. 컨트리뷰터가 되다

(TMI) 왜 하는가?

무더운 여름을 맞이해, 나는 조금 자유롭게 사용할 수 있는 시간이 많아졌다.

어느 날 한 영상을 봤는데, 천재 개발자들은 취미가 ‘코딩 & 오픈소스 생태계에 기여하기’ 라더라

나에게는 그런 취미가 없는데,,, 나는 훌륭한 개발자나 연구자는 못 되는 건가?

출처: meme generator

나는 AutoRAG라는 오픈소스를 만들고 예상했던 것 보다 훨씬 많은 감사한 관심과 사랑을 받았다

AutoRAG는 어느덧 4.1K 깃허브 스타를 달성했고, 심지어 오픈소스 개발자 대회에서 대상도 받았다…

해커 정신으로 오픈소스 생태계에 기여하는 건 좋고 충분히 몰입했지만, 쉬는 시간까지 사용하는 취미 보다는 일에 가까운 느낌이었다

그럼에도 오픈소스 생태계에 기여하는 취미가 없는 건 내가 코딩을 별로 안 좋아해서인가?

그건 아니라고 생각했다.

왜냐하면 바이브 코딩이 엄청난 유행을 하고 있는 현재에도 나는 여전히 한줄 한줄 코딩하는 걸 즐기기 떄문이다.

아직도 한줄 한줄 코딩이 효율적인지는 잘 모르겠지만(요즘 Claude Code 후기를 보면 아닌 것 같다), 나는 여전히 낑낑 거리다 테스트 코드에 통과했을 때의 쾌감이 좋다 ㅋㅋㅎㅎ

그래서 오픈소스 생태계에서 뛰어노는 취미가 없는 건, 그냥 다른 프로젝트에 기여해본 경험이 없어서라는 결론을 내렸다

기타를 못 치는 사람의 취미가 기타일 수는 없지 않는가?

그래서 하나의 오픈소스를 잡고, 여름 동안 헤비 컨트리뷰터가 되어봐야겠다고 생각했다

출처: meme generator

한 두달정도 해보면, 어느정도 느낌이 오지 않을까?

오픈 소스 생태계에서 뛰어노는 고트 개발자들은 어떤 포인트가 재밌는걸까?

그들은 뭐가 재밌어서 쉬는 시간에도 코딩을 하고 기여를 할까?

그들도 테스트 코드 통과 하는 게 재밌어서 인가? 아니면 약간 도장깨기 하는 심리일까?

그래서 헤비 컨트리뷰터가 되는 여정을 시작했다


물론 위와 같은 내적인 동기만으로 시작한 것은 아니다

컨트리뷰터라는 스펙 역시 탐나고, 헤비 컨트리뷰터가 되어 Job Interview를 보고 스카우트 됐다는 여러 후기들은 나의 충분한 외적인 동기가 되어주었다

뭐부터 하지?

가장 처음으로는 나의 놀이터를 정했다. 어떤 프로젝트의 컨트리뷰터가 될까?

그냥 가장 최근에 관심있게 보고있던 레포를 정했다

https://bobb-ai-brain.vercel.app/nemo-one 로도 소개했던 NeMo-Guardrails로 정했다


여기까지는 아주 순조로웠다

이 다음부터가 진짜 문제였다

출처: 무한도전

AutoRAG를 만들 때에는 밑바닥부터 만들었기 때문에, 구조를 잡고 하나씩 채워나가기 시작했었다

그래서, 처음 시작했을 때부터 처리해야 할 이슈와 기능들은 산더미처럼 쌓여있었고,

그냥 시간이 나는 대로 그 기능들을 개발하고 이슈들을 쳐내고 Docs를 쓰면 되는 일이었다

하지만, 다른 사람들이 잘 가꿔둔 레포에 기여를 하는 건 다른 차원의 문제였다.

일단 이 오픈소스에 대한 이해도가 낮다 보니까 이슈들을 전부 읽어봐도, 무슨 소리 하는 건지 이해할 수 있는 이슈가 거의 없었다.

이렇게 태그가 붙어있는 이슈들은 있었지만, 이제 겨우 Tutorial 정도를 뗀 나에게 이슈에서 뭘 말하는 건지도 겨우 알아들을 수 있는 정도였다.

그리고 두려움에 떨기 시작했다 🥶

출처: 무한도전

시작이 반이라고 하지만 시작하고 나서 뭘 해야할 지 아무것도 감이 잡히지 않았다

팀 슬랙에도 큰소리를 쳐놨기 때문에, 이제 도로 무를 수도 없었다..

하루 정도는 그냥 레포에 있는 이슈랑 기존 PR들을 그냥 동태눈 뜨고 읽기만 했다

첫 날에 확실히 알게 된 것은 이 레포의 메인테이너가 누구인지 뿐이었다 😅


전략 1. Docs를 공략하기

내가 AutoRAG를 만들면서 가장 어려웠던 것, 그리고 외부 컨트리뷰터들의 PR이 가장 감사했던 곳은 어디였을까?

바로 Docs를 수정하는 PR이었다

왜냐하면 메인테이너 입장에서 Docs를 쓰는 게 어려웠던 이유는 바로,

내가 만들었으니까 난 다 알고 있는데, 어떻게 모르는 사람의 입장에서 Docs를 쓰지?’ 였다

출처: meme generator

그래서 컨트리뷰터 못 해도 직접 **한국어 튜토리얼**을 만든다는 마음으로, 아무것도 모르는 사람의 시각에서 Docs를 열심히 읽기 시작했다.

역시나 개발자들이 쓴 문서답게(?) 아무것도 모르는 사람이 읽기에는 조금 어려운 내용이 많았다.

나는 RAG에 적용해서 NeMo-Guardrails를 사용하고 싶었기 때문에, 이 부분의 튜토리얼 글을 열심히 적고 있었다.

그러다가 뭔가 이상한 점을 찾았다. 심봤다 !!!

찾았다!!

너무 자세하게 적으면 지루할 것 같아서 내용은 간단하게만 적고, 나의 상태를 위주로 적어보려고 한다

내가 찾은 건 Docs에 예제로 가는 link가 안 걸려 있는 것이었다.

그래서 Docs에서 더 자세한 내용은 Examples를 check하라고 하는데, 도무지 Example이 어디에 있는 지 찾을 수가 없었다

그래서 원본 README를 읽어보니 거기에는 또 뭔가 링크가 걸려 있었다

링크 경로가 상대경로로 걸려있어서 Docs에서는 확인할 수 없었던 것이다.

그래서 절대 경로로 바꾸기만 하면 되겠다는 생각으로 조급하던 나의 마음에 한줄기 빛이 생겼다

출처: 무한도전

출처: 무한도전

고작 Docs에서 오류 1줄 찾은거지만, 인류 역사를 바꿀 버그를 찾은 사람처럼 심장이 쿵쾅거리기 시작했다

이 때 혼자 공유오피스에 있었는데, 갑자기 주변에 있는 사람들이 나보다 PR 먼저 날리면 어떡하지 라는 생각에 화장실도 못 가고, 열심히 PR 날리기 전 읽어보라는 Contribution Guide를 읽기 시작했다.

출처: meme generator

그리고 PR을 날리고 주말을 기다려 월요일에 리뷰를 받은 뒤, 첫 기여에 성공했다!


첫 컨트리뷰터가 되었지만, 이 다음부터 또 뭘 해야 하는 지는 아직 모른다.

계속 맨땅에 헤딩하며 이것저것 도전해볼 예정이다.

빠른 시일 내에 뭔가를 찾아 이슈를 해결해 두 번째 기여를 한 뒤, 블로그 글을 또 신나게 쓰고 있기를 기대하며 글을 마친다 😄