오픈소스 컨트리뷰톤은 진입장벽이 높게 느껴지는 오픈소스 기여를 부담없이 시작해보라는 취지로 Open Up이라는 기관에서 운영하는 프로그램이다. 멘티로 선정되면 멘토(=maintainer) 분들과 직접 소통하면서 오픈소스에 직접 기여해볼 기회가 생긴다.

 

2022 오픈소스 컨트리뷰션 아카데미 멘티모집 (~6.21.) - 공개SW 포털

참가신청 접수 바로가기 👉👉👉 https://open-up-kr.typeform.com/22-ossca-apply 참가신청 접수 바로가기 👉👉👉 https://open-up-kr....

www.oss.kr

지원 과정

1지망, 2지망까지 선택할수 있고, 자기소개서만 내면 된다. 멘토님들이 직접 지원서를 읽고 멘티를 선발한다. 

모든 프로젝트에 3개의 공통질문이 있고 프로젝트 별로 1~2개의 추가 질문이 있는 경우도 있었다.

내가 생각하는 합격 팁은 크게 두가지다. (멘토님마다 선발 기준이 완전히 다르기 때문에 정답은 없다.)

  1. 깃허브 관리하기 - 공허한 계정 보다는 잔디가 어느정도 심어져 있어서 Git을 사용해본 경험을 어필하면 좋은 인상을 주지 않을까?
  2. 지원할 프로젝트 직접 써보고 느낀 점 적기 - 자신이 느낀게 얼마나 훌륭한 인사이트냐와 상관없이 일단 써봤다는 사실 자체만으로도 합격 가능성이 확 올라갈듯.

나는 1지망으로 지원한 Euphony라는 팀에 멘티로 선발이 되었다. Euphony는 C++ 기반 통신 라이브러리이다. 사람 귀에 안들리는 주파수 대역을 아용해 스피커랑 마이커가 있는 장치간 통신이 가능하다. 나는 평상시 접해보지 못한 통신이라는 분야를 배워보고 싶어서 Euphony에 지원했다.

발대식

발대식은 오프라인으로 진행했다. 가서 OT를 듣고, 프로젝트 소개를 듣고, 팀원분들과 자기소개 & 아이스브레이킹이 있었다.

굿즈랑 디저트, 샌드위치를 받았다. 굿즈 구성은 충전기, 케이블 케이스, 손풍기, 에코백(안주머니도 있고 튼튼함)였다.

보통 개발 행사 굿즈는 받으면 기분은 좋지만 실용성이 떨어지는 경우가 많은데 알짜 굿즈만 있어서 좋았다.

활동은 챌린지 1달 + 마스터 2달로 나눠서 진행하고, 추가적인 혜택으로 활동 기간동안 커피 값이나 공간 지원을 받을 수 있다.

챌린지 기간

챌린지 기간은 워밍업 느낌이다. 팀원들끼리 친해지고 프로젝트에 대한 이해도를 높이는 기간.

우리 팀은 이 기간 동안 6개의 팀으로 나눠져서 Euphony 라이브러리를 활용한 샘플 프로젝트를 개발했다. (이때 시간이 더 걸리더라도 반드시 테스트 코드를 작성하라는 rule이 있었다.)

그 과정에서 멘토님이 Euphony에 기여할 수 있는 부분을 issue로 계속 만들어 올려주시는데, 팀 또는 개인 단위로 원하는 이슈를 assign 받고 오픈소스에 기여하는 경험을 할 수 있었다.

성과

  • Euphony를 빌드하면서 최신 패치 내역이 README에 반영이 안된게 있길래 1건의 문서 기여, Gradle 최신 버전에서는 바로 빌드가 안되길래 원인을 찾다가 1건의 지식공유를 할 수 있었다.
  • 첫주에 Github 심화 사용법에 대한 세미나가 있었다. 이미 아는 내용도 있었지만 git squash 등 처음 알게된 명령어도 있었다.
  • 마지막 주에 팀별로 SOLID 원칙과 선언형 프로그래밍에 대한 간단한 세미나를 진행했다.
  • 3주 동안 Waple이라는 샘플앱을 팀원 분들과 함께 개발했다.
    • StateFlow나 DataStore에 대한 테스트 코드를 처음 작성해봤다.
    • 내가 생각하기에 우리 팀의 강점은 활발한 소통빠른 결정이었다.
      • 매주 1회 고정 미팅이 있었고 카톡 외에도 일주일에 2~3번씩은 구글밋으로 얘기하면서 진행 상황을 계속 공유했다. 주간 미팅 때도 이 점을 칭찬받았다.
      • 아이디어 선정부터 시작해 모든 걸 제로부터 시작해야 하다보니 '결정'을 해야하는 순간이 많았다. 우리 중에 이건 무조건 A다!! 처럼 주도적으로 밀고나가는 성격인 분은 없어서 제한시간 룰로 많은 것을 결정했다. 후보만 여러개 있고 확실히 결정이 되지 않으면, '이 주제는 8시 25분까지만 얘기해요' 처럼 제한 시간을 정해놓고 그 때까지 더 의견이 나오지 않으면 다수결로 정하는 것이다. 
    • 프로젝트가 아직 완벽하지 않아서 챌린지 기간 종료 후에도 계속 수정을 하고 있다.

마지막 날에 멘토님께서 다양한 상장을 만들어서 시상을 해주셨는데 알려줬상을 수상했다

중간 발표

팀별로 챌린지 기간 동안 어떤 활동을 했는지 공유하는 발표회가 있었다.

마지막으로 발표 해본게 언제인지... 발표를 맡게 되었다. 발표는 유튜브 라이브로 진행했다. 온라인 발표지만 청중이 3자리 수인건 인생에서 처음이라 긴장이 됐다. 그래도 연습하면서 할 말을 입에 붙여놨더니 꼭 하고 싶었던 얘기는 빠짐없이 다 했다. 

마스터 과정

챌린지에서 함께했던 멘티 중 마스터 과정으로 넘어갈 멘티를 다시 한번 선발한다. 이것도 멘토님마다 선정 인원과 기준이 다 다르다. 우리 팀 같은 경우 18명 중 11명이 마스터 과정에서 함께하게 됐다.

그리고 마스터 과정 부터는 팀장을 맡을 리드멘티를 따로 선정한다. 리드멘티로 선정이 되었고 챌린지 때와 팀원 구성이 바뀌어 다른 3분과 한 팀이 되었다. 일단 Euphony가 C++ 기반 라이브러리라 코드 상으로 뭔가 기여를 해보려면 C++을 다시 공부해야 한다. 예전에 학교에서 윈도우 프로그래밍인가?를 수강한 이후로 C++을 아예 안써서 한 3~4년만에 다시 보는 것이다.

마치며

처음으로 오픈소스에 contribution을 해봤고, 새로운 분들을 만날 수 있어서 무척 의미있는 한달이었다.

마스터 과정이 끝나면 다시 후기 2탄으로 돌아오겠다.