오늘은 수료증을 발급받은 기념으로 오픈소스 컨트리뷰션 아카데미의 후기를 적어보려 합니다.
이 프로그램을 통해 많이 성장했다고 느끼고 좋은 기회도 얻게 되었기 때문에 꼭 후기를 적어야겠다고 생각했습니다.
언어, 협업 개발문화, 시작의 두려움 등 다양한 이유로 오픈소스 진입장벽이 높게만 느껴지는 개발자들을 위한 '오픈소스 컨트리뷰톤' 멘토링 행사입니다. 코드 기여 뿐만아닌 코드리뷰, 테스트, 버그리포트, 기능제안, 이슈댓글, 질문,&건의, 번역, 문서작성 등의 다양한 방법으로 오픈소스 문화에 기여할 수 있는 기회를 제공합니다.
https://www.oss.kr/contribution_academy
간단히 말하면 '오픈소스 컨트리뷰톤' 멘토링 행사입니다.
올해는 25개의 프로젝트가 있었고, 50명의 멘토가 참여했습니다.
프로젝트는 Challengers와 Masters기간으로 나누어서 진행이 되었습니다.
Challengers는 맛보기 같은 느낌이고, Master에서 본격적인 기여 활동을 했습니다.
발대식은 게더타운으로 진행되었습니다. 400명이 넘게 들어오다 보니 접속이 원활하지는 않았습니다. 그래서 중간중간 끊기긴 했지만, 나름 재밌는 경험이었습니다.
보물찾기도 했는데, 바쁘게 돌아다니느라 캡처한 게 없네요...
처음에는 간단하게 행사 소개하고 보물찾기하고 팀별로 모여서 간단한 orientation을 진행했던 것 같은데 기억이 가물가물합니다.
25개의 프로젝트 리스트 중 Backend.AI는 위에서 3번째에 위치했는데, 들어가서 소개를 읽고 꼭 참여해보고 싶다는 생각이 들었습니다.
참가자 모집 유형과 프로젝트를 매우 자세하게 써져있어서 가장 신뢰..?뭔가 관리가 잘 되어있는 프로젝트일 것이라는 생각이 들었습니다.(지금 생각해보면 그때의 저를 칭찬해주고 싶네요...ㅎㅎ)
머신러닝, 파이썬, 딥러닝, 백엔드, 컨테이너 등 소개에 적혀있는 기술들이 낯설고 경험하지 않았던 것들이었지만, 그래서 더 하고 싶었습니다.
래블업에서 개발한 Backend.AI는 GPU 특화 머신러닝 연산자원 관리 플랫폼입니다.
Backend.AI에 대해 더 알아보고 싶으신 분은 아래의 글을 참고바랍니다.
아래 깃허브 링크를 통해 Backend.AI는 어떤식으로 프로그램이 진행되었는지 확인하실 수 있습니다.
Challengers기간때는 아래와 같은 과제들을 수행했습니다.
1주차: 환경설정 및 Git/GitHub 을 통한 피드백 및 PR 규칙 익히기
2주차: 프로젝트 한국어화 기여 연습을 통한 첫 PR 해보기
3주차: 프로젝트 내부구조 학습 및 멘티 별 개인 주제 확정
4주차: 개인별 면담을 통한 맞춤 멘토링
이 기간에는 Backend.AI를 설치하고, 사용해보는 과제들이 있었는데 m1 맥북이라 설치가 잘 안돼서 꽤 고생을 했습니다...
Masters 기간 때부터 본격적으로 기여 활동을 시작했습니다.
Challengers 기간 동안 Backend.ai에 대해 알아가면서 가장 관심이 생겼던 컴포넌트에 기여를 하게 됩니다.
저는 그동안 프론트엔드 개발을 주로 해왔기 때문에 webui 컴포넌트와 관련된 이슈를 만들고 해결했습니다.
첫 기여
자원 사용량 패널과 세션 리스트의 너비가 달라서, 두 너비를 통일하자는 이슈를 만들고 PR을 올렸습니다.
이 이슈를 통해서 flex container 안의 item 너비가 auto로 설정되어 있으면, 자식 요소들을 감싸는 만큼(필요한 만큼)만 차지하게 된다는 걸 알게 되었습니다.
Issue: https://github.com/lablup/backend.ai-webui/issues/1113
PR: https://github.com/lablup/backend.ai-webui/pull/1117
두 번째 기여
각 페이지별로 여백의 크기가 달라서 통일시키는 이슈를 진행했습니다.
이 이슈를 통해서 마진 상쇄에 대해 배울 수 있었습니다.
Issue: https://github.com/lablup/backend.ai-webui/issues/1108
PR: https://github.com/lablup/backend.ai-webui/pull/1118
세 번째 기여
원래는 약관 창을 닫고 나서 다시 열리지 않는 이슈를 해결하고 있었는데, 어려워서 해결하지 못하고 있었습니다.
그런데 계속 약관 창을 살펴보니 스크롤이 불필요하게 2개가 존재하는 걸 발견했습니다. 내리는 동작이 부자연스럽고 하나만 있어도 될 것 같아서 이슈를 생성하고 해결했다.
오픈소스에 기여하고자 하면 아주 작은 부분이라도 기여할 수 있는 부분이 있는 것 같다.
Issue: https://github.com/lablup/backend.ai-webui/issues/1139
Pr: https://github.com/lablup/backend.ai-webui/pull/1142
https://github.com/lablup/backend.ai-webui/issues/1123
위의 이슈는 위에서 말한 해결하지 못했던 이슈입니다. 이 때는 개발환경이 잘 설치되어 있지 않았고 시간도 부족해서 해결하지 못했습니다.
하지만 오픈소스 컨트리뷰션 아카데미가 끝날 무렵 진행했던 기업 연계 인턴십으로 래블업에서 들어와서 해결하게 되었습니다. 인턴십에 대한 글을 따로 써보려고 합니다.
PR: https://github.com/lablup/backend.ai-webui/pull/1160
오픈소스 컨트리뷰션 아카데미는 개발 인생의 터닝 포인트라고 할 수 있을 정도로 이 프로그램을 통해 많이 성장했습니다.
현업에 종사하고 있는 개발자분들과 멘토님들과 함께 프로젝트를 진행하는 경험은 여기서만 할 수 있는 것 같습니다. 다른 분들을 보면서 더욱 열심히 해야겠다고 생각했습니다.
하기 전에는 "과연 내가 할 수 있을까?"라고 생각했습니다.
만약 저와 같은 생각으로 망설이는 분이 있다면 당장 신청하라고 말하고 싶네요.
멘토님들과 멘티님들이 모두 적극적으로 도와주십니다 :)
그리고 오픈소스 기여가 코드 기여뿐만 아니라 테스트, 버그리포트, 기능제안, 번역, 문서작성 등 다양한 방법으로 가능하기 때문에 의지만 있으면 기여할 방법은 매우 많습니다!
이렇게 포스팅을 마무리하면서 즐거웠던 오픈소스 컨트리뷰션 아카데미를 보내줘야겠네요.
읽어주셔서 감사합니다~