오픈소스 프로젝트 번역에 기여하기

Hyunsoo Kim·2024년 8월 12일
0

오픈소스

목록 보기
1/1
post-thumbnail

개발자를 꿈꾸는 사람들이라면 '오픈 소스'라는 단어를 한번쯤은 들어봤을 것이다. 그리고 오픈 소스에 두려움을 느끼는 사람도 있을 것이다. 나 역시 그랬다. 오픈 소스란 대단한 사람들이 모여서 꾸리는 곳이고, 내가 기여할 부분은 없을 거라고 여겼다. 그러다 우연한 기회에 하나의 프로젝트를 보게 되었다.

Next.js 문서 한국어 번역 프로젝트

>> 내가 번역한 문서

Next.js는 서버 사이드 렌더링, 정적 웹 페이지 생성 등 리액트 기반 웹 애플리케이션 기능들을 가능케 하는 Node.js 위에서 빌드된 오픈 소스 웹 개발 프레임워크다.

물론 나는 자바 백엔드 위주로 공부했고, 현재도 자바를 주로 사용하는 위치이다 보니 Next.js와 가까워진 적이 없었다. 프론트엔드에 한층 뒤떨어져 살던 나였지만, '번역'에 기여하는 건 해볼 만하다고 생각해서 시작했다. 물론 그러다 큰코 다쳤다.


오픈소스 기여 신청하기

오픈소스에 기여하기 위한 방법은 프로젝트마다 다르다. 그래서 리드미 문서를 꼼꼼하게 읽어 봐야 한다. 프로젝트 리더가 컨트리뷰터에게 친절하게 설명해 두었을 것이다.

다만 보통 기본적인 폼은 대체로 비슷하다.

1. 기여할 부분을 찾으면 양식에 따라 issue를 작성한다.

코드를 직접 보며 기여할 부분을 찾아야 하는 프로젝트도 있고, 기여가 필요한 이슈들을 이미 등록해 둔 프로젝트도 있다. 직접 코드를 들여다보기 어렵다면 후자처럼 이미 기여할 부분이 명확한 프로젝트를 찾아보는 걸 추천한다.

나는 이미 프로젝트 리더가 기여할 부분을 정리하여 올려줬기에 신청하여 프로젝트에 참여했다.

2. 허가 받으면 프로젝트를 fork하여 작업을 진행한다.

이때 중요한 건, 문서를 꼼꼼히 읽고 작업하는 것이다. 오픈 소스는 광범위한 팀플레이다. 내 마음대로 작업해서는 안 된다는 뜻이기도 하다. 문서를 잘 읽고 요구사항과 코드 스타일에 맞춰 작업해야 한다.

3. 커밋 컨벤션에 맞게 pr한다.

보통 커밋 컨벤션은 정형화되어 있다. (feat, fix, refactor 등...) 하지만 프로젝트에 따라 고유하게 사용하는 컨벤션이 있을 수 있으니 잘 체크하여 코드 컨벤션을 지키도록 하자. 2번에서도 말했듯이 오픈 소스는 팀플레이다.

깃허브 pr 제목 양식도 문서를 참고해서 어긋나지 않게 작성해 줘야 한다.

4. 코드 리뷰를 받은 후 문제가 없으면 merge된다.

오픈 소스는 대부분 철저한 코드 리뷰 후에 merge가 이뤄진다. 상대가 수정을 요구하거나 다른 방향을 제시하는 경우, accept하여 수정하거나 debate를 통해 의견 차를 좁히자.

자잘한 팁?

commit할 때 모든 변경 사항을 push해서는 절대 안 된다. 순수하게 내가 작업한 코드만 밀어넣어야 한다. 그렇지 않으면 fork하면서 생겨난 여러 잡다한 코드들까지 함께 push되어 프로젝트 구성원을 어지럽게 만들 것이다.


단순한 기여인 줄 알았는데 이렇게 힘들다고?

처음 프로젝트를 찾았을 때는 단순 번역 프로젝트이기 때문에 쉽게 끝날 줄 알았다. 하지만 잔실수가 여럿 등장하며 생각보다 시간이 오래 걸렸다. (아마 프로젝트 리더분이 이 인간은 역대급 빌런이라고 생각하셨을 게 분명하다....)

push할 때 습관처럼 git add .을 쓴 바람에 필요없는 변경사항까지 모두 push되어 머릿속이 새하얘지기도 하고, 더는 실수하지 않으리라 다짐하며 문서를 읽고 또 읽은 뒤에 작업해도 어김없이 코드 리뷰에서 수정 사항을 지적받곤 했다. 나조차도 내가 왜 이런지 모를 정도로 당황스러운 일의 연속이었다. 회사에서 코드 리뷰를 받을 때도 이 정도로 실수한 적이 없었기 때문이다.

내가 익숙하지 않은 프레임워크 관련 문서를 작업하려고 해서 그런가? 내가 이 프로젝트에 폐를 끼치는 게 아닐까? 다른 분들은 쉽게 accept됐는데 왜 나만 문제지? 프로젝트 리더는 날 보고 어떤 생각을 할까? 차라리 신청하지 말걸 그랬나? 등등. return을 받아 다시 작업해야 할 때마다 좋지 않은 생각이 꼬리에 꼬리를 물고 이어지는 바람에 오히려 쉬운 것도 어렵게 가고 말았다.

심지어는 하도 실수가 나오니 양해를 구하고 프로젝트에서 하차할 생각까지 했는데, 리더 분께서 (천사같은 마음으로) 이끌어 주셔서 무사히 merge에 다다를 수 있었다.

소중한 첫 기회를 마련해 주신 프로젝트 리더 분께 다시 한번 진심으로 감사를 전한다.

profile
다부진 미래를 만들어가는 개발자

0개의 댓글