🎓 오픈소스 컨트리뷰션 아카데미란?
오픈소스에 대한 진입장벽을 허물고 선배 개발자와 함께 서로의 '컨트리뷰톤'을 응원하며, 참여•오픈•공유•협업하는 오픈소스 문화를 직접 경험할 수 있는 멘토링 프로그램이다.
체험형/참여형 프로그램으로 나뉘며, 참여형 프로그램은 오픈소스 기본 역량을 갖춘 예비•초급 개발자를 대상으로, 멘토와 함께 다양한 국내•외 오픈소스 프로젝트에 직접 참여 및 기여할 수 있다.
❓ 지원하게 된 계기
평소에 오픈소스에 대해 막연한 두려움을 가지고 있었던 것 같다. 왠지 모르게 무척 어렵고, 고수들만의 영역처럼 느껴졌기 때문이다…😂
그러던 중, 작년에 참여했던 대학생 IT경영학회 큐시즘의 obyb 행사에서 어떤 분이 오픈소스에 컨트리뷰트하셨다는 이야기를 들었다. 작은 기여라도 충분히 컨트리뷰터가 될 수 있으니 한 번 도전해보라는 조언을 듣고, 나도 이번 기회에 오픈소스에 대한 두려움을 떨쳐보고자 참여형에 지원하게 되었다.
이번 프로그램에는 총 15개의 프로젝트가 있었고, 나는 아래 기준으로 지원할 프로젝트를 선택했다.
- 내가 정말 의미 있는 기여를 할 수 있는 프로젝트인가?
- FE 기술 스택을 사용하는가?
난 위 기준에 맞춰 내가 자주 사용하는 TypeScript를 사용하는 Githru-VSCode-Ext에 지원했다. Githru는 Git 저장소의 히스토리를 시각화해주는 VSCode 확장 프로그램이다. 모집 마감일이 기말고사 전날이라 지원서를 꼼꼼히 점검하지는 못했는데, 다행히도 합격할 수 있었다!

🚀 행사 소개

