2020. 8. 1. 00:17ㆍ카테고리 없음
저는 오픈소스 기여가 아주 엄청나게 어려운 일인줄 알았습니다. 마치 그들이 사는 세상을 올려다 보는 느낌. ( ... ) 물론, 실력이 받쳐줘야 기여를 하기 좋을지도 모릅니다. 하지만 주석의 오타를 찾고, 문서를 작성하는 등의 행위도 충분히 기여 목록에 들어간다는 점 알고 계셨나요?! 저는 몰랐었습니다. ( ㅎㅎ ) 기능 하나를 뚝딱 만드는 것만이 기여라고 생각을 했었어요. 하지만 아래 과정을 따라해보며 기여가 멀리 있지 않음을 느끼게 되지 않을까 싶어요.
뿐만 아니라 한 번 기여를 해봄으로써 그 과정을 이해해보는 것도 아주아주 좋은 경험이 될 수 있다는 것도 알려드리고 싶어 글을 작성하게 됐습니다.
오픈소스 기여하기
제가 처음 오픈소스 기여에 눈을 뜨게 된건 스프린트 서울 12월 행사에 참여해보면서 였습니다. 저는 회사에서 github을 쓰지도 않았고, 오픈소스의 오도 몰랐던 상태로 신나서 갔었습니다. 멋모르고 갔던거죠. 다만, 여기서 좋은 멘토분들을 만나 오픈소스에 기여하는 과정을 겪어 볼 수 있었습니다. 저도 이제 막 첫발을 내딛은 초보자지만 더 많은 분들이 이 뿌듯함을 느꼈으면 하는 마음에 글을 작성해보겠습니다.
오늘은,
https://github.com/firstcontributions/first-contributions
바로 이 프로젝트에 이름을 올려보는게 목표입니다.
1. 프로젝트 포크
일단 이 프로젝트를 제 프로젝트로 가져와 자신의 git 저장소로 저장해봐야 합니다. test db와 real db가 나뉘어지는 이유는 다들 아시나요? 마구잡이로 테스트를 하면 실제 서비스중인 db가 느려지거나, 데이터 손상이 일어나 함부로 다루면 안됩니다. 프로젝트도 마찬가지인데요. 원본 프로젝트에 마구잡이로 수정을 한다면 충돌을 포함해 많은 문제가 일어날 겁니다.
따라서 자신의 저장소에 프로젝트를 포트떠서 테스트 할 수 있는 프로젝트를 만들고, 이후에 원본 프로젝트에 수정을 허가해줘 (!) 이렇게 요청을 날려 실제 프로젝트에 저장되는 흐름이라고 가볍게 이해하시면 될 것 같습니다. ( 저는 그렇게 이해 중입니다! ) 프로젝트 포크 하는 방법은 간단합니다. 포크를 원하는 프로젝트 상단 우측에 보면 fork라는 버튼이 있습니다.
이걸 클릭해주세요. 그럼 자신의 레포지토리에 이 프로젝트가 똑같이 생성될 겁니다. 아이디/first-contributions 이런 식으로요.
2. 클론받기
이제 저장소에서 내 컴퓨터로 파일을 저장해 수정작업을 할 수 있게 만들어줘야 합니다. 위에서 저장한 프로젝트 저장소로 들어가 클론을 받아줍니다. 다운로드 해도 좋으나 cmd에서 명령을 해주는게 간단합니다.
git clone 주소
위처럼 명령을 내려줍니다. 그럼 이제 컴퓨터에서 저장이 될 겁니다.
3. 브랜치 작성
git checkout -b <add-이름>
프로젝트에 새로운 브랜치를 생성합니다. 브랜치란, 새로운 갈래를 만드는 느낌인데요. 자세한 설명은 ( https://backlog.com/git-tutorial/kr/stepup/stepup1_1.html ) 이쪽을 참고 바랍니다. git에 대한 개념은 다음에 함께 정리해보겠습니다.
4. 수정 및 커밋
이제 파일을 수정해봅시다. 위 프로젝트에선 이름을 올려보는게 목표이므로 Contributors.md 파일을 찾아 맨 밑으로 내려갑니다.
[Your-name](https://github.com/Your-username)
위의 형식으로 작성해달라고 README에 적혀있었으므로 적어둡니다.
git add Contributors.md
git commit -m "Add 브런치이름 to Contributors list"
수정을 하고 나면 수정했던 파일을 add와 commit 할 수 있게 됩니다. 위 명령대로 작성해 커밋을 해주세요.
5. 푸시하기
git push origin 브런치이름
이제 자신의 저장소로 푸시를 해봅시다. 푸시를 하고 나면 PR을 날리실 수 있어요.
push 후 자신의 저장소로 가보면 Compare & pull request 가 생성되어 있을 겁니다. 버튼을 눌러 pull request를 날리고 나면 저희의 역할은 끝납니다. 프로젝트 마스터가 pull request를 승인해 머지하면 프로젝트에 여러분이 작성한 코드가 들어가게 됩니다.
https://github.com/firstcontributions/first-contributions/blob/master/translations/README.ko.md
사실 위 프로젝트는 리드미가 아주 잘 되어있어 위 링크를 참고해봐도 무방합니다.
사실 실제 오픈소스에 기여하는거 좀 더 복잡합니다. 자신이 수정할 사항을 찾자 ( ! ) 부터 시작하게 되거든요. 대형프로젝트는 이슈 건지기부터가 일이라고 생각합니다. ( 아직은 혼자 pr을 날려보지 못한 사람입니다.. ) 대부분의 프로젝트는 good-first-issue가 달려있지만 남아있는 것은 남아있는 이유가 있음을 뼈저리게 느끼고 ... 대형 프로젝트는 금방 다른사람이 해결해버리니 실제로 기여하기란 생각보단 어렵더라고요.
이번에 오픈소스 컨트리뷰톤에 멘티로 선정된 덕에 조금 더 많은 정보를 나눌 수 있도록 노력해보겠습니다.
위의 프로젝트는 이런 과정을 거쳐서 기여를 하게 되는구나~ 정도로 이해하기 좋은 과정이라고 생각해 작성해 보았습니다. 많은 사람들이 기여에 한걸음 나아가길 희망하며, 오픈소스에 머지 되는 기분을 다들 느껴보시길 바래요.
혹시 틀린 정보가 있다면 피드백은 언제나 환영입니다.