본문 바로가기

외부 세미나 & 특강/개발

[데이터야놀자 2020] 오픈소스기여:코드로 세상에 기여하는 또다른 방법

반응형

[웰컴투 데놀랜드 Track 2] - 오픈소스 기여: 코드로 세상에 기여하는 또다른 방법

소제목 : 오픈소스 컨트리뷰션 과정에서 느꼈던 어려움, 극복, 얻게된 것, 오픈소스 기여에 처음일 때 어떻게 쉽게 컨트리뷰션을 할 수 있는지에 대한 팁


오픈소스 프로젝트 첫 시작( = 실패 경험)

  • 처음엔 무작정 오픈소스 프로젝트를 찾아서 앞뒤 보지 않고 코드를 작성하고 수정했다.
  • Git에 대한 개념이 모호했다.
  • 어떻게 프로젝트 버전을 관리하는지, 소통하고 협업하는지 몰랐다.
  • 메인테이너(Maintainer, 프로젝트 주인격)에게 수정한 코드를 통째로 압축해서 메일로 보냈다.
  • 아무런 일도 일어나지 않았다(=메인테이너가 메일을 무시했다).

무작정 오픈소스를 시작하기엔 너무 막연했다.

무엇 때문에 실패했을까?

  • 어디서부터 시작할지 몰라서
  • 코드 기여를 통한 기능 향상만을 기여(=컨트리뷰션, Contribution)라고 착각해서
  • 내 코드에 대한 논의를 할 줄 몰라서
  • 버전관리를 할 줄 몰라서

기여하기 위해 꼼수를 생각해냈다.

 

' 취약점 분석 툴로 오픈소스 프로젝트를 분석하고 그 취약점을 수정하면 기여하기 쉽겠네? '

 

결과는 단 1개. 실제 취약점은 여러 가지가 나왔지만 해당 프로젝트에는 영향이 없는 취약점들이 대부분이었다.


꼼수 대신 정공법으로 바꾸기로 했다

  • 튜토리얼, 위키 하나하나 읽기
  • 모든 기능(feature)들을 다양한 코드를 대상으로 사용해보기
  • '이 프로젝트의 모든 기능, 속속들이 다 써보자!'는 마음
  • lcov를 이요한 code coverage wiki에 작성

위의 내용처럼 유스 케이스(use case)를 남기는 것부터 기여를 시작했다

유스 케이스들을 정리하다보니 프로젝트 구조가 조금씩 보이기 시작했다


프로젝트 구조가 보이고 git 사용방법도 익숙해지니 다른 번역, 문서화 작업도 시작했다

  • 번역
  • 오타 수정
  • etc

처음엔 코드 수정/추가만을 기여로 생각했다. 하지만 문서화 작업도 중요했다.

실제 오픈소스 프로젝트를 사용해봐야 문서화도 잘 할 수 있다.

영어만 잘해서는 문서화를 잘할 수 있는 게 아니다. 영어를 잘하면 문서화를 좀 더 수월하게 할 수 있지만 영어를 잘해야만 문서화를 잘하는 것은 아니다.


기여하기 좋은 프로젝트 찾는법 : 논의가 활발히 이뤄지는 프로젝트를 찾는다

  • 빠른 피드백을 얻을 수 있는 확률이 높기 때문
  • 이슈, 풀리퀘스트에 최근에 남긴 댓글이 많다면 논의가 활발한 프로젝트일 가능성이 높다.

오픈소스에 코드 커밋하기

Q. 코드 기여를 하려면 그 프로젝트를 압도할 실력이 필요할까?

A. 반은 맞고 반은 틀리다. 이슈를 해결할 수 있을 실력만 있으면 된다. 프로젝트 전체를 이해할 필요는 없다

 

내 실력이 이 프로젝트를 압도할 정도로 성장한 뒤에 프로젝트에 코드 기여해야지(X)

내가 해결할 수 있는 issue들을 해결하며 이 오픈소스와 함께 발전해야지! (O)

 


원본 영상 : www.youtube.com/watch?v=WLh-qF8cAto

 

반응형