📚 1. 사전 지식
오픈소스
# 오픈소스 : 개방형 협업, 포용성, 투명성, 빈번한 업데이트를 통해 지적 재산(e.g. 소프트웨어)을 창출하는 것에 대한 커뮤니티 기반 접근 방식
오픈소스에 기여하는 방법은 다음과 같은 방법들이 있다.
1. 코드 작성: 프로젝트의 버그 수정, 새로운 기능 추가, 성능 개선 등을 통해 기여할 수 있습니다.
2. 문서화: 사용자 가이드, 개발자 가이드, API 문서, 주석 등을 작성, 수정하거나 개선할 수 있습니다.
3. 디자인: 프로젝트의 로고, 웹사이트, 사용자 인터페이스(UI) 등의 디자인을 개선할 수 있습니다.
4. 테스트 및 QA: 코드를 테스트하고, 버그를 찾아내고, 이슈를 보고하여 프로젝트의 품질을 높일 수 있습니다.
5. 사용자 지원: 사용자 질문에 응답하거나, 문제 해결을 도와주며, 사용자 경험을 개선할 수 있습니다.
6. 번역: 프로젝트의 문서, 웹사이트, UI 등을 다른 언어로 번역하여 국제화에 기여할 수 있습니다.
7. 코드 리뷰: 다른 사람들이 제출한 코드를 검토하고 피드백을 제공하여 프로젝트의 코드 품질을 높일 수 있습니다.
생각하던 것보다 상당히 광범위하게 오픈소스 기여에 해당한다. 이 중에서 나는 이 글에서 '번역'을 통해 오픈소스에 기여한 썰을 풀어보고자 한다.
🤩 2. 실제로 구현하기
1. 내 컴퓨터에 환경 세팅하기
React 공식 github에 접속하면 각 언어별로 저장소가 분리되어있음을 확인할 수 있다.
이 중에 ko.react.dev 저장소에 접속하면 다음과 같이 친절하게 가이드라인이 주어진다.
가이드라인대로 하면된다. 가이드라인이 너무 친절하게 가이드라인이 작성되어 있어서 부가설명이 필요 없을 정도이다.
내 컴퓨터에 세팅을 완료하였다면, $ yarn dev를 입력해 서버를 실행한다.
이제 번역이 안된 부분을 직접 찾으면 된다.
1. 최신 버전으로 실행했을 때 번역이 안 된 부분
2. 저장소의 pull request에 아직 올라오지 않는 부분
위의 두 가지 모두 성립해야 한다.
2. 번역하기
fork한 본인의 저장소에서 본인 이름으로 branch를 판다. 그리고 이제 번역을 하면 된다. 번역하기 전에 용어와 모범 사례를 한 번씩 읽어보고, 체크해 가면서 번역을 하길 바란다.
3. 검토 받기 : PR 올리기
번역을 완료하였다면 이제 PR을 올려보자. PR은 본인이 fork 한 downstream 저장소 -> ko.react.dev upstream 저장소로 올리면 된다.
위 사진처럼 올리면 된다.
물론 번역을 완벽하게 하여 올리면 좋겠지만, 번역을 처음 해봐서 막막하다면 너무 걱정하지 않아도 된다. 관리자님들이 친절하게 review를 해주실 것이다. 나의 경우 PR올리고 이틀 뒤에 comment를 달아주셨다.
3. 기다리기 : Merge
아직 정해지지 않은 규칙들이 있어서 올린 PR을 태그하며 issue에서 토론을 나누시기도 한다.
모든 리뷰를 반영하여 push를 완료하면, 최종 검토가 진행된 후 약 1주일 내로 내가 번역한 부분이 React 공식 문서에 병합(Merge)되어 반영된다. 아래 내용은 바로 내가 번역한 부분인데, 이게 제대로 번역된 것인지 확신이 서지 않아 처음에는 짧은 부분만 번역했다. 하지만 이제는 번역하는 방법에 대해 확신이 서게 되었으니, 다음에는 좀 더 많은 부분을 번역하여 오픈소스에 기여하려고 한다.
🤔 2. 느낀 점 / 배운 점 / 추가로 공부할 것
불과 얼마 전에는 React 공식 문서를 열심히 찾아보며 새로운 내용을 학습했던 것이 엊그제 같은데, 지금은 그 문서를 번역하여 다른 이들에게 도움을 주고 있다. '그 사이트, 내가 번역했어!'라고 말할 수 있다는 사실에 너무나도 뿌듯하고, 설렘으로 가득 찬다. 마치 어느 다리를 건너가며 '이 다리 내가 지었어!'라고 자랑스럽게 말하는 어르신들의 마음이 이런 것이었을까.
번역 작업을 진행하면서, useCallback에 대한 부분을 추가로 찾아보며, 내가 번역한 내용이 정확한지 확인하는 과정에서 깊이 있게 학습할 수 있었따.
정말 뜻 깊은 경험이었다. React처럼 대형 프로젝트에 기여한 것만으로도 무척 자랑스럽다.
'개발 일상 > 개발 이야기' 카테고리의 다른 글
[개발 이야기] 이번 여름 방학, 나의 계획 (6.15 ~ 8.31) (1) | 2023.06.15 |
---|---|
[개발 이야기] 내가 개발자가 되고 싶은 이유 (0) | 2023.05.09 |
[개발 이야기] 스타트업 인턴 프로그램 코딩테스트 후기 (0) | 2023.04.29 |
[개발 이야기] LeetCode 이용 후기 (0) | 2023.04.02 |
[개발 이야기] 이제는 3학년, 1학기 나의 목표 (3/2 ~ 6/14) (0) | 2023.03.02 |
[개발 이야기] 사이드 프로젝트 개발팀을 굴려보자 (0) | 2023.02.17 |
[개발 Life] 갖고 싶다, 맥북 (+ 맥북 싸게 구매한 후기) (0) | 2023.02.03 |
[개발 이야기] 개발용 컴퓨터를 교체해보자 (0) | 2023.01.21 |