어쩌다 책을 쓰게 되었나요?

‘개발자를 위한 레디스' 책 쓰기 대장정 회고

GARIMOO
How Was Your Day
11 min readNov 11, 2023

--

2021년 1월 계약서를 썼고, 2023년 11월 8일에 책이 출간됐다. 430쪽이 넘는 두꺼운 책에 단일 저자긴 하지만 일반적으로 기술 서적을 쓰는 다른 사람들보다 두 배는 넘는 시간이 걸린 것 같다. 계약서를 작성할 때에는 4년 차의 초 주니어 엔지니어였는데 이제는 꽉 찬 6년, 곧 7년이 되어 주니어라고 스스로를 칭하기에는 왠지 부끄러운.. 미드레벨 엔지니어 정도가 된 것 같다. 어쨌든 책을 썼던 길었던 여정을 한번 돌아보고자 한다.

계기

2019년에 처음 레디스를 운영하게 되었다. 아직 2년 차였고, 담당하고 있는 RDBMS 서비스가 많지 않아 상대적으로 새로운 기술에 대한 공부를 할 시간적 여유가 있었던 나는 기술에 대해 깊이 공부하고, 여러 테스트를 해서 팀에 공유하고, 이런 내용들을 정리해서 개인 블로그에 정리하기 시작했다.

아직 실제로 운영하는 레디스가 많이 없었기 때문에 다른 개발자들은 기존에 어떤 방식으로 레디스를 사용하는지 궁금해서 사내의 다른 동기들한테 이것저것 물어보고 다녔었는데, 그중 한 명이 자기 팀에서 운영하는 레디스가 멀티 마스터라고 주장하고, keys * 커맨드를 날리려고 하는 상황을 목도하고 깨달았다. ‘레디스를 잘 모르고 사용하는 사람들이 많은가 보다. 적어도 내가 알고 있는 내용들을 잘 정리해서 공유하면 좋을 것 같다.

그래서 사내 게시판에 공부했던 내용을 정리해서 글을 올렸다. 이 글을 쓰면서 어떤 내용을 어떻게 설명해야 사람들이 잘 이해할 수 있을까 고민하는 과정이 즐거웠다는 것이 문득 기억난다. 새벽까지도 집중해서 글을 쓰고 수정하고 업로드했던 밤이 기억난다.

사내 게시판

이때 반응이 좋아서 사내 기술 블로그에도 올라가고, 기술공유상(상품이 무려 최고 사양 아이패드 프로)도 수상하게 됐다.

개발자를 위한 레디스 튜토리얼 01 (링크)
개발자를 위한 레디스 튜토리얼 02 (링크)
개발자를 위한 레디스 튜토리얼 03 (링크)
개발자를 위한 레디스 튜토리얼 04 (링크)

그리고 사내의 멋진 시니어 개발자분들에게 칭찬의 댓글을 많이 받고, 심지어 당시 CTO님의 댓글도 받았다. CTO님이 사내 게시판에 댓글 남겨주시는 건 처음 봐서 너무 좋아서 캡처해놨었다.

그리고 사내 기술 블로그에 올라간 저 글이 많이 돌아다니는 걸 보고, 이런 내용의 글이 수요가 있다는 것을 알게 되었다. 그리고 한국에 레디스 기본서가 없어서 내가 한번..? 이라는 생각도 들었다. 원래는 원서가 있다면 번역을 하고 싶었지만, 외국에도 신규 버전의 번역할만한 책이 없었다.

출판사 컨택 (2021.01)

내가 아는 기술 서적 출판사에 무턱대고 출간 제의를 보냈다. 초고도 없는 상태에서 ‘이런 내용으로 책을 쓰고 싶습니다!’ 라고 들이대다니 지금 생각해도 신기하다.

