회사에서 FastAPI 로 전환을 하기에 FastAPI Document 를 보면서 공부중이었다. 한국어로 번역된 문서도 있는반면 영어 그대로인 문서들도 있었다. 왜일까? 하고 찾아보던중 FastAPI Github 에서 번역활동이 진행중이며, 한국인 번역 참여자는 16명 정도라는 것을 알게 되었다.
대학생때 수업 대부분을 영어로 들었고 점수도 나쁘지 않았다는 자신감에 그 번역, 내가 하면 되는거 아닌가 하는 생각이 들었다.
1) 공부도 하고, 2) 비록 번역이지만 오픈소스에 기여도 해보고, 3) 한국어로 된 자료가 늘어나면 FastAPI 가 한국에 더 뿌리내릴수도 있고, 1석 3조의 전략이었다.
첫번째 PR 을 위한 노력
하지만 걸림돌이 하나 있었다. 오픈소스에 RP을 날리는 방법을 모른다. 그동안 Spring 코드 까본다고 Spring 소스 clone 만 해봤지 그 소스코드에 내가 무언가를 해본적은 없었다. 그래서 아래와 같이 진행했다.
1) 구글에 "How to contribute open source project in github" 검색하고 관련 글 하나 읽기
2) 내가 기여하려고 하는 프로젝트의 기여 규칙을 찾는다. (아마 90% 이상의 관련 글이 해당 프로젝트의 "룰"을 준수하라고 했을 것이다.)
3) 그래서 FastAPI 에서 한국어 번역에 관한 규칙을 찾았다. 정형화된 커밋 메시지의 패턴을 찾아내고, 관련 Discussion 에서 원래 활동하시던 번역 기여자분들의 규칙을 찾았다.
4) 이제는 Fork 를 하고 내가 번역하고자 하는 문서를 번역하면 된다.
PR 을 다 해보고 찾은 정보인데 오픈소스에 기여하는 연습을 해볼 수 있는 repository 가 있다. (부디 다른 초심자분들은 미리 찾아서 도움을 받을 수 있길 바란다.
이렇게 노력해서 올린 첫번째 PR 은 내가 스스로 Close 했다. 의욕이 너무 앞서서 번역한 2개의 문서를 하나의 PR 에 묶어버린 것이다.
그리고 다시 작업을 했고, 두번째 PR 은 리뷰를 받고 최종적으로 Merge 까지 될 수 있었다.
두번째 PR 의 리뷰어분께서 찾아주신 오류는 2개의 사소한 오류였다. 번역 규칙을 찾아보고 적용하고자 했던 노력이 빛을 발한것 가아 뿌듯했다.
첫번째 Review 를 위한 노력
두번째 PR 이 Merge 가 된 이후 세번째 PR 을 올렸다. 내가 평소에 중요하게 생각하는 테스트에 대한 내용이어서 즐겁게 번역했다.
그런데 지난번엔 PR 요청을 보내고 7일 뒤에 리뷰를 받았었는데, 이번엔 14일이 다 지나도록 리뷰가 안되는 것이었다.
어떡할지 고민하다가 다른 한국어 번역 기여자 분이 PR 올린게 있어서 봤다. 이분의 PR 도 아직 리뷰를 받지 못하고 있었다. 그러다 문뜩 Discuss 에서 봤던 말이 떠올랐다. '한국어 번역을 리뷰할 수 있는 자격은 굳이 따지자면 한국어 네이티브 정도입니다. 활발히 리뷰해주세요' 이런 내용이었다.
그럼 나도 리뷰 할 수 있나? 하는 생각이 들어서 변경된 파일(Files changed) 버튼을 눌렀다. 역시나 리뷰가 가능했다. 마침 나의 두번째 PR 을 리뷰해주셨던 분이었기에 정성스럽게 리뷰해야겠다는 생각이 들었다.
번역 규칙 준수는 문제가 없었지만 번역이 애매한 용어가 나왔다. 나는 관련 영어문서에서 유사한 단어가 있는지 찾아보고 해당 문서를 번역한 기존 한국어 문서에서는 어떻게 다뤘는지 파악한 뒤 리뷰를 할 수 있었다.
첫번째 오픈소스 기여를 해본 소감
- 마음먹으면 바로 해보자, 만약 오픈소스에 어떻게 기여하는지 모르니까 다음에 하자 했으면 이런 경험을 못해봤을 것이다.
- 오픈소스 규칙을 잘 따르지 않는 사람이 생각보다 많다. 그리고 그들에게 아무도 심한 말을 하지 않는다. 기본적인 매너를 지키는 선에서 일단 도전해보자.
- 번역이라고 할지라도 PR 이나 리뷰를 하면서 공부에 많이 도움이 된다. 특히 리뷰같은 경우는 기존 영어문서, 한글문서를 모두 읽어야 의미있는 리뷰가 가능했기에 더욱 값진 경험이었다.
- 오픈소스를 주로 관리하는 사람이 있는것 같다. 거의 bot 마냥 PR 들에 태그를 붙이는 사람이 있는데...열정이 대단하다.
- Github 이라는 플랫폼을 다시 보게된것 같다. 이제는 관심있는 Repository 에 별표시를 하고 주기적으로 보게되었다. 세상엔 멋진 프로젝트가 많다.
'탐구 생활 > FastAPI' 카테고리의 다른 글
FastAPI 의존성 주입, Depends 를 알아보자 (0) | 2024.12.04 |
---|---|
FastAPI: fastapi-permissions 를 이용한 접근제어 (0) | 2024.12.01 |