책을 쓴다는 것은 최고의 자기 계발 방법중에 하나이며 자기 이름을 단 책을 출간하는 것은 많은 분들이 언젠가는 이루겠다고 다짐하는 주요 버킷리스트이기도 합니다.

설령 출판까지는 가지 못한다고 해도 자료 수집과 저술 과정 자체에서 배우는 것이 참 많으며 고된 저술 활동을 마무리하고 표지에 내 이름이 적힌 책을 받았을 때의 성취감과 감동은 아직도 어제 일처럼 기억납니다.


저는 "리눅스를 활용한 회사 인프라 구축의 모든 것" 과 "쉽게 배우는 라라벨 5 프로그래밍" 이라는 IT 계열의 2권의 책을 썼고  이때 Confluence 와 Scroll office plugin 를 저술 도구로 사용했습니다.


책을 쓰기 위한 글쓰기 기법이나 체계적인 기획법등은 많은 책에서 잘 설명하고 있으니 저는 저술하는 동안 쌓은 노하우를 소개하고 나머지는 저작 도구로써 Confluence 를 활용하는 방법을 설명하는데 집중할 것입니다.


출판 프로세스

제가 아는 출판 프로세스는 아래와 같지만 IT 라는 특정 분야 관련 책을 쓰면서 알게 된거라 인문등 IT 가 아닌 분야는 다를 수도 있습니다.

저술 프로세스

위 절차는 상황에 따라 달라질 수 있으며 예로 유명한 저자나 블로거라면 기획후 출판사 섭외를 하는게 아니라 출판사에서 먼저 제의가 오기도 합니다.


실제로 책을 써보니 "4번 목차 작성"은 "5번 출판사 섭외" 완료후 할 수도 있고 또 초고를 저술하는동안 자주 바뀌므로 (신규 chapter 가 추가/변경/삭제 되거나 chapter 순서 변경등) 이를 잘 관리할 수 있는 도구를 사용하는 것이 좋습니다.


저술 진행

모든 일이 계획보다 지연되기 마련이지만 특히 IT 서적 저술은 업계 특성상 다루는 기술과 제품이 새 버전이 출시되거나 경쟁 제품이 더 주목받는등 다양한 외부 환경 변화가 짧은 기간 동안에 일어나므로 유연하게 대응해야 합니다.


저술은 오래 걸리고 힘든 작업이므로 꾸준히 작업하는 습관을 들이는 게 좋으며 이를 위해서는 사용하는 저술 도구는 설치가 간단하고 사용이 쉽고 이력 관리 기능을 제공하는 것을 선택하는 것이 좋습니다.


저는 작업중에 집중력을 잃지 않고 저술하기 위해서 여러 방법을 찾던중에 "뽀모도로 테크닉"을 알게 되서 이를 활용해서 저술을 했습니다.

뽀모도로 테크닉은 신승환님이 번역하신 "시간을 요리하는 뽀모도로 테크닉" 을 읽고 따라 했습니다.


초고 완성

초고가 완성되었다면 이를 기반으로 출판사와 리뷰를 시작하며 이메일이나 문자등으로 피드백을 주고 받으며 원고를 개선해 나가게 됩니다.

이때 출판사와 리뷰 작업을 진행할때 MS-Word 기반으로 진행하는 경우가 많이 있습니다.


워드를 사용하는 이유는 바로 강력한 "변경 추적 기능" 때문입니다.

워드로 작성한 초고를 보고 리뷰자가 남긴 메모를 보며 초고를 수정하면서 최종 본을 작성하며 모든 변경 사항은 쉽게 확인 가능하므로 출판사와 원격으로 작업하는 "교정, 교열 프로세스" 에서 MS 워드는 매우 유용한 도구입니다.


워드 변경 추적


이 얘기는 출판사에 제출할 초고는 MS-WORD 라는 정해진 도구로 만들어야 한다는 의미입니다.


저술 도구

이제 다시 저술 도구 선택 단계로 돌아가 보면 도구를 선택하는 중요한 제약 사항이 생긴 것을 알수 있습니다.


저는 MS-WORD 로 초고를 저술하기 위해 다음과 같은 방법들을 고려해 보았습니다.


MS-Word + Dropbox


먼저 MS-Word 를 도구로 사용하고 이를 dropbox 에 넣어서 어디서든 동일한 버전을 갖고 저술하도록 시도해 보았습니다.

꽤 괜찮은 방법이지만 제가 MS Word 를 그리 잘 쓰지 못하는 문제와 문서 양이 커질 경우 chapter 의 순서를 바꾸거나 목차를 변경하는 등 워드 문서의 구조를 많이 바꿔야 할 경우 다루기가 어려운 문제가 있어서 제외했습니다.



Markdown + github + pandoc

다음으로 시도한 것은 에디터를 사용하여 markdown 으로 원고를 작성하고 이를 github 에 push 해서 관리하는 방법이었습니다.

작성한 마크다운 문서는 문서 변환기인 pandoc 을 사용하여 MS Word 로 변환하였습니다.


pandoc 이 정말 대단한 프로그램이란 것을 느꼈고 실제로도 꽤 좋은 방법이었지만 다음과 같은 불편함이 있었습니다.

  1. github 마크다운은 기능이 간단해서 출판에는 적당하지 않았고 그렇다고 asciidoc같은 별도의 markdown 을 배우고 싶지는 않았습니다.
  2. pull + 편집 + commit + push 로 이뤄지는 저술 과정이 일반적인 글 쓰기에 비해서 낯설고 이질적이라 집중이 어려웠습니다.


특히 실수로 다른 PC 에서 commit 후 push 를 안 해서 주말에 집에서 최종 작업본을 사용할 수 없었던 일도 계기가 되어 이 방법을 제외했습니다.


Confluence + scroll office plugin

제가 최종 선택한 방법은 confluence 를 사용하여 저술하고 page 를 word 로 변환해 주는 상용 플러그인 Scroll Office Exporter 를 사용해서 MS-WORD 로 만들어 내는 방법이었습니다.

장점

다른 블로그 툴과 비슷하게 Confluence 는 브라우저만 있으면 어디서든 저술할 수 있는 점과 오랫동안 Confluence 를 사용해서 에디터와 매크로 사용에 익숙한 점, 작성한 페이지를 큰 설정없이 괜찮은 품질의 WORD 문서로 만들수 있는  점때문에 Confluence 로 저술을 시작했습니다.


단점

WORD 로 변환시 원하는 포맷을 적용하기 어렵고 템플릿 적용이 제한적이므로 문서가 썩 예쁘지 않는 문제가 있으므로 그림이 많고 화려한 책을 만드는데는 적당하지 않습니다.


소스 코드를 표시하는 code 매크로의 syntax highlight, 소스 라인 표시(프로그래밍 책에서는 예제 설명시에 매우 유용합니다.) 등의 기능은 브라우저의 java script 를 통해 이뤄집니다.


그런데 scroll office 플러그인은 변환시 code 포매싱을 지원하지 않으므로 code 매크로로 작성한 콘텐츠 표시가 어려운 문제가 있습니다.


추가로 scroll office 가 외국 제품이다 보니 표나 그림의 목차를 만들 경우 "표 목차" 등 한글로 표시가 되지 않고 영어로 표시되어 일일이 표나 그림의 caption 을 바꿔줘야 하는 문제도 있습니다.