들어가는 글: 2화에서는 "출판사에 제안 메일을 보내는 방법"에 대해서 알아보았습니다. 이번에는 좀더 원론적인 "주제" 정하는 방법에 대해서 알아보겠습니다.
돌이켜보면 책을 쓰는데 가장 중요한 것은 "불굴의 의지"인 것 같습니다. 아무리 최신 기술을 알고 있고 현업에서 그것을 활용하고 있다고 해도 회사에서 코딩을 하는 것과 특정 주제를 잡고 책을 쓰는 것은 서로 다른 영역이라고 생각합니다.
"쓰는 것" 자체를 고민하면 모를까
"무엇을" 쓸지에 대해서는 너무 고민하지 않으셨으면 좋겠습니다.
책을 쓸 때 주제를 정하는 몇 가지 기준입니다.
1) 현재 실무로 하고 있는 기술을 정할 것
2) 꾸준히 새로 나오는 기술을 정할 것
3) 기술 활용을 넘은 개발 철학을 담은 주제를 고를 것
프로그래머들이 책을 고르는 이유는 위에서 말한 1~3번의 역방향에 해당합니다.
1) 현재 실무로 그 기술을 어떻게 활용하는지 궁금하기 때문에
2) 새 버전의 기능을 체계적으로 알고 싶기 때문에
3) 당장 현업에 적용하는 것을 넘어 SW개발 자체에 대한 깨달음을 얻고 싶기 때문에
등등입니다.
위와 같은 기준을 가지고 주제를 정해봅니다.
대부분의 경우에 해당합니다. 예를 들어 <앵귤러 첫걸음>의 조우진 작가는 회사에서 앵귤러JS를 활용하여 프로젝트한 경험을 일반화하여 책을 집필하였습니다.
또한 제 경우도 안드로이드 개발을 하면서 그레이들(gradle)이라는 빌드 도구를 남들보다 좀더 먼저 활용하였기 때문에 <안드로이드를 위한 Gradle>을 집필할 수 있었습니다.
이와 같이 남들보다 좀더 앞서서 프로젝트를 하고 있다면 주저없이 그 주제를 정하시기 바랍니다.
중요한 것은 실무로 아무리 풍부하게 해당 주제에 알고 있다고 해도 막상 책을 써보면 빈구멍이 숭숭 보이는 것을 경험하게 됩니다. 실무에서 활용하는 것은 책의 내용에 일부분에 불과하기 때문입니다. 책을 집필하면서 해당 기술을 좀더 가다듬고 완성하는 기분을 느낄 수 있습니다.
그만큼 힘든 작업이기도 합니다. 이것을 당장 쓰지도 않는데 왜 공부해야 하지? 이런 생각이 들수도 있거든요.
첫번째 이유 외에 다른 의도를 가지고 주제를 정할 수도 있습니다.
세상에는 오랫동안 많은 개발자들의 사랑받으면서 꾸준히 버전업을 하는 기술들이 있습니다. 예를 들어
1) Java 7, 8, 9... (프로그래밍 언어)
2) Python 2, 3.. (프로그래밍 언어)
3) Android 6, 7, 8... (모바일 운영체제)
4) Spring 3, 4, 5... (웹 프레임워크)
5) Oracle 8, 9, 10, 11... (DBMS)
등등입니다.
이들 기술은 빠르면 6개월에서 몇 년에 한번씩 새로운 버전을 출시합니다. 개발자는 새로운 것을 좋아하기 때문에 새로운 버전의 기능을 정리하여 책으로 출판하는 것은 주제를 선정하는 좋은 기준이됩니다.
예를 들어 Java9의 경우 작년에 나올 것으로 기대되었으나 몇 번의 연기를 거쳐 현재 2017년 9월경에 공개된다고 합니다. Project Jigsaw가 한번의 부결을 딛고 간신히 JCP 위원회의 승인을 받았거든요.
아마도 자바9이 나올때는 관련 서적들이 많이 나올 것입니다. 이것은 실무로 할 수가 없지요.
실무는 새로운 기술이 나오고 나서 그 다음에 어느정도 초기 수용자(early adapter)의 평가를 거친후에 도입할 수 있습니다. 스타트업은 비교적 빠르게 신기술을 도입할 수 있지만 대기업의 경우 도입의 속도가 매우 늦어지게 됩니다.
예외적으로 안드로이드 OS의 경우 소비자들이 "항상" 새로운 OS가 탑재된 폰을 원하기 때문에 그 도입속도가 매우 빠른 편입니다. 책을 쓸 수 있는 주제로 아주 좋습니다.
1번과 2번의 경우에는 비교적 쉽게 접근할 수 있으나 3번은 다릅니다. 어느정도 네임 밸류(name value)도 있어야 하고 개발자로서의 내공도 있어야 하고 무엇보다도... 필력이 좋아야 합니다.
보통 3번과 같은 주제를 출간하는 저자들은 이미 유명 미디어에 정기 칼럼을 가지고 있는 경우가 많습니다. 평소에 기고를 통해서 본인의 메시지를 다듬은 다음 그것을 모아서 책으로 내는 형태입니다.
대표적인 예가 "나는 프로그래머다(이하 나프다)"로 유명한 임백준 님이라고 생각합니다. <뉴욕의 프로그래머>부터 최근에 집필한 <대한민국을 살리는 개발자 문화>까지 종횡무진 활동하고 계십니다.
자세한 내용은 위키를 참고하세요. (https://ko.wikipedia.org/wiki/%EC%9E%84%EB%B0%B1%EC%A4%80)
이것에 대한 내용은 제 수준을 넘기 때문에 더이상은 말씀드리기가 어렵네요.
하지만 모든 기술 저자들이 도달하고 싶은 '워너비'의 단계인것 같습니다.
현업에서도 인정받고
개발자 사회에도 좋은 선배 개발자로 공헌하고
본인의 전반적인 커리어에도 도움이 되는 그런 것을 우리(저 포함)는 기대합니다.
이렇게 주제를 잡는데.. 저는 한가지 "팁"을 드리고자 합니다.
주제는 가능한 좁게 잡았으면 합니다. 자바 혹은 안드로이드 같이 주제가 넓으면 집필해야 하는 "분량"이 크게 늘어나게 됩니다. 보통 언어의 기본서는 700 ~ 800페이지정도 되더라구요. 처음 집필할 때 이정도의 분량은 부담으로 다가오게 됩니다.
현실적으로 내가 쓸 수 있는 분량은 어느정도일까도 평소에 고민해보는 것이 좋습니다.
이럴때 주제를 좁게 잡으면 도움이 됩니다.
현실적으로 처음 집필을 하실 때는 200~ 300여 페이지로 잡으시는게 좋을 것 같습니다. 그래야 6개월 이내에 초고 완료하고 편집을 거쳐서 출판하기가 (아무래도) 수월합니다.
4화에서는 "경쟁도서" 분석하는 방법과 "제목"을 정하는 것에 대해서 좀더 알아보도록 하겠습니다.
벌써 올해도 절반이 흘렀네요.
7월의 첫날인데요~ (이제 2분이 남았네요 ㅋㅋ)
남은 한해도 의미있게 시작하시기 바랍니다.
감사합니다.
2017.7.1