2020년 4월 21일 화요일

JREPL

일을 편리하게 해주는 여러 가지 도구가 있지만, 그런 도구들을 잘 사용하려면 적든 많든 노력이 필요하게 마련이다. 때로는 그런 노력을 하는 것이 너무 부담스러울 때도 있어, 차라리 불편하게 일하는 쪽을 택하기도 한다.
내가 라즈베리 파이 문서 번역을 처음 시작할 때가 그랬던 것 같다. 그 전에 이미 여러 해 동안 번역을 하면서 이런저런 도구를 접해봐서 알고 있었음에도 불구하고, OmegaT도 사용하지 않고 git 클라이언트도 없이 깃허브 사이트에서 텍스트를 복사해서 위키독스 웹 인터페이스에 붙여넣고 무식하게 작업을 했던 것으로 기억한다. 일을 편하게 하자고 골치 아파지는 것이 싫었던 것 같다.

지금은 거의 손을 놓고 있지만, 몇 년이 지난 지금도 원본 문서는 계속 업데이트되고 있어 몇 달에 한 번 정도 들여다보곤 한다. 요즘 작업 방식은 이렇다.
1. GitHub Desktop을 사용해 문서 저장소를 pull(PC에 가져옴)
2. 원본 문서를 번역에 적합한 source 파일로 가공
3. OmegaT에서 번역
4. 번역이 완료된 target 파일을 복사해서 위키독스에 붙여넣기

2번 단계에서 하는 일은 이렇다.
a. 원본 문서의 계층 구조(디렉터리/.../파일명)를 위키독스의 구조(페이지 번호)에 맞게 변환
b. 변환된 계층 구조에 맞춰 문서 내의 하이퍼링크를 수정
원본과 번역본의 계층 구조가 다른 이유는 위키독스에서 페이지를 flat하게 부여하기 때문이다. 이 차이점을 근본적으로 해소하기 위해 다른 서비스로 이전해야 할 지 고민해봤지만, 번역을 거의 다 해놓고 유지보수하는 단계에서 굳이 그럴 필요는 없다고 결론을 내렸다.

문제는 2번 단계를 수작업으로 하다보니 너무 많은 노력이 들어가고, 인적 오류 발생 가능성이 상존한다는 것이었다. 그래서 얼마 전부터 그 부분을 자동화하기 시작했다. 자동화라고 해서 대단한 건 없고, 단순히 COPY 명령을 나열하는 수준으로도 a 작업을 할 수 있다. 그리고 b 작업은 본질적으로 문자열 치환을 하면 되는 것이라서 Windows batch 파일을 작성할 때 쓰이는 간단한 for 문을 사용해 처리했다.

그렇게 사용하다보니 몇 가지 가려운 부분이 생겨서 조금씩 수정을 하게 됐는데, batch 문법을 잘 몰라서 매번 애를 먹었다. Python을 사용할까 하는 생각도 해보고, 일부 과정을 Linux나 Mac 환경으로 옮겨서 하는 것도 생각해보고, cygwin도 생각해봤지만(참, Windows에서 bash가 된다고 했었지) 모두 마음에 들지 않았다. Windows 환경에서 native하게 할 수 있는 방법으로 처리하고 싶었다.

오늘은 PowerShell로 할 수 있는 방법을 찾아서 시도해봤는데 잘 안 됐다. 그 후에 방법을 계속 찾다보니, batch 문법만으로는 근본적인 한계가 있어 JREPL을 사용한다는 사람이 있었다. JREPL은 batch와 JScript가 섞인 하이브리드 스크립트로, 문자열 치환을 제대로 처리해준다. 스크립트 파일 하나만 갖다놓으면 사용할 수 있고, 내가 원하는 일을 모두 제대로 처리해줘서(그렇게까지 만드는 과정이 험난했지만) 아주 마음에 든다.

댓글 없음:

댓글 쓰기