https://ko.javascript.info/ 를 시작하게 된 계기와 프로젝트 관리 방법론을 소개합니다.
프로젝트 개요
최신 명세서를 반영한 JavaScript 학습 리소스 부족
JavaScript를 정의하는 ECMAScript 명세서(ECMA-262, 이하 명세서)는 2015년(6판, 6th Edition) 이후, 매년 나오고 있다. 그런데 명세서에 새롭게 추가된 사항들을 빠르게 반영하고 있는 한국어 JavaScript 학습 리소스가 부족한 현실이다.
Mozilla 재단이 운영하는 MDN web docs가 최신 명세서를 빠르게 반영하고 있고 로컬라이제이션도 상당 부분 진행되어 있지만, 리뷰 없이 누구나 문서를 수정할 수 있어 오역이 자주 발견된다. 또한, 한국어 혹은 번역 기술에 대한 학습이 부족한 상태로 번역에 참여하고 있는 기여자가 많아 가독성이 떨어지는 실정이다. 이런 상황을 개선하고자 The Modern JavaScript Tutorial(이하 Tutorial)의 한글화 프로젝트, ‘모던 자바스크립트 튜토리얼(이하 튜토리얼) 한글화’ 프로젝트를 시작하게 되었다.
왜 javascript.info인가?
다양한 JavaScript 학습 리소스 중 The Modern JavaScript Tutorial을 번역하게 된 계기는 JavaScript 동작 원리 등을 알고 싶어 구글링을 하다 보면 해당 Tutorial 사이트로 연결되는 것에서 출발하였다. 프러덕트에 바로 적용할 만한 샘플 코드를 찾을 때도 해당 사이트로 연결되는 경우가 잦아 상당히 유용한 자료라는 판단이 서 번역을 시작하게 되었다.
모던 JavaScript에 대한 이해가 떨어져 새롭게 시작하는 프로젝트에서도 구식 JavaScript 문법을 사용하고 있는 개발자를 보며 ‘프로젝트를 빠르게 완료하면 개발자들에게 도움을 줄 수 있고 한국 JavaScript 생태계에도 공헌할 수 있겠다’라는 생각이 들어 프로젝트를 진행하게 되었다.
추천할만한 JavaScript 학습 자료
Tutorial은 Facebook이 개발한 JavaScript 라이브러리인 React의 공식 문서에서도 소개될 만큼 다양한 곳에서 추천되고 있다. React 생태계에서 큰 영향력을 미치는 Facebook 엔지니어 Dan Abramov가 직접 MDN과 함께 본 튜토리얼을 JavaScript 학습 리소스로 추천하였다.
Tutorial은 이외에도 gitconnected.com에서 GitHub 계정을 가지고 있는 사용자가 투표를 통해 선정하는 JavaScript 학습 리소스 랭크에서 1위를 기록중이다.
Tutorial 개요와 로컬라이제이션 현황
Tutorial의 오너는 러시아의 개발자 Ilya Kantor이다. Tutorial은 2007년에 최초 작성되었으며, GitHub 리포지터리는 2014년 10월에 생성되었다.
Tutorial엔 명세서의 업데이트에 발맞춰 새로운 챕터가 지속적으로 추가된다. 구식 문법을 담은 챕터는 삭제되기도 하는데, 레거시를 유지보수하는 개발자들을 위해 내용을 아예 삭제하진 않고, 배경설명을 곁들이는 식으로 개정이 이뤄진다(예시: 오래된 var).
Tutorial은 PDF 파일로 전환시 약 1,300페이지가 될 정도로 방대한 양의 내용을 담고 있다.
번역은 약 40 여개국 언어로 진행되고 있다. 배포가 완료된 언어는 2020년 3월 기준 영어, 러시아어, 한국어를 비롯하여 총 6개 언어이다. 배포는 전체 글 중 50% 이상 번역이 진행되었을 때 진행된다.
배포가 완료된 언어: 영어, 일본어, 한국어, 러시아어, 터키어, 중국어(간체)
번역은 진행 중이나 배포되지 않은 언어: 아랍어, 아르메니아어, 아제르바이잔어, 벵골어, 불가리아어, 카탈로니아어, 캄보디아어, 중국어(번체), 불어, 그루지야어, 그리스어, 힌디어, 헝가리어, 인도네시아어, 이탈리아어, 리투아니아어, 몬테네그로어, 노르웨이어, 페르시아어, 폴란드어, 포르투갈어, 루마니아어, 신할리어, 슬로바키아어, 스페인어, 타밀어, 타이어, 우크라이나어, 우즈벡어, 베트남어 등
프로젝트 추진 성과
튜토리얼 배포
모던 JavaScript 튜토리얼을 배포하였다. 주소는 https://ko.javascript.info로, 웹 페이지에 접속하면 누구나 모던 JavaScript를 집대성한 자료를 살펴볼 수 있다. 호스트 환경에 구애받지 않고 사용할 수 있는 JavaScript 문법이 담긴 파트1(코어 자바스크립트)은 90% 이상 번역이 완료된 상태이다. 번역과 리뷰를 비롯한 기여에 한국인 기여자 100명 이상이 참여중이다.
확산
페이스북 생활코딩 페이지를 통해 최초로 튜토리얼 배포 소식을 알렸으며, 이후 다양한 SNS를 통해 자발적인 확산이 일어나고 있는 상황이다(페이스북 공유 약 300회, 트위터 리트윗 약 300회 등). 많은 개발자들이 긍정적인 피드백을 주고있으며, 개선해야 할 사항들도 꾸준히 들어오고 있어서 이를 반영중이다.
개선
Disqus, GitHub 이슈 등을 통해 다양한 개선사항을 접수받고 있으며, 이를 반영하고있다.
git과 GitHub에 익숙치 않은 학생, 개발자들을 위해 오타나 작은 개선사항이 접수되면 글쓴이가 직접 수정하지 않고 ‘good first issue’ 라벨을 붙인 이슈를 만들어 기여할 수 있도록 유도중이다.
프로젝트 관리와 번역 방법론 정립
프로젝트 관리는 Google Spreadsheet로 하고 있는데, 본문 번역 현황, 과제 번역 현황, 1, 2, 3차 리뷰 현황, 커미터 목록, 용어집 등을 해당 링크에서 누구나 확인할 수 있다.
공동 번역 작업엔 용어 합의와 번역 컨벤션 정립이 중요하다. 본 프로젝트에선 번역이 필요한 새로운 용어나 다양하게 번역될 수 있는 용어를 용어집을 통해 관리하고 있다. 현재 약 500여 개의 용어가 등록되어 있다.
여기에 더하여 번역 모범 사례를 담은 위키 문서를 만들어 문서의 일관성을 유지하고 있다. 관련 내용은 Google Spreadsheet의 용어집 시트, GitHub 리포지터리내 README.md파일과 번역 모범 사례를 담은 위키 문서에서 확인할 수 있다.
주요 레퍼런스
가장 많이 활용했던 자료는 마이크로소프트의 Language Portal이다.