오픈소스 프로젝트 회고록

December 07, 2021

오픈소스 프로젝트 회고록

지난 7월, 과학기술정보통신부에서 주최하는 "오픈소스 컨트리뷰톤 2021"을 통해 첫 오픈소스 프로젝트를 경험해 보았습니다. 우리 팀의 목표는 3개월 동안 react용 GA 라이브러리인 react-ga를 개발하고, 라이브러리 가이드 문서를 만드는 것이었습니다. 오늘은 첫 오픈소스 프로젝트를 진행하며 개인적으로 부족했다고 느꼈던 점을 회고하려 합니다.

팀원들 간의 소통에 적극적으로 참여했다면 어땠을까?

커뮤니케이션 채널이 많아지면서, 협업 속도를 따라가기가 힘들었습니다. 팀 단위로 개발하다 보면, 용도에 따라 여러 협업 툴을 이용하는 경우가 많죠. 소스 및 이슈 관리, 문서 관리, Discussion 등 개발에 필요한 업무들을 하나의 툴 안에서 소화하기가 힘들기 때문입니다. 우리는 오픈소스 프로젝트를 진행하며 다음과 같은 채널들을 활용했습니다.

Channel Description License Version
Slack 일상적 대화, 공지 전달, github 알림 무료
Notion 회의록 및 리서치 자료 저장 유료
Github 소스 관리 및 discussion, 코드 리뷰 무료
Google meets 화상 회의 무료
Email 주최 측 공지 전달 -

물론, 이런 상황에도 불구하고, 커뮤니케이션 속도를 잘 따라오는 팀원들이 대부분이였으나, 저는 친구에게 온 카톡도 하루 지나서 답장하는 메신저 혐오자에요. 그런 성격 탓에 f/u이 많이 뒤쳐졌고, 그러면서 한 가지 느꼈던 점은, 커뮤니케이션도 개발의 연장이라는 것입니다.

오픈소스 프로젝트 특성 상, Kick-Off를 기점으로 한 달 동안은 이슈가 굉장히 빠르게 올라갑니다. 다들 열의에 가득 찬 상태이기 때문이죠. 이 기간에 커뮤니케이션 속도를 따라가지 못하면 이슈 관련 논의 사항을 놓치게 되고, 개발에 차질이 생길 수 있습니다. 프로젝트 방향성을 못 잡고 혼자 헤매거나, 협의 된 사항과 맞지 않는 코드를 올려 몇번씩 리뷰를 받는 등의 문제가 발생할 수 있는 것이죠.

조금만 적극적이었다면 어땠을까?

제가 적극적이지 못했던 이유는 “내가 올린 코드로 인해 에러가 발생하면 어떡하지?”라는 생각이 있었기 때문입니다.

우리 프로젝트는 react-ga 라이브러리 개발 팀과, 가이드 문서 개발 팀으로 나뉘었는데, 개인적으로 라이브러리 개발은 경험도 없고, 코드를 잘못 올리기라도 한다면 엄청난 문제를 일으킬 것 같은 막연한 불안감이 있었습니다. 그래서 저는 가이드 문서 개발 팀으로 참여했는데, 프로젝트가 끝나갈 무렵 “이 기회가 아니면 팀 단위로 라이브러리를 개발하여 배포까지 진행해 볼 일이 있을까?”하는 생각이 들어 많이 아쉬웠습니다.

조금 겸손했다면 어땠을까?

“2년차 개발자 정도면 나름 프로”라는 거만함이 있었습니다. 우리 팀은 대학생 절반, 직장인 절반 정도로 구성되어 있었는데, 그래서 인지 대학생들에게 리뷰를 받는다는 것에 대한 일종의 거부감 같은 것이 있었나 봐요. 하지만 이런 몹쓸 생각은 일주일 이상 가지 않았습니다. 저보다 개발을 더 잘하는 대학생 팀원이 있었기 때문입니다. 그러자 코드 리뷰에 대한 거부감은 불안감으로 바뀌었고, “스스로 나름 프로라고 생각했는데, 저들에게 내 코드를 지적 당하면 어떡하지?”라는 생각이 머릿속을 지배하기 시작했습니다. 부끄럽지만, 그런 이유로 며칠 동안 커밋을 올리지 못한 적도 있습니다.

사실, 이런 태도는 개발 커리어를 이어나가는 데 큰 장애물이 됩니다. 두려움이든 거부감이든 리뷰 받기를 꺼린다면, 프로젝트 진행에 차질을 빚을 수도 있음은 물론, ‘고인물’로 가는 지름길이기 때문이죠. 다행히 컨트리뷰톤 기간 안에 이런 점을 깨달았고, 오히려 제가 먼저 궁금한 점을 물어보기 시작했습니다.

명확한 목표를 갖고 시작했으면 어땠을까?

“1일 1커밋”, “1주일 최소 3리뷰” 등의 구체적인 목표가 딱히 없었습니다. 같은 기능을 구현하더라도, 확실히 오픈소스 프로젝트가 훨씬 힘들게 느껴지기 마련입니다. 다른 사람의 커밋으로 인해 나의 local 개발 환경이 꼬이기도 하고, (부정적인 의미가 아니라) 사공이 많으니, 개발 프로세스도 보수적이기 때문이죠. 이런 힘든 상황에서는 명확한 목표 설정이 특히 중요합니다. 사기가 꺾이지 않도록, 꾸준히 자신을 움직이게 할 지표가 되어 주기 때문입니다.

반성문

앞으로는 메신저 확인하는 것을 습관화하고, f/u을 잘해야겠습니다. 또, 요새는 크롬 배경화면에서 여러 협업 툴을 한눈에 모니터링할 수 있도록 확장 프로그램을 하나 개발하고 있어요.

앞으로는 조금 겸손해지겠습니다. 오픈소스 프로젝트를 진행하면서 세상은 넓고 개발자는 많다는 것을 깨달았습니다. 다시 한번 성장하는 기회가 되겠네요.

다음 오픈소스 프로젝트부터는 명확한 목표를 갖고 시작하겠습니다. 처음에는 너무 크지 않게 3일 1커밋 정도로 해볼까 합니다.


Profile picture

Written by Kim Chanhee 데이터 시각화 전문 프론트엔드 개발자를 꿈꾸고 있습니다. You should follow me on github