나조차도 레디스에 대해 잘 알지 못한 상태에서 출간 제의를 보냈으니, 목차도 부실하고 쓰고자 하는 내용 자체도 굉장히 얕았다. 세개의 출판사에서는 각각 이런 답변을 받았다.

  • A 출판사: 많은 기업에서 레디스를 사용하고 있는 지금, 튜토리얼 서적으로 출간하기에는 독자층이 너무 적을 것 같다.
  • B 출판사: 레디스 단일 주제로서는 크게 시장성이 없을것 같다. NoSQL 주제의 책이 좋을 것 같다. 튜토리얼 형태보다는 실무자를 위한 노하우를 강화했으면 좋겠다.
  • C 출판사: 레디스에 대한 내용으로 출간하는 것 긍정적으로 검토하겠다. 다만 샘플 원고를 보내면 검토에 참고하겠다.

부랴부랴 샘플 원고와 저자 프로필을 작성해 C 출판사에 답변했고, 출간을 진행하자는 연락을 받았다. 그래서 2021년 1월에 계약을 하게 되었다.

초고 작성 (2021.01 ~ 2022.12)

책을 쓰는건 생각보다 훨씬 더 어려운 일이었다. 일단 정확한 정보를 전달해야 하기 때문에 내가 알고있는 내용들도 다시 한번 확인해야 하고, 모든 내용을 직접 테스트하는데 오랜 시간이 걸렸다.

처음에는 책의 전체적인 흐름이나 뼈대는 생각하지 않고, 들어가야 하는 내용들이 뭘까 고민하고 일단 썼었다. 레디스의 자료구조, 활용 사례, 캐시로 사용하기, 데이터 백업, 복제, 센티널, 클러스터 내용까지정도, 기존에 작성했었던 글을 기반으로 쓸 수 있는 내용들을 먼저 작성했었다.

그 이후 책 내용의 완성도와 흐름을 위해 어떤 내용이 추가적으로 들어가야할지 고민하며 리서치하기 시작했다.

insights 폴더

레디스에 대한 원서도 찾아보고, 레디스 오픈소스도 뜯어보고, 국내외의 다양한 자료들을 일단 수집하기 시작했다. 이 과정이 제일 어려웠던 것 같다.

기술 서적 집필이 분명 소설같은 창작물을 쓰는것이 아님에도 불구하고 창작 활동이라고 느꼈던 것은 방대하게 널려있는 자료들을 받아들여서 내 것이 될 수 있도록 완벽하게 이해하고, 이걸 가공해서 누군가를 이해시키기 위해 이야기로 만들어서 설명해야 했기 때문이다. 어쨌든 책에는 이야기가 있어야 한다. 특정 기능을 설명할 때에도 그 기능이 언제 필요하고 왜 생겨났고, 어떻게 사용해야 하는지 설명해야 한다.

그리고 특정 자료를 적절하게 내 책의 중간중간에 끼워넣어야 하는데, 어떤 내용을 가공해야 할지 판단하는 것도 쉽지 않았다. 그래서 내용을 구성하는 데에 정말 오랜 시간이 소요되었다.

그리고 이렇게 오래 걸린 데에는 나의 게으름이 한몫을 했다. 기간 자체는 2년이었지만 그중에 한 6개월정도는 거의 ‘써야하는데..’ 라는 부담감과 무거운 마음만을 갖고 아무것도 하지 않았었다.

하지만 다르게 생각해보면, 이 긴 집필 기간동안 실제로 레디스를 운영하면서 크고 작은 이슈 사례들을 많이 접하게 되었다. 데이터베이스 엔지니어로서 저장소를 보는 시선 자체도 확장되어서, 책에 쓰고자 하는 내용도 많아지고 깊이도 깊어질 수 있었던 것 같다.

1차 편집 (2022.12 ~ 2023.07)

초고를 작성할 때에는 마크다운을 이용했고, 편집자님한테 전달할 때에는 pdf로 파일을 만들어서 전달드렸다. 마크다운을 이용한 이유는 여러가지가 있다. 일단은 매번 글을 쓸 때 마다 내 프라이빗 깃허브에 백업을 했기 때문인데, 수정할 때 변경 이력을 추적해서 예전에 더 좋은 표현이 있으면 그걸 되살려야 할 경우가 있지 않았을까 싶어서도 있고, 매일 글을 쓰고 수정함으로써 잔디를 심고 그걸 보고 자극을 받기 위해서였다.

