올해 SW 멤버십 활동을 하면서 오픈소스 프로젝트에 직접 기여하는 경험을 했다. Hugging Face 의 Transformers, 키보드 리매핑 도구인 Kanata, Google 의 Gemini CLI, 그리고 Obsidian 플러그인까지 여러 프로젝트에 참여하면서 코드를 작성하는 것 이상의 많은 것을 배울 수 있었다.
처음 시작은 Transformers 였는데, 대규모 오픈소스를 마주했을 때는 막막한 마음만 들었다. 모듈 하나하나가 크기도 했고, 구조가 복잡하게 얽혀 있어서 무작정 메인 파일부터 읽어 내려갔지만 금방 길을 잃은 기분이 들었다. 결국 documentation 작업부터 시작하며 구조를 익혀 나가는 방식으로 접근했다.
이슈를 읽으면서 코드베이스가 보이기 시작했다. 이슈에는 단순히 ” 안 되는 것 ” 만 적혀 있는 게 아니라 설계 철학과 이전에 시도된 접근들이 녹아 있었다. 하나의 이슈를 제대로 이해하려면 관련된 꼬리 이슈들을 함께 읽어야 했고, 그 과정에서 이슈의 맥락을 따라가며 어떤 모듈이 관여하고 어떤 함수를 건드려야 하는지 추적할 수 있었다. CodeWiki 와 DeepWiki 같은 도구를 활용해 코드베이스 전체 구조를 시각적으로 파악하는 것도 큰 도움이 되었다. 이슈와 코드를 연결 짓는 과정을 반복하다 보니 코드베이스 전체를 바라보는 시야가 조금씩 생겼다.
몇 번의 PR 을 거치면서 깨달은 것은 틀리는 것을 두려워하지 말아야 한다는 점이었다. 처음에는 내가 작성하는 코드가 좋은 코드인지 확신이 없어서 소통 자체에 두려움이 있었다. 하지만 완벽한 코드를 올리려고 머뭇거리기보다, 일단 시도하고 피드백을 받으며 수정해 나가는 것이 훨씬 효과적이라는 걸 알게 되었다. 개발 생태계는 생각보다 따뜻했고, 모르는 것을 솔직하게 물어보면 적극적으로 도움을 주었다.
이런 경험을 바탕으로 유지되지 않던 Obsidian 플러그인을 포크해서 직접 개선하는 도전도 했다. 단순히 기존 기능을 수정하는 것을 넘어서 사용자들이 필요로 하는 기능을 설계하고 구현하는 과정이 즐거웠다. 현재 커뮤니티 플러그인 검토를 기다리고 있는데, 내 코드가 다른 사람들에게 쓰일 수 있다는 점이 와닿았다.(Repo 스타를 단지 2 개 받았는데 그 2 개가 굉장히 의욕을 끌어올린다ㅎㅎ)
Summary
Task Status PRs Completed Auto-Note-Mover-Redesign-and-Add-Fuction ✅ Completed Fork 2025-11-25 gemini-cli-issue-search-and-solve ✅ Completed 1 PR 2025-11-30 Kanata-issue-search-and-solve ✅ Completed 3 PRs 2025-11-30 LangChain-issue-search-and-solver ❌ Abandon - - Total: 4 PRs submitted, 3/4 tasks completed
Link to original
돌아보면 AI 도구 덕분에 대규모 코드베이스 진입장벽이 확실히 낮아졌다. 복잡한 모듈 구조를 파악하거나 이슈의 맥락을 빠르게 이해하는 데 AI 의 도움이 컸다. 하지만 동시에 AI 의 도움을 받아 작성한 코드가 진짜 ” 내 기여 ” 라고 할 수 있을지에 대한 걱정이 동반된다.
결국 중요한 건 검증이라고 생각한다. 첫째, 내가 이 코드를 정말 이해하고 있는가. AI 가 설명해준 내용을 내가 다시 설명할 수 있는가. 둘째, 내가 작성한 코드가 실제로 올바르게 동작하는가. AI 가 생성한 코드를 그대로 쓰는 게 아니라 검증하고 책임질 수 있는가. 이 두 가지 검증 시스템을 어떻게 만들어갈지 고민 중이다. 2026 년 1 분기에 이런 질문에 대한 나름의 답을 생각해보자.