한글화에 대한 시도가 없었던 것은 아닙니다. node.js에 초기시절 삼성전자에 계신 분이(성함을 잘...) 0.2.6의 문서를 한글화하기도 했고 FRENDS에서도 0.2 시절 Rhio님과 zziuni님이 번역을 시도했었고 0.4버전으로 올라온 뒤에 작년에 kyungw00k님과 함께 문서번역을 하다가 반정도한 상태에서 전 책을 쓰게되고 kyungw00k님은 번역을 하게 되면서 작업이 멈춰버렸습니다.
작업을 하다 멈춘게 아쉬워서 올해 다시 번역을 하기로 맘을 먹었습니다. 처음에는 작년에 0.4로 작업한 걸 기준으로 0.6.x와 diff를 비교하다가 변경사항이 너무 많아서 이렇게 하느니 차라리 새로하는게 낫겠다라는 색각이 들어서 새로 시작했습니다. 이번에는 같이 할 사람을 모으지 않고 그냥 혼자 시작했습니다. 이게 요즘 제가 개인 작업에 취하고 있는 자세인데 오픈소스가 대부분 그렇듯 수레바퀴가 굴러갈 때까지는 혼자 작업하는게 페이스조절도 쉽고 더 나은것 같습니다. 수레바퀴가 돌기 시작하면 누군가 도와 주겠죠.(아닐 수도 있지만.)
번역 문서
현재까지 번역된 문서는
번역 문서는 원문을 함께 보여줄 수 있도록 했습니다. 전에 클리어보스의 검은태양님이 번역한 문서를 보면서 번역문서에 원문을 같이 보여주는 건 참 좋은 아이디어라고 생각했고 이번 기회에 적용했습니다. 우측상단에 보시면 원문보기 버튼이 있고 클릭하면 원문을 같이 보여주게 했습니다. 번역 품질이 아주 좋다고 할 수는 없으므로 원문을 같이 보여줌으로써 오역이나 번역문이 잘 이해되지 않을 때 참고 할 수 있을꺼라고 생각했습니다. 저같은 경우도 번역문이 이상해도 아주 중요한게 아니면 원문을 찾아봐서 비교하게는 잘 되지 않고 찾기도 어렵기도 해서요. 오타나 오역에 대한 리포팅을 받기가 더 쉽다고 생각했습니다. API 문서외에 Node.js도 저장소에도 포함은 되어 있지만 굳이 번역할 필요는 없어보여서 뺐습니다.
번역 작업
이 번역작업은 혼자한 것은 아닙니다. 앞에서 혼자한다고 얘기했지만 v0.6.19로 작업을 하면서 얼마전에 pismute님이 modules부분을 번역해서 올리신게 생각나서 메일로 요청을 드렸더니 흔쾌히 Pull Request를 보내주시고 제가 Nodeconf를 보러가서 놀고 있을때 아직 번역안된 부분을 달리셔서 0.6.19의 번역을 끝내버리셨습니다. pismute님이 달려주신 거에 자극받아 그사이에 0.8이 나왔기 때문에 빌드작업 및 0.8번역을 위한 작업을 미국에서 열심히 달렸습니다.
요즘은 번역작업을 하면서 번역을 완료하는 것도 큰일이지만 그렇게 노력해서 번역한 것이 일회성으로 끝나는 것이 아쉬웠습니다. 기술은 계속 발전하는데 힘들게 번역된 문서는 더이상 관리되지 않고 방치되는 경우가 대부분이었고 API 문서의 경우 특히 그러합니다. 그래서 히스토리를 추적하기 위해 Node저장소를 포크받아서 작업을 했습니다. v0.6.19에서 브랜치를 따서 작업을 했는데 처음에는 원문과 번역문을 같이 보여줘야 한다는 생각에 원문 아래에 번역문을 넣었었는데 pimsute님이 작업중에 계속 지적했던대로 이게 머지하기가 쉽지 않았습니다. 그리고 이상하게 v0.6.19 브랜치가 master 브랜치로 머지가 되지 않아서 v0.8작업을 하려니 충돌이 엄청나게 생겨서 이 작업에만 몇일을 쏟았습니다.
결국 pismute님의 조언대로 번역문서는 doc-ko 폴더로 분리하고 원문은 그대로 둔 상태로 유지해서 브랜치나 태그로 빌드하기로 했습니다. 대신 빌드스크립트를 수정해서 한글문서 생성시 영어원문을 읽어와서 문서에 삽입하도록 했습니다. 이렇게 하니 영어원문이 어떻게 바뀌었는지 비교하기 쉬워지더군요. 이번 작업을 하면서 git에 대해서도 많이 배운 시간이었는데 처음에는 feature/ko 브랜치를 번역작업의 master 처럼 사용하면서 하나의 버전이 끝나면 태깅을 하는 식으로 작업을 하려고 했는데 이 또한 여의치 않았습니다. 일단 태깅으로 남기니까 관리하기도 어렵고 기존의 작업에서 업데이트가 생길 경우 태그에서 작업하고 새로 태그하기도 힘들었습니다.
다시 git의 대가인 pismute님의 조언을 받아서 버전별로 브랜치로 관리하기로 했습니다.(pismute님이 없었다면 다 끝냈을 수나 있었을 지 모르겠습니다.) 각 버전은 v0.6.19-ko처럼 브랜치를 별도로 분리해서 작업을 하고 작업이 완료되면 feature/ko로 다시 머지하는 방식을 취했습니다. v0.6.19-ko작업이 완료되면 새버전을 작업해야 되면 v0.6.19-ko에서 v0.8.2-ko 브랜치를 만든 뒤 Node의 원 저장소에서 가져온 v0.8.2-Release 브랜치를 머지하고 두 브랜치의 차이점을 비교하면서 작업을 했습니다. 이렇게 관리하니까 작업이 훨씬 수월해졌습니다.
이후 작업
일단 목표한 번역이 완료되었으므로 당분간은 추가작업은 하지 않을 생각입니다. 마이너버전 업데이트에서는 문서의 변화도 크지 않을 것으로 보고요. 번역작업이나 빌드에 관한 내용은 translate Korean 위키페이지에 약간 정리해 놓았습니다. 문서를 보시다가 오역이나 오타를 발견하시면 이슈에 올려주시면 여유가 생겼을 때 적용해 드리고 저장소를 fork 받으셔서 해당 브랜치에 직접 수정을 하시고 Pull Request를 보내주시거나 새로운 버전의 브랜치를 만들어서 Pull Request를 보내주시는 것 모두 환영입니다.
아니 저만 몰랐나요. ㅋㅋ
언제 이런걸 준비하셨대요.
완전 깜짝 이벤트입니다.
감사합니다.
굳이 홍보할 거리는 아니라서... 아는 사람이 많지는 않았어요....
워;;; API번역이라니!!!
고생하셨습니다.
안그래도 node 공부가 필요한 시점이었는데 많은 도움이 되겠네요
정말 감사합니다 ^^
공부하실때 도움되시길... ㅎㅎㅎ
정말 고생 많으셨어요. 게을러서 숟가락 하나 밖에 못 올렸지만, 덕분에 많이 배웠습니다.
무슨 말씀을요.....
(생각해 보니 공개할때 이제 공개한다고 말씀드렸어야 했는데요 ㅎㅎ)
저야말로 혼자하면 지쳤을텐데.. 덕분에 무사히 잘 끝냈네요 ㅎ Git도 많이 배우고요...
잘 보고 있습니다.
감사합니다 ^^
예 ^^
많은 도움이 될 것 같습니다.
감사드립니다.
예 도움이 되시길 바라겠습니다. 혹 보시다 잘못된 부분 있으면 말씀해 주세요 ㅎ
node 책을 사려고 하는데 node.js바뀐 것이 많아서 노드제이에스 프로그래밍이라는 책을 구입해도 되는 지요?
제 책이라 제가 얼마나 객관적으로 말씀드릴 수 있을지는 모르지만요 ^^;;
책은 0.6.6을 기준으로 작성되었고 지금은 0.8.x대가 나오고 있습니다. 0.8.x가 나온지 한달밖에 되지 않아서 대부분 아직은 0.6.x를 사용하고 있고(최신은 0.6.21이지만 마이너 업글레이드라 사용상의 변화는 없습니다.) 0.8.x를 사용하시더라도 API상의 크게 변경된 내용은 많지 않습니다. cluster나 domain쪽이 크게바뀌었다고 할 수 있는데 기본적으로 익히는데 영향을 받지는 않을 것입니다.
오히려 버전의 영향이 크다면 node.js보다는 서드파티 모듈쪽이 영향이 있을텐데요. 각 개발자들이 개발하다보니 버전이 올라가면서 변경이 될 여지가 있는데 모듈의 성격이 바뀌는 것은 아니니까 책에 나온 버전을 맞춰서 익히신 뒤에 새버전을 사용해 보시면 큰 무리는 없어보입니다.
잘 보겠습니다!ㅋㅋ
예 ^^
자세한 설명 감사합니다. 그럼 그 책으로 구매하겠습니다. 좋은 하루 돼세요
예 감사합니다 ^^
가끔 블로그에 들어와 이것저것 보고가는데요..오늘이 젤 놀랍네요..ㅎ
정말 잘보겠습니다.감사합니다.
그렇게 놀라워 해주시니 작업하길 잘했네요.
도움되셨으면 좋겠습니다. ㅎㅎㅎ
연락 바랍니다 reallee@samsung.com
무슨 연락이요?
최신버전도 있네요 감사히 보겠습니다
네 마이너 버전업데이트는 큰 변화는 없어서 여유있을때 업데이트하고 있습니다.