결론적으로는 잘못된 고집이었다. (그때 다른 친구가 그렇게 하지 말랬는데도 고집부렸던 대과거의 나때문에 과거의 내가 고생했다.) 문장은 수정할수록 좋아지고, 의미만 맞다면 그 이전 문장으로 돌아갈 일이 절~대 없다. 그리고 깃허브 잔디는 나태한 나에게 아무런 자극이 되지 않았었다… 아이폰 위젯으로 메인화면에 띄워놨지만 매일매일 순백을 유지했었다.

아무튼 그 마크다운 문법으로 작성한 파일을 다시 워드로 변경하고, 그러면서 이상한 문장을 한번 검수하고, 대충 만들어놨던 그림 파일들도 좀 깔끔하게 다듬었다.

원고 파일, 장별 그림 파일, 장별 그림 파일의 원본 파일 (ppt, keynote) 를 모아서 정리해서 편집자님에게 전달해야 했다. 전체적으로 전달한 이후에도 아래와 같이 자잘한 수정사항이 계속 있었다.

1차 편집 이후 수정 요구사항

2차 편집(2023.09 ~ 2023.10)

내가 전달한 워드 파일과 그림파일을 출판사에서 편집해서 하나의 pdf로 만들어서 보내주셨다. 하나의 파일로 묶어서 보니 내가 쓰면서 실수했던 내용도 너무 많이 보이고, 편집해주시는 과정에서의 실수 (그림 파일의 오타 등)도 생각보다 꽤 많았어서 하나하나 잡아내는 것이 힘들었다.

올해 이직을 하면서 기존과는 다른 환경에서 레디스를 운영하게 되었는데, 그러면서 새로 알게 된 내용들도 싣고 싶은 욕심이 생겨 기존 원고에 추가적인 내용도 50쪽 이상 추가하게 되었다. 어떻게든 내가 알고 있는 내용들을 꽉꽉 담아서 좋은 책을 만들고 싶은 욕심이 있었기 때문에 스트레스를 받았었다.

베타리딩

몇몇 분들께 베타리딩을 부탁드렸는데, 사실 일정이 촉박하기도 하고 양이 너무 많아서 부탁하는 것조차 너무 죄송하기도 했었다. 그래도 시간을 내서 봐주신 분들에게 정말 감사했다.

그 중 나의 전 직장 동료분이 무려 이런 리뷰를 보내주셨다.

너무너무 감사했던 베타리더

나와 편집자분이 몇번이고 보면서 수정했음에도 불구하고, 비문과 오타가 정말 많이 있었었다. 이걸 하나하나 자세하게 보면서 수정해주시고 파일로 정리해서 보내주셨다니.. 보는 순간 진짜 놀랐고 감동받았다. 시간이 없어서 200쪽까지밖에 못봐주셨다고 미안하다고 하셨지만 진짜 최고의 피드백이었기 때문에 정말 감사했다. 출간된 뒤 만나서 감사의 인사로 소고기 사드렸지만, 다음에 더 좋은것도 사드릴 예정이다.. 감동…

책 표지

출판사에서 책 표지 샘플을 7개 보내주셨는데, 사실 그중에 별로 마음에 드는 것이 없었다. 그냥 제안주신걸로 할까 했지만 어쨌든 내 이름으로 나오는 책이고, 내가 계속 홍보해야 하는 책인데 내 마음에 드는 디자인으로 변경하고 싶은 욕심이 있어서 책 표지 글씨체부터 디자인까지 새로 제안드렸다.

내가 제안한 표지 디자인

내가 제안한 디자인을 기반으로 출판사 디자이너분이 다듬어주셔서 최종 책의 디자인이 결정되었다. 약간의 수고로움이 있었지만 그래도 마음에 드는 표지로 출간하게 되어 다행이라고 생각한다.