2025 OSSCA 발대식은 한국과학기술회관 국제회의장에서 7월 12일(토) 오후 1시부터 5시까지 진행되었으며, 3시까지는 모든 팀이 모여 공식 발대식을 하고, 이후에는 각 팀별로 개별 발대식을 진행했다.
발대식 순서는 아래와 같다.
- 주관기관 환영사
- Open Stack Global Maintainer 초청 강연
- 오픈소스 컨트리뷰션 아카데미 소개
- 오픈소스 컨트리뷰션 아카데미란?
- 프로그램 및 참여형 프로젝트 15팀 소개
- 참여형 프로그램 세부일정 안내
- 멘토&멘티 활동 의무사항 및 지원사항 안내
- Special Guest 초청 강연 (방진호 강연자님)
- 단체 기념 촬영
- 팀별 발대식 진행 및 기념 촬영
나는 특히 방진호 강연자님의 강연이 기억에 남아 따로 기록해두었다. 오픈소스 개발에만 국한되지 않고, 평소 개발을 할 때도 아래와 같은 내용을 마음에 잘 새겨두면 좋을 것 같다.
방진호 강연자님의 10가지 조언
1. 목표 설정
- 3.5개월동안 성공적으로 마치기 위해서, 구체적이고 달성 가능한 목표 세우기
- x) 3개월동안 열심히 해야지, 이번엔 공부 좀 하고 내년에 기여해야지
- o) 3개월동안 매주 패치 2개씩 올려야지, 1개월은 쉬운 패치 10개, 2개월은 어려운 패치 5개, 7월 31일까지는 첫 패치를 완료해야지
2. 오픈소스 개발 프로세스
- Git은 회사나 학교에서도 널리 사용되지만, 오픈소스에서 사용하는 방식과는 미묘한 차이가 있다.
- Git 사용법부터 패치 작성, 코드 리뷰, 이슈 관리 등 오픈소스 개발 프로세스에 익숙해지기
- 검색이나 LLM보다 공식 문서를 정독하기
- 이슈트래커, 패치 관리, 코드 리뷰, 브랜치 관리 등 정책과 프로세스 이해하기
- 코딩 스타일 가이드를 직접 읽어보기 (lint나 formatter를 사용하더라도)
3. 작은 문제부터 반복적으로 해결하기
- 오픈소스 세계에서 의미있는 기여를 하기는 쉽지 않음
- 방대한 코드 베이스와 빠른 변경
- 책, 강의, 검색으로 지식 습득이 어려움 -> 코드 읽기의 중요성
- 학교/회사와는 달리 자발적인 참여를 통한 맥락 파악이 중요
- 기술적 어려움보다 환경적 어려움
- 오탈자 수정, 문서 기여 등도 충분히 훌륭함 (Good First Issue 활용)
- Trivial Patch를 반복해서 얻을 수 있는 것들
- 오픈소스 개발 프로세스 및 정책에 대한 학습
- 오픈소스에 꾸준히 기여하기 위한 습관
4. 소통하기 쉬운 코드를 짜기
- 오픈소스 개발자에게 가장 중요한 의사소통 수단은 코드 그 자체이다
- 즉, 가독성이 좋은 코드를 짜라
- 참여하는 프로젝트의 정해진 룰을 최대한 따르자
- lint, formatter 등 도구를 적극 활용하자
- 지구 반대편 사람과 협업하더라도 한 사람이 짠 것 같은 일관성을 유지하자
- 내 기준이 아닌 남을 배려하는 코드를 작성하자
5. 커밋 메세지를 코드의 일부로 취급하기
- 코드 변경에 대한 이유를 기록하고 관리할 수 있는 유일한 방법
- 디버깅, 코드 리뷰, 히스토리/맥락 파악, 소통 등 협업에 아주 큰 도움
- 프로젝트의 역사와 맥락을 담고 있는 일종의 설계 문서
- 과거에는 CHANGELOG 파일을 작성, 커밋 메세지는 코드의 일부
- 커밋 메세지에 코드 작성만큼이나 공을 들이기
- 어떻게(How)보다는 무엇(What)과 왜(Why)를 작성
- 제목은 전체 내용을 함축적으로 요약해야 함
- 커밋 메세지는 내 기준이 아니라 코드를 기준으로 작성
6. 리뷰어를 배려하는 패치를 작성하기
- 코드 리뷰는 검사받는 과정이 아니라 더 나은 코드를 위한 협업 과정, 상호 작용
- 리뷰어 관점에서 생각해보기
- 인지 부하) 리뷰어는 당신의 코드를 모름, 방대한 코드는 이해하기 어려움
- 맥락 전환) 리뷰를 위한 컨텍스트 스위칭 비용은 생각보다 큰 비용
- 책임감과 부담감) 버그를 놓치면 안 된다는 심리적 압박감이 있음
- 더 작은 패치 작성하기, 사전 점검 충분히 하기, 커밋 메세지 잘 작성하기
- 작은 패치로 분할했을 때 장점
- 빠르고 꼼꼼한 검토 가능
- 전반적인 버그 발생 가능성 감소
- 설계가 더 쉬워지고 방향이 잘못되더라도 낭비되는 작업량이 줄어듦
- 문제가 발생했을 때 Revert가 간단해짐
7. 모든 변경 사항에 대해 반드시 관련 테스트를 포함하기
- 회사에서도 테스트는 중요하지만, 오픈소스 세계에서 테스트는 찐으로 중요하다
- 테스트는 지구 반대편 기여자를 신뢰할 수 있게 하는 힘
- 테스트는 구현 코드가 어떻게 동작하는지를 설명하는 명세서
- 코드 변경시 의도치 않은 버그를 방지할 수 있는 안전망 역할
- QA 대신 품질을 보증
8. 멘토님 활용하기
9. 시간 투자의 필요성
- 오픈소스에 기여하려면 생각보다 많은 시간을 할애해야 한다
- 일주일에 4일은 최소 4시간 이상 투자하기
10. 끝이 아니라 다시 시작
- 컨트리뷰션 아카데미 종료 = 오픈소스 개발자 지망생 전멸의 시간 (ㅋㅋㅋㅋ)
- 이때가 찐 오픈소스 개발자 탄생의 시간
- 컨트리뷰션 아카데미가 끝나더라도 계속해서 기여할 수 있도록 하기
🥳 마무리

이전에 OSSCA에 참여했던 친구의 말로는 현직자 분들이 굉장히 많이 참여한다고 들었는데, 우리 팀은 학생과 취준생 비율이 조금 더 높은 편이었다. 사실 나는 아직 초과학기가 남아있는 대학생이라 개발적으로도, 경험적으로도 부족한 부분이 많아 걱정이 된다. 그래도 멘토님은 물론이고, 다른 멘티 분들도 모두 갓생을 사는 멋진 분들 같아 이것저것 배울 점이 많을 것 같다.
대학생이 가진 가장 큰 강점은 열정이라고 생각한다! 나도 이번 4개월 동안 후회 없이 열심히 참여해 꼭 컨트리뷰트할 수 있도록 노력할 것이다. 파이팅! 💪