오픈소스 컨트리뷰션
인프콘 발표자를 지원했으나 떨어졌고, 넥스터즈는 서류 광탈.
이제 해볼 만한 게 없을까 이것저것 찾아보다가 2024 오픈소스 컨트리뷰션 아카데미가 눈에 들어왔다.
원래 작년에도 지원해보고 싶었으나 지인들과 사이드 프로젝트를 시작했고, 회사 프로젝트가 바빠지면서 단념했었다.
다시 현 시점. 회사에서 큰 프로젝트도 마쳤고 생활에 여유가 생겼다. 오픈소스에 언제가는 꼭 기여해보고 싶다는 목표가 있었고, 스터디 모임 말고는 할 게 없었기 때문에 오픈소스 컨트리뷰션에 지원해보기로 했다. 되면 좋고~ 안되면 말고~
프로젝트
내가 프로젝트를 선택한 기준은 아래와 같다.
- 백엔드 개발과 관련된 프로젝트인가
- 프로젝트에 기여한 내용이 나의 개발 실력, 회사 업무에 도움이 되는가
- 내가 관심있던 기술인가
위의 2개를 기준으로 선택한 프로젝트는 Apache Zeppelin과 ArgoCD 였다. Apache Zeppelin은 회사에서 사용하는 기술 스택이었고, 백엔드와 인프라 과제가 명확해보여서 마음에 들었다. ArgoCD는 회사에서 사용하진 않았지만 나중에 사용해볼 가능성이 크다고 여겨졌고 k8s라는 기술에 관심이 많았기 때문에 선택했다.
어떤 것을 1지망으로 할지 고민이었다. 기술적인 관심도는 ArgoCD 높았지만 백엔드 과제가 명확하다는 점에서는 Apache Zeppelin이 끌렸다. 결국 회사 동료, 사수와 CTO 님한테까지 조언을 구했다. 결국 1지망을 Apache Zeppelin으로 했다. 제플린에 대해 잘 알게 되었을 때 회사에서 활용해볼 수 있는 많을 것 같다는 생각이 컸다.
지원서 작성
기본적인 인적 사항과 1지망, 2지망 프로젝트를 선택하고 자기소개를 적는 부분이 있었다. 자기 소개(관심 분야 등)와 지원 동기, 프로젝트 개발 경험을 적어야 했다.
하필 지원서를 제출해야 하는 시기에 친구들과 양평에 놀러가는 약속이 잡혔있는데, 결국 계곡에 가서 친구들이 재밌게 노는 동안 나는 오픈소스 컨트리뷰션 지원서를 적었다. 마침 자기소개서를 끝내주게 잘 쓰는 친구가 있어 피드백도 부탁했다. 드럽게 못써서 팩폭을 당했다.
첫 번째 자기소개 항목에서는 1,300자를 적었고 두 번째 지원 동기는 800자의 글을 작성했다. 프로젝트 개발 경험 부분은 200자밖에 적을 수 없었기 때문에 간략하게 작성하고 아래 이력서 링크를 첨부했다.
귀염뽀짝한 이력서 링크: 백엔드 개발자 - 박종혁 이력서
합격
합격했다는 내용을 7월 8일 문자와 메일로 전달받았다.
오랜만에 받은 합격 메일이라 좋았다. 설레는 느낌.
Apache Zeppelin 팀은 총 13명의 멘티가 선정되었다.
나중에 알게 된 사실이지만 Apache Zeppelin의 경쟁률은 1지망이 10대 1 이상이었다고 한다. (오픈소스 컨트리뷰션의 전체 경쟁률이 3대 1 정도라고 함) 멘토님도 지원자가 너무 많아 멘티 선정할 때 심혈을 기울였다고 했다. 잘할 것 같은 사람만 뽑았다고 말씀하셨는데
살짝 걱정이 된달까..? 나 사실 감자 개발자인데
발대식
발대식은 합격 발표가 있었던 주의 토요일에 진행되었다. 행사는 12시 30분부터 시작되었고 한국과학기술회관 지하 1층에서 열렸다.
행사장에 도착해서 QR 코드를 통해 발대식 출석 체크를 하고 Apache Zeppelin 팀의 명찰을 받았다. 옆에 커피 부스가 있었고 커피와 물을 받아 정해진 팀별 자리에 착석했다.
같이 부스트캠프를 했던 분이 Raftify 팀의 멘토로 계셔서 잠깐 얼굴을 뵈었는데 반가웠다.
기념품으로 스티커와 보조배터리도 선물 받았다.
특별 강연
"세상을 바꾸는 시간"이라는 제목으로 강연이 진행되었다. Linux Kernel Networking Stack의 유태희 멘토님이 발표를 해주셨다. 한국에서의 오픈소스 활동과 진입장벽. 그리고 본인의 일화를 소개하셨다.
한국에서는 소수의 개발자만 하드하게 오픈소스에 기여하고 나머지는 거의 참여하지 않는다. 그렇기에 오픈소스 컨트리뷰터는 굉장히 희소성이 있다.
오픈소스 컨트리뷰션을 하기 위해서는 알아야 할 것이 너무 많다. 오픈소스 기여를 혼자서 할 게 아니라면, 진입장벽을 허물 수 있는 가장 좋은 방법 중 하나는 오픈소스 컨트리뷰션 아카데미다.
문화나 프로세스 같은 것이 명시적인 룰이 존재하는 좋은 오픈소스인데, 대부분은 그렇지 않다. 문서적으로는 나태한 경우가 많다. 작은 프로젝트라면 더 그렇다.
오픈소스 컨트리뷰터는 자신의 의무를 다해야 한다. 의무를 소홀히 하여 문제가 있는 코드를 오픈소스에 남기는 일을 겪게될 수 있다. (제출한 패치에 취약점이 발견되었다는 메일을 받았던 일화)
자신을 위해 한 오픈소스 기여 활동이 본인의 이익 뿐만 아니라 우리가 소속된 조직, 공동체, 그리고 국가에 유익한 영향을 미친다. (Linux ARIA 알고리즘 적용 일화)
아카데미 경험 공유 발표1 - "두 배로 즐기기"
해당 발표는 RustPython의 정윤원 멘토님이 진행하셨다. 제목 그대로 오픈소스 컨트리뷰션을 잘 활용할 수 있는 방법에 대해 발표를 해주셨다.
멘티는 보통 해결하고 싶은 문제가 있어서 왔기보다는 프로젝트가 궁금해서 온 경우가 많다. (해결하고 싶은 걸 미리 찾아왔다면 너무 훌륭한 분이지만!) 멘토는 강사가 아니라 평범한 직장인이다. 프로젝트의 모든 것을 잘 설명하는 게 쉽지 않다.
가급적 기술적인 난이도가 낮은 이슈를 해결해보는 것이 좋다. 코드 작성 외에도 빌드, 테스트 실행, 코드 찾기, 변경 커밋하기, 패치 제출하기 등 다방면에서 다양한 문제가 발생하기 때문이다. (문제 공간 줄이기!) 첫이슈를 빠르게 해결해보는 경험이 진입 장벽을 낮추는 데 도움이 된다.
오픈소스 컨트리뷰션은 내가 참여하는 프로젝트의 주도적인 개발자로써 활동하는 과정이다.
질문의 목적은 답을 듣기 위한 것이 아니라 이 문제를 이해하는 방식을 전달하는 커뮤니케이션의 일부이다. 때로는 엉뚱한 질문을 한다는 것이 어떤 이유로 잘못된 탐색을 하고 있는지를 설명하는 빠른 방법이 되기도 한다.
아카데미 경험 공유 발표1 - "2024 오픈소스 컨트리뷰션 아카데미 미리보기"
python-mysql-replication의 장동욱 멘토님이 진행하셨다. 오픈소스 컨트리뷰션에서 python-mysql-replication 프로젝트 기여 활동을 진행해오면서 배운 것과 즐거웠던 경험을 공유해주셨다.
원티드에서 python-mysql-replication을 헤비하게 사용하고 있습니다. 한 번은 하위호환이 안되는 버전을 패치한 적이 있었습니다. 원티드에서 버전업을 원했고 정말 잘 되는 것인지 문제는 없는 것인지 의문이 많으셨는데요. 원티드 사옥에 가서 컨설팅까지 하고 맛있는 걸 얻어먹었던 적이 있습니다.
꿀팁 #1 Be Proactive.
일을 벌이자. (스터디 조직하기!)
과제 만들기. (멘토 분에게 과제를 역제안하기)
꿀팁 #2 Be Open
모르는 것이 있다면 나서서 말하기 (총대매기) - 오픈된 채널에서 공유를 해주는 것이 좋다.
막혀있기엔 4개월은 짧다. (혼자 생각하는 것보다 집단 지성이 더 낫다.)
꿀팁 #3 Be Confident
모두 다 제로베이스
능력자는 내 아군
멘토님과의 만남
발대식 마지막엔 팀별 소통 시간이 진행되었다. 멘토님이 Apache Zeppelin이 어떤 프로젝트인지 소개해주셨다. 멘토님은 Apache Zeppelin을 만드는 회사에 있었는데 제플린을 Apache 재단에 기부하면서 제플린이 Apache의 후원을 받는 오픈소스가 되었다고 한다.
멘토님은 미리 생각해둔 이슈들이 있었고 그걸 염두에 두고 선정했다고 하셨다. 프론트엔드 UI 과제, 백엔드 기술 스택을 스프링으로 바꾸는 과제, 제플린 서비스들을 k8s의 오브젝트로 잘 감싸서 배포하는 과제 등을 생각해두셨다고 했다.
마지막으로 질문 시간이 진행되었다. 질문 하나를 드렸다. "혹시 멘티들에게 바라는 점이 있으신가요?"
좋은 질문이네요. 저는 멘티님들한테 바라는 게 2가지 있습니다. 첫 번째는, 오픈소스 컨트리뷰션을 포기하지 않았으면 좋겠어요. 어려운 게 있으면 동료나 저에게 언제든지 도움을 요청해주셨으면 합니다. 두 번째는 오픈소스 컨트리뷰션 아카데미가 끝나더라도 기여 활동을 꾸준히 했으면 좋겠어요. 긴 호흡을 가져가시면 좋을 것 같아요. 취미 생활이나 자기 계발하듯 시간날 때마다 하는 것이 좋습니다. 저는 "Apache Zeppelin에 1년 반을 갈아넣었다"고 표현할 정도로 열심히 했었거든요. 그게 커리어에 언젠가 정말 큰 도움이 될 수 있어요. 제가 라인에 들어갔을 때 "우리 팀에서 Zeppelin을 사용해야 하니깐 저 사람 데려와야 해" 라는 식으로 뽑혔거든요. 아마 정석대로 들어가려고 했으면 면접이 너무 어려워서 못 들어갔을 수도 있어요.
마지막으로 Apache Zeppelin 팀과 기념 촬영을 하고 행사를 끝마쳤다!! 끝끝~