얼마전 탈잉에서 개발자들/개발자를 준비하는 사람들을 위한 온라인 클래스를 오픈한적이 있었는데요. 커리어 성장에 관한 내용을 주제로 5명의 연사분들이 강연을 해주셨는데 아주 유익했던 시간이었습니다! 강연중에 오픈소스로 성장하는 방법과 발표를 통해 성장하는 방법의 내용을 들으면서 핵토버페스트
라는 행사에 대해서 알게 되었는데요, 마침 10월에 진행하는 행사인데 마침 강연도 10월 1일에 진행이되어서 한번 참가를 해봐야겠다는 생각을 가지고 핵토버 사이트에 들어가서 일단 가입(?) 부터 합니다.
메인페이지 가운데에 Start Hacking을 눌러서 일단 시작해봅니다. github나 gitlab의 아이디로 진행을 하는데 github로 진행하면 아래와 같이 제 github 프사와 함께
완료된 PR, 진행중인 PR 갯수가 나옵니다.
그리고 Participant Goal 옆에 희미하게 꽃? 4개가 있는데, 4개 모두 불이 들어오면 핵토버페스트 완료(?) 인거 같습니다.(아직 0개라 잘 모르겠…)
공식 홈페이지에서 할 수 있는건 저것 뿐인거 같습니다.
핵토버페스트의 역사는 이미 다른 블로그나 유튜브를 통해서 알 수 있어서 여기서 소개하지는 않고, 그래도 아주 간단하게 요약하면.
10월에 PR 4개를 올리고, 머지가 되면 티셔츠를 줍니다!
인데 생각보다 쉽네? 라고 생각하면서 이참에 오픈소스 활동을 해봐야지! (티셔츠에 눈이멀어) 시작했지만 생각보다 만만하지 않다는걸 느꼈습니다. 지금은 PR 4개를 모두 처리하고 최종 완료(머지후 14일후 최종 완료 됩니다.)를 기다리고 있는데 한번 후기를 적어볼까 합니다.
첫 핵토버페스트 PR의 경험
평소에 오픈소스 기여 활동을 활발히 하지 않은 저로써는 어떤것부터 시작해야할지 막막했습니다. 그래서 우선은 핵토버페스트 정보를 얻을 수 있는 사이트들을 찾으면서 저 같이 오픈소스에 기여한 경험이 없는 사람이 가볍게 기여할 수 있는 저장소에 대한 정보를 수집하기 시작했는데 한국인들을 위한 핵토버페스트 사이트가 있는것을 알게 되었습니다. 한국어로 아주 친절하게 핵토버페스트의 정보, 규칙, 다른분들의 후기, 초보자들을 위한 PR방법, 그리고 쉬운 한글/영문 프로젝트의 목록들이 적혀있었는데요. 안그래도 처음으로 시도 해볼법한 프로젝트를 찾고 있던중 이었는데 마음이 한결 편해지면서 영문 프로젝트중 아주 간단하게 자신의 프로필을 올리면 되는 저장소에 첫 핵토버페스트 PR을 날려보기로 합니다.
PR을 올린지 얼마 되지 않아 저장소 관리자가 hacktoberfest-accepted
라는 라벨을 추가해주며 저장소에 제 커밋을 머지해줬습니다.
드디어 핵토버페스트의 첫 PR!! 오픈소스 활동이라고 하기엔 너무 단순하고도, 핵토버페스트의 취지와는 살짝 맞지않는 저장소에 PR이지만 그래도 나름 첫 핵토버페스트에 첫 PR이라 나름 신난 상태였는데요.
핵토버페스트에 단순히 PR카운트를 올리려고 비슷한 저장소에만 PR을 올리는 형태의 사례가 많았나봅니다.
제가 첫 PR을 올린 저장소는 핵토버페스트에서 제외된 저장소로 나왔고, 결국 카운팅에 포함되지 않았습니다.
한국 핵토버페스트 사이트를 보니 작년까지는 위와 비슷한 저장소들도 인정해줬는데 올해부터는 정책이 좀 변경된거 같았습니다. 공식 홈페이지에도 PR품질에 대한 가이드를 제공해주고 있었습니다.
정상적인 오픈소스 활동이 아니라고 판단되는 경우엔 저장소 뿐만아니라 PR자체도 반영이 안될 수 있는거 같습니다. 그렇게 저의 첫 핵토버페스트 PR경험은 이렇게 금방 끝이 났습니다.
제 첫 PR이 아쉽게 카운팅이 되지 못하고, 저장소도 핵토버페스트에서 제외가 되었지만 오히려 이걸 또 새로운 PR의 기회로 삼으면 좋을거 같다는 생각이 들었습니다. 아직 한국 핵토버페스트 사이트에는 제외된 저장소를 초보자용 프로젝트로 안내하고 있어서 이걸 수정하는 PR을 날리자!!(위기는 기회인가?!) 라는 생각으로 빠르게 문서를 수정해 PR을 날렸습니다!
하지만!!!
이미 다른분이 저보다 먼저 PR을 날리셨고 제 PR은 closed 되면서 또 한번 끝나버렸습니다.
이렇게 두번의 PR이 아쉽게 끝나고나자 “그냥 무분별하게 PR을 날리면 안되겠구나”라는 생각이 들었습니다.
내가 작업한 결과물이 빛을 발하기 위해서는 이미 진행되고 있는 이슈인지, 정상적인 저장소인지, 활발하게 활동하는 저장소인지 등등 을 살펴서 PR을 날리는게 시간과 노력을 아낄 수 있는거 같습니다. 이후에 시간과 노력을 헛되이쓴 사례가 또 나옵니다.
이슈를 찾아 헤메는 github의 개발자?
평소에 오픈소스 활동을 하지 않다가 갑자기 오픈소스 활동을 하려고 하면 어떤것부터 시작해야할지 엄청 막막합니다. 오픈소스 활동하시는 분들의 얘기를 들어보면 ‘평소에 자주 사용하는 라이브러리를 우선 살펴봐라’ 라고 하시는데요.
개발을 하면서 수많은 라이브러리들을 사용만 했지 그 오픈소스 활동을 해야겠다는 생각은 해본적이 없었습니다. 그러다보니 어떤 오픈소스를 선택해야할지 너무 막막했습니다. 그래서 우선 github에서 어떤 오픈소스가 있는지, 핵토버페스트에 참여하는 오픈소스는 어떤게 있는지 확인해보기로 했습니다.
github 검색 기능중에는 Topic을 검색하는 기능이 있는데 키워드를 hacktoberfest 또는 hacktoberfest2021를 검색해서 핵토퍼페스트에 참가하는 프로젝트들을 찾을 수 있었습니다.
그리고 필터를 이용해서 제가 주로 사용하는 언어, 그리고 최근 업데이트가 진행되었던 목록 순서로 정렬을 했습니다. 핵토버페스트가 8번째 진행되면서 예전에 hacktoberfest 토픽을 추가해두고 유지보수를 더이상 하지 않는 프로젝트도 많아서 최근 업데이트 된 기준으로 정렬을 했습니다. 하지만 쉬워보이는 이슈면 이미 다른 사람들이 달려들어서 달라고 손을 듭니다. 내가 해볼까 하면 이미 누군가 진행하고 있고 그렇게 다른 이슈를 찾아 또 여행을 떠납니다…
핵토버페스트 기간이라 그런가 평소에도 다른 개발자분들이 열심히 오픈소스 활동을 하는지 궁금해하며.. 열심히 깃허브에서 이슈를 찾았습니다.
이슈를 처리할땐 손들고 하자!!
리스트를 쭉 보면서 설명과 스타의 갯수를 보면서 제가 작업 할 수 있을만한 프로젝트가 있는지 찾아봤습니다. 이름은 한번씩 들어본 프로젝트들의 저장소도 보이고, 처음보지만 활발하게 사용되고 있는 저장소들도 보였는데요.
그 목록들 중에서 흥미가 있을법한 프로젝트를 찾았습니다. 물론 이슈의 제목만 봤을때 쉽게 처리 할 수 있을거 같았습니다. ToolJet
라는 프로젝트인테 코드 없이 간단한 리더보드 같은 내부 시스템을 만들 수 있는 툴인거 같았습니다. 리액트로 만들어졌는데, 저는 리액트 경험은 없지만 기본적인 프론트엔드 지식으로도 간단한 이슈 정도는 처리 할 수 있을거 같아서 이 프로젝트를 선택하고 이슈를 찾았는데.
리액트 경험이 없어서 프로젝트를 열어서 분석해보고 이슈가 발생되는 원인과 처리를 해보고 있는도중 누군가 해당 이슈에 손을 들어서 가져가 버렸습니다. 처음엔 손을 들까 말까 고민도 했지만 괜히 손들었다가 못한다고 하면 민망할까봐 일단 좀더 해당 이슈를 분석해보고 손을 들려고 했지만 이미 늦어버렸습니다.
물론 손을 든다고 해당 이슈가 처리되지 않는 경우도 있긴 합니다. 본인이 처리하겠다고 손을 들었다가 잠수를 타는 경우도 있더라구요. 그럴땐 코멘트로 손을 살며시 내리면 다른 사람들이 다시 가져가 더라구요. 핵토버페스트 관련 영상중에 아웃사이더님의 영상에서도 이슈는 손들고 해라 라는 내용이 나오는데… 망설이고 고민하는 바람에 제가 이 이슈를 분석하고, 수정하면서 들인 시간은 그렇게 날아가버렸습니다.
이슈를 어떻게 하면 더 빠르고 편하게 찾을까?
이슈를 한참 찾아헤메고, 다른사람이 먼저 처리해버리고 그러한 경험을 몇번 하다보니 이슈를 어떻게 찾는게 좋을까 라는 생각을 했습니다. 그래서 이것저것 찾아보다 두가지 방법을 알아냈는데요.
1. CodeTriage 서비스를 이용하자.
오픈소스에 활동에 대한 자료들을 찾아보던중 CodeTriage라는 서비스를 알게 되었는데요.
이 서비스는 관심있는 오픈소스 프로젝트를 선택해두면 매일 해결되지 않은 이슈 3개를 매일로 보내줍니다. 이슈 모니터링 서비스? 라고 봐야할거 같은데요.
이런 서비스를 이용해서 평소에 관심있던 프로젝트에 올라오는 이슈를 보고 참여하면 핵토버페스트가 끝난뒤에도 오픈소스 활동에 큰 도움이 될거라고 생각합니다.
2. githb의 issue검색을 활용하자
github를 사용해온지 꽤나 오래되었지만 상단의 메뉴를 이용해 무언가를 해볼 일이 없었는데요. 저장소에 붙은 토픽이나, 이슈에 붙은 라벨에 대해서 알게되면서 특정 라벨이 붙은 이슈를 검색하면 되겠구나 라는 생각이 들었습니다. 주로 핵토버페스트에 참가하는 저장소에서 이슈에 hacktoberfest
라벨을 추가하고 프로젝트에 익숙하지 않은 개발자들을 위해 아주 간단한 이슈들은 good first issue
라는 라벨을 붙여서 식별을 쉽게 해주고 있었습니다.(good first issue, beginner-friendly 등 라벨 초심자를 위한 다양한 라벨이 사용되고 있습니다.) 그래서 저는 검색창에label:hacktoberfest label:"good first issue"
(두 키워드를 AND로 검색합니다. 쌍따옴표는 공백을 처리하기 위함입니다.)를 입력해서
두 라벨이 함께 붙어있는 이슈를 검색했구요. 기본적인 정렬이 Newest(최신순)이어서 최근 올라온 이슈들을 아주 빠르게 확인이 가능합니다.
검색을 통해 github의 모든 이슈를 한눈에 보고 제목을 읽으면서 해볼 수 있겠다 생각이 드는것, 할당된 사람이 없는것, 코멘트가 안달려있는것 위주로 찾아가서 해봐야겠다고 마음 먹으면 바로 손을 들고 이슈를 처리 했습니다. 핵토버페스트가 아무래도 선착순으로 티셔츠를 주는 행사다보니 이런 방식으로 이슈를 찾아 처리하면 좋을거 같습니다. (행사의 취지에는 살짝 어긋나는 형태의 오픈소스 활동인거 같기도 하지만, 오픈소스 활동을 경험해보고 싶은 초심자에게는 좋은 방법이 아닐까 생각해봅니다.)
이슈는 우리 가까이에 있습니다
위에 소개했던 내용처럼 하나의 PR을 날리기 위해서 많은 시간과 노력을 투자했는데요. 생각해보면 오픈소스 활동이란건 어떤 코드를 리팩토링해서 개선하는것 뿐만아니라, 오타수정, 문서번역 등등 단순한 작업들도 포함이 됩니다. 핵토버페스트라는 행사를 처음 알게된 후 자주 들어갔던 핵토버페스트 한국 홈페이지도 github의 page기능을 이용해 서비스가 되고 있었고, 저장소에 issue도 몇개 있었습니다. 사이트는 mkdocs라는 마크다운 문서를 이용해 페이지를 만들어주는 문서화 툴을 이용해 생성되었는데요. 이 툴로 만들어지면서 발생했던 간단한 마크업 이슈가 등록이 되어있어서 mkdocs는 잘 모르지만 수정이 그리 어려울거 같지 않아서 이슈를 분석하고 두개의 이슈를 처리했습니다.
사실 그동안 외국 저장소만 찾아가면서 나는 기능추가나 성능개선 같은 거창한 이슈를 처리해야겠다는 생각으로 돌아다녔지만 현실은 쉽지만 않았고, 내가 할 수 있는 능력에서 하자 라는 생각으로 변했습니다.
이름을 한번쯤은 들어봤을 라이브러리를 선택하기 보다는 페이지나 정보위주의 저장소에 우선적으로 관심을 가지면서, 핵토버페스트가 끝나더라도 평소 사용중인 오픈소스에 대해 관심을 가져간다면 누구나 다 알법한 프로젝트의 컨트리뷰터로 활동 하는 날이 오지 않을까 생각해봅니다.
핵토버페스트 목표 달성!
핵토버페스트를 시작한지 약 1주일만에 4개의 PR을 모두 채웠습니다. 4개 이상의 PR이 카운팅 되면 아래와 같이 축하한다는 메일이 옵니다.
처음으로 참가해본 핵토버페스트인데 오픈소스 활동에 관심을 가지고 행동해본게 처음이라 배운것도 많고 뭔가 뿌듯하기도 합니다. 아직 참여 안해보신 분들은 한번씩은 해보시면 좋은 경험이 될거라고 생각합니다.
모든 PR Complete!! 리워드 안내!!
날린 모든 PR이 머지된뒤 14일이 지나서 Total Complete가 4개가 되었고, 위에 꽃 모양이 모두 채워졌습니다!
PR목록이 있던 위치에 핵토버페스트 리워드에 대한 안내를 해주고 있습니다! 링크를 누르면 리워드에 대한 안내페이지로 넘어가고.
그 하단엔 리딤코드와 함께 DEV 뱃지
에 대한 내용도 획인하는 버튼이 있습니다.
(뱃지에 대한건 제일 아래 쓰겠습니다.)
리워드에 대한 내용은 처음 보는데 공용/여성용 티셔츠, 나무심기 셋중에 하나 선택을 하게 됩니다. 탄소 중립을 위해 티셔츠 대신 나무심기 옵션을 추가해준게 아주 좋은거 같습니다! 하지만 저는 첫 핵토버페스트라서 그래도 기념으로 티셔츠로 선택했습니다! 벗어날 수 없는 티셔츠의 유혹
내년에는 저도 탄소중립에 참여하게 위헤 나무를 심어봐야겠습니다!
그리고 DEV 뱃지
는 뭔지 잘 모르겠습니다ㅠㅠ
2021핵토버페스티벌 뱃지 상품을 추가로 주는거 같은데 뭔가 설명에는 그냥 DEV 프로필에 뱃지가 나타날거다 라고 써있어서 뭔가 온라인에서 표시되는 뱃지 같은데.
가격이 무려 256달러?? 아무나 못사게 하려고 비싸게 해둔건지 아니면 다른 무언가가 있는지 모르겠습니다. 결제할때 주소입력도 받던데. 오프라인 뱃지는 아니겠죠..? (아시는분 있으면 댓글 달아주세요!!)