쓰다 보니 오래걸려서 마지막엔 많은 내용을 생략했지만.. 아무튼 이런 과정들을 통해 책을 썼고, 정말 너무너무 힘들었다! 일단 4년차 이상부터 회사 일도 많아져서 야근을 하는 경우도 종종 있었는데, 그럴 때면 진이 빠져서 퇴근한 뒤 다시 책상에 앉기가 너무 힘들었다.

또 거의 재택근무를 했는데, 안그래도 나는 원래 집에서 뭔가 집중을 잘 못하는데 집에서 일하는데 집중을 다 쏟은 뒤에 다시 글을 쓰기 위해 집중을 하기란 정말 쉬운 것이 아니었다.

그래서 나를 통제하기 위한 몇몇 방법들을 사용했었다.

  1. 뽀모도로 타이머 사용하기

Forest 어플은 아이폰에 설치했는데, 일정 기간동안 핸드폰을 보지 않으면 내 숲에 나무가 자라는? 그런 어플이다. 핸드폰을 안보고 집중하기 위해 사용했는데 이걸 사용하니 맥북으로 딴짓을 하게 됐다..

그래서 맥북용 뽀모도로 타이머도 사용했다. 일정한 시간동안 인터넷을 사용할 수 없도록 제어했는데, 집중 시간뿐 아니라 휴식 시간도 제어할 수 있어서 좋았다. 보통 뽀모도로 타이머를 사용하면 40분 집중하고 쉬어볼까~ 할 때 눈 깜짝할 사이에 한시간을 놀아버리는 그런 참사가 발생하는데.. Flow 어플은 쉬는시간도 지정할 수 있어서 좋았다.

2. 집중하는 나를 타임랩스로 촬영하기

이렇게까지 해야하나 싶지만 한동안 정말 너무 하기 싫고 막막할 때가 있었다. 일단 노트북 앞에 앉긴 하지만 계속 딴짓만 했었다. 뽀모도로로도 나를 제어할 수 없을 때에는 맥북에 Flow 어플을 킨 다음 타임랩스를 찍었다. 핸드폰으로 찍었기 때문에 핸드폰을 사용할 수 없었고, 내 화면을 녹화했기 때문에 딴짓을 하면 찍혀서 내가 할일을 할 수밖에 없었다.

물론 누구한테 보내거나 하진 않았지만 그냥 무언가 나를 찍고 있다는 느낌을 받으면 어떻게든 조금씩 할일을 하게 되기도 했다.

얼마전 책이 출간된 이후 주변에서 왜 책을 쓴거야? 어떻게 쓴거야? 힘들었겠다.. 등등 많은 반응을 들었다. 이 긴 시간들을 돌아보니 많이 스트레스받고 힘들었던 시간들도 분명 존재했지만, 책을 쓰며 정말 많이 성장하고 배웠던것 같다고 느낀다. 기술적인 것도 그렇고, 글쓰기도 그렇고, 그 외의 것들도. 누군가 책을 쓰는 것을 추천하냐고 물어본다면 선뜻 그렇다고 말하긴 어렵겠지만 분명 그만한 가치가 있다고 정도는 얘기해줄 수 있을 것 같다.

그간의 스트레스 받았던 순간들 아카이빙

목차 재정비하고 내용 고민하던 것들
나태한 스스로에 너무 화가 났던 날들

아무튼 이제 끝났다! 솔직히 책이 많이 팔리면 좋겠지만, 그렇지 않더라도 뭔가 대단한 것에 도전하고 그걸 잘 끝마친 스스로를 칭찬해주고 싶다. 근 몇년간은 내가 분명히 할 일이 있기 때문에 잠깐 쉬거나 아무것도 하지 않고 있는 상태에 굉장히 스트레스를 받고, 뭔가를 해야 한다는 압박감을 계속 느꼈었던것 같다. 갑자기 찾아온 자유시간 (사실 완전한 자유는 아니고 컨퍼런스 발표 준비중이긴 한데)에 내가 이렇게 뒹굴거릴 수 있다는 것을 한동안은 즐길것이다!!! 수고했다 나 자신….

--

--