brunch

You can make anything
by writing

C.S.Lewis

by 개앞맵시 이복연 Sep 30. 2022

[도서 분석] 혼자 공부하는 C 언어

IT 책쓰기 시리즈

<혼자 공부하는> 시리즈 출간 초기에 간단히 분석해본 글입니다. 요점 위주로 되어 있던 글에 약간의 살을 붙여 공개합니다. <혼자 공부하는> 시리즈는 <IT 전문서 시장 오버뷰>에서 이야기한 ‘입문서’ 영역에 속하는 대표적인 책입니다.


이 분석은 총 2편으로 작성했습니다.


    1. [도서 분석] 혼자 공부하는 C 언어     <-- 지금 글

    2. [도서 분석] 혼공 C vs. 이것이 C


1편에서는 <혼공 C>를 대표로 선정해 시리즈의 특성을 분석해보고, 2편에서 <혼공 C>의 전작인 <이것이 C>와 비교해보며 독자에 한 걸음 더 다가가기 위해 어떤 진화가 이루어졌는지를 살펴볼 겁니다.




혼공 시리즈는 처음에 3권을 동시 출간했다. ‘시리즈’로서 홍보하려면 최소 3권은 있어야 효과적이라 판단했을 것이다.


    혼자 공부하는 파이썬 - 미리보기

    혼자 공부하는 자바 - 미리보기

    혼자 공부하는 C 언어 - 미리보기


시리즈의 큰 특성과 구성은 일관되나 세부 구성은 책별로 다소 차이가 있다. 이번 분석은 <혼자 공부하는 C 언어>를 중심으로 했다. 단순히 내게 이미 이 책의 전작인 <이것이 C 언어다>가 있었다는 이유에서다.


살펴볼 순서는 다음과 같다.


----

1. 시리즈 콘셉트

2. 앞부속

3. 장 구성

4. 본문 요소

5. 설명 패턴

6. 용어 노트(별책 부록)

----



1. 시리즈 콘셉트

시리즈 도서인 만큼 ‘이 시리즈는 무엇을 지향하는가’가 가장 궁금하다. 몇 가지 측면에서 살펴보자.


1.1 책 표지

먼저 책 뒤표지에 보면 커다랗게 시리즈를 소개하는 부분이 있다.

시리즈의 핵심 키워드부터 대표 문장과 구체적 방법까지 순차적으로 조금씩 상세하게 설명했다.


키워드인 ‘혼자’에는 크게 두 가지 의미를 부여할 수 있다. 첫째, ‘그만큼 쉽게 만들겠다’는 의지와 자신감을 드러냈다. 둘째, 최신 유행을 반영했다. 과거에는 ‘혼자’라고 하면 외롭고 쓸쓸한 느낌을 주었으나, 혼밥 트렌드나 <나 혼자 산다> 같은 인기 TV 프로그램 덕에 요즘은 부정적 느낌을 찾아보기 어렵다. (그리고 뒤에서 나오듯 '때론 함께' 배울 수 있도록 다양한 장치도 마련해뒀다).


대표 문장은 키워드를 한 문장으로 풀어쓴 것이다. 기획이 잘 된 시리즈라면 대표 문장이 하나쯤 있음 직하다. 몇 가지 가상의 예를 준비했다.


<작심3일> - “바쁜 직장인이 금요일 칼퇴해서 일요일 저녁까지, 신기술 하나의 기초를 체득한다.”

<3분> - “짧은 예제 가득! 이론보다 코드로 먼저 배우는 개발자용 입문서!”

<Blog2Book> - “블로그에서 바로 읽는 듯한 생생한 개발 노하우!”

<이펙티브> - “고인물 개발자로 거듭나기 위한 최종 관문”


다시 혼공으로 돌아와서.. 그럼에도 어려운 프로그래밍을 ‘혼자 해도 충분하다’라고 설득하려면 그럴듯한 근거를 대야 한다. 부연 설명과 상세 설명의 역할이다. “그냥 내질러보는 허풍이 아냐! 이 정도면 믿음직하지?”라며 준비한 것을 펼쳐놓는 것이다. 사실 상세 설명은 홍보용 상세 이미지와 책 앞부속까지 가야 완성된다. 표지는 공간 제약이 너무 크기 때문이다. 상세 이미지는 온라인 독자용이고, 앞부속은 오프라인 독자용이다.


홍보용 상세 이미지의 구성은 다음과 같다. 표지의 상세 설명과 이어지면서 훨씬 자세함을 알 수 있다.  


    체계적인 반복 학습  

          - 핵심 키워드    

          - 시작하기 전에    

          - 말풍선    

          - 직접 해보는 손코딩    

          - 좀 더 알아보기    

          - 핵심 포인트    

          - 확인 문제    

    레벨업을 위한 ‘도전문제’  

    학습 지원  

          - 용어 노트(별책 부록 & PDF)    

          - 무료 동영상 강의    

          - 소스 코드    

          - 저자 참여 커뮤니티    

          - 스터디 그룹 운영(혼공 학습단)    


앞부속은 곧 따로 자세히 분석해볼 것이다.


1.2 브랜드 웹 페이지

혼공 시리즈는 전용 웹 페이지까지 구축하여, 시리즈 독자들과 저자들의 소통을 돕는다. 이 시리즈에 온 정성을 쏟아 제대로 브랜드화하겠다는 의지를 엿볼 수 있다. 오픈 당시 제공하는 서비스는 다음과 같았다.


시리즈 안내  

스터디룸, 이벤트 안내  

동영상, 학습자료  

게시판, QnA, 저자에게 질문하기  


“웹 페이지(혹은 카페)도 책의 콘셉트인가”라고 질문할 수도 있겠는데, 대답은 “그렇다”이다. 종합 미디어 시대가 도래한 지 한참이 되었고, 책도 다르지 않다. 독자와 접점이 있고 효과적인 미디어라면 시리즈 콘셉트 차원에서 고려하고 관리해야 한다. 특히 입문서라면 책만으로는 대표 서적이 되기 어려운 시대가 되었다.


1.3 추가 특이사항

혼공 시리즈의 처음 세 권은 독특하게도 기존 집필서를 재편집해 출간했다. 이런 선택을 한 이유는 크게 다음 두 가지로 짐작된다.  


처음부터 새로 써서는 집필 기간을 예측하기 어려워서 '3권 동시 출간으로 임팩트 주기' 같은 계획은 어그러지기 쉽다.

저자가 주도해서는 ‘시리즈’의 지향점을 모든 책이 일관되게 적용하기 쉽지 않다.


그래서 검증된 기본 콘텐츠에 편집력을 대거 투입해서 시리즈의 토대가 될 책들을 최대한 같은 느낌으로 같은 시기에 출간한 것이다. 뒤이어 추가될 책들의 저자와 편집자는 이 3권을 참고해서 진행하면 되니 한결 수월하게 진행할 수 있을 것이다.


다음은 처음 세 권의 모태가 된 책과 주요 차이점이다. 


   ● 혼자 공부하는 파이썬 ← Hello Coding 파이썬

        - 장 구성과 다루는 범위는 <Hello Coding>과 거의 같으나

          절 차원에서 많이 재구성한 것으로 보임

   혼자 공부하는 자바 ← 이것이 자바다

        - <이것이>에서 초급자에 어울리는 내용을 간추림

        - <이것이>가 <혼공>의 확장 버전 느낌

   혼자 공부하는 C 언어 ← 이것이 C 언어다

        - <이것이>와 장/절 구성과 다루는 범위가 거의 같음 → <이것이>는 절판

        - 실제 안의 내용은 엄청 뜯어 고침 (2편인 [도서 분석] 혼공 C vs. 이것이 C 참고)


번외로, 나도 <작심3일>이라는 신규 시리즈를 기획하며 집필 가이드, 샘플북, 원고 템플릿 등 많은 것을 준비했다. 특히 출간된 책 없이 저자에게 “이런 콘셉트로 써주세요”라고만 하면 100이면 100 모두 막막해하거나 편집자 의도와는 다르게 집필한다. 무려 115쪽에 달하는 샘플북까지 만든 이유다. 이 시리즈는 내가 퇴사를 하면서 실제로 출간되지는 못했다.



2. 앞부속 

앞 절에서 앞부속은 시리즈 상세 설명의 연장선이라고 했다. 표지를 보고 관심이 생겨 책을 펼쳐보는 독자는 가장 먼저 앞부속과 마주하게 된다. 그래서 앞부속은 갖은 수단을 동원하여 책의 장점과 활용법을 어필한다.


순서대로 요점만 살펴보자.


2.1 독자 후기 (Not 추천사, 베타 리뷰어의 말)

가장 먼저 독자 후기가 나온다.

보다시피 디자인부터가 매우 친근하다. 강조할 것은 시각적으로 확실하게 강조하면서, 여러 독자와 함께 만들었음을 어필하고 있다. 많은 책에서 싣는 추천사나 베타 리뷰어의 말과 달리, 독자들에게 ‘나와 같은 입장인 사람들의 목소리’로 다가올 듯하다. 실제로 집필 과정에서 많은 독자와 수차례 만남을 갖고 피드백을 받았다고 들었다.


2.2 저자 인터뷰 (Not 지은이의 말)

‘지은이의 말(저자 서문)’이나 ‘옮긴이의 말(역자 서문)’에는 별다른 제약 없이 저역자가 하고 싶은 말을 쓰게 된다. 독자에게 유용한 내용이 담길 때도 있지만, 가벼운 소회나 신변잡기가 들어갈 때가 많다. 나는 이 점이 마음에 들지 않아서 <리펙터링 2판>에서는 옮긴이의 말 대신 ‘한국어판 독자를 위한 안내’라고 썼고, 다른 번역서들에서도 되도록 책을 읽는 데 도움이 될 안내글 성격의 내용으로 채웠다.


이 책도 지은이의 말을 없애고 저자 인터뷰로 대체했다. 독자가 궁금해할 만한 질문에 답변함으로써 독자에게 유용한 콘텐츠를 담은 것이다. 또한 저자와의 친밀감 형성을 위한 간접 미팅 성격으로 볼 수도 있다.


구체적으로는 인터뷰 형식을 빌어 책의 특성을 설명하고 C 언어 관련 배경 지식을 설명한다. 인터뷰어가 던진 질문들은 다음과 같다.


<혼자 공부하는 C 언어>를 보려면 어떤 선행 지식이 필요할까요?

어떤 독자를 생각하며 이 책을 집필하셨나요?

이 책을 학습하는 최적의 방법을 소개해주세요!

독자 여러분께 당부하는 한 말씀이 있다면?

C 언어는 주로 어떤 분야에서 사용하나요?

위에서 언급한 분야로 가려면 독자들은 어떤 책을 읽고 어떤 공부를 해야 할까요?


2.3 이 책의 구성

구성 특징, 각 구성요소의 의도, 활용법을 알려준다. 생각 없이 예쁘게 한 게 아니라, 학습 효과를 배가시키기 위해 열심히 고민한 결과임을 은연중에 알려 신뢰도를 높이는 효과가 있다.


엄밀하게는 모두가 ‘단계’는 아니지만 ‘7단계’라고 퉁쳤다. 따로 설명하면 오히려 난잡하고 체계가 덜 잡힌 느낌을 줄 것 같아서로 짐작된다.


2.4 학습 가이드

실습 환경 구축과 책 외적인 자료 및 커뮤니티 활용법을 안내한다. 책만 한 권 달랑 던져주고 끝이 아니라, 다양한 보조 자료와 지원 커뮤니티까지 있음을 알려주는 것이다. 초보자는 더 안심하고 이 책을 선택할 수 있도록 하고, 커뮤니티로의 유입도 유도한다.


참고로, 커뮤니티 유입도 매우 중요하다. 커뮤니티가 조기에 활성화되어야 책 평판도 높아져 선순환이 이루어진다. 그래서 기획 단계에서 커뮤니티 활성화 계획도 충실히 준비하고 실행해야 한다. 참고 자료 업로드, 스터디 진행, 이벤트 등 오픈과 함께 커뮤니티에 생기를 불어넣어 줄 콘텐츠를 최소 몇 달 치는 준비해둬야 한다.


2.5 학습 로드맵

책에 담긴 내용의 ‘’을 보여준다. 단계별 주안점, 난이도, 공부 방법 팁(순서, 관계, 두 번 보기..) 등을 제공한다. 이 책을 교재로 택할지 고민하는 강사에게도 큰 도움이 되는 자료다. 각 장의 순서는 대다수 C 언어 입문서와 큰 차이는 없어 보인다.


2.6 목차

본질적 내용과 보조 내용을 시각적으로 구분하는 꼼꼼함이 보인다. 보조 내용이란 ‘좀 더 알아보기’ 이후를 말한다. 앞서 설명한 특징적 요소들이 책 구성에 어떻게 반영되었는지 알 수 있다.



3. 장 구성

이제부터 책의 실질적인 내용이 담긴 각 장이 어떻게 구성되어 있는지 살펴보자.


3.1 학습목표

각 장은 가장 먼저 학습목표를 제시한다. 앞부속에서 ‘숲’을 보여줬다면 학습목표는 ‘나무’에 해당한다.


학습목표에서는 독자가 무엇을 배우고 무엇을 할 수 있게 되는지를 알려준다. 본문 내용을 아직 모르는 독자가 대상이므로 어려운 용어나 너무 구체적인 이야기는 피하는 게 좋은데, 대체로 무난하게 작성된 거 같다.

앞의 목차에서 보듯 하나의 장은 여러 개의 ‘절’과 하나의 ‘좀 더 알아보기’로 구성되어 있다. 차례로 살펴보자. 


3.2 절

절은 다음과 같이 구성된다.

본문을 중심으로 앞에 3가지, 끝에 한 가지 구성요소가 자리한다. 이중 키워드로 시작하여 마무리 때 다시 키워드를 중심으로 핵심을 정리해주는 흐름은 (입문서와 중고급서 가리지 않고) 내가 매우 선호하는 구성이기도 하다.


# 핵심 키워드와 안내

나무를 구성하는 주요 ‘줄기’를 알려준다. 이번 절에서 중점적으로 볼 개념을 키워드와 짧은 문장 몇 개로 안내한다. 키워드의 경우 절을 처음 읽을 때는 어려울 수 있으나, 다 읽고 나서 자신이 얼마나 이해했나를 돌아볼 때 매우 유용하다. 혹은 한참이 지나 책을 다시 훑어보며 이번 절의 내용 중 얼마나 알고 있는지, 그래서 건너뛸지 자세히 읽어볼지를 판단하는 기준으로 활용하기도 좋다.


# 시작하기 전에

이번 절에서 배울 내용의 시작 혹은 주춧돌이 되는 개념을 최대한 쉽게 알려준다. 선행 지식을 알려주는 것으로, 본문의 다른 내용은 이 위에 차곡차곡 쌓아가면 된다. 본문의 학습 난도를 내려주는 효과가 있다.


# 마무리

절 본문에서 설명할 것을 모두 풀어낸 다음, 가장 끝에는 마무리가 준비되어 있다.

마무리는 ‘키워드로 끝내는 핵심 포인트’ + α + ‘확인 문제’ 형태로 구성된다.


‘키워드로 끝내는 핵심 포인트’ - 절 시작 시 제시한 ‘핵심 키워드’의 의미를 간단한 문장으로 다시 정리한 것이다. 저자가 생각한 핵심을 독자가 확실히 기억하게 하는 장치로, 복습 시에도 큰 도움이 된다.

‘α’ - 절 내용에 따라 요점을 가장 효과적으로 보여주는 방식을 택해 구성된다.

‘확인 문제’ - 배운 것을 ‘정확하게’ 이해했는지, 이해한 것을 ‘응용’할 수 있는지를 확인해준다.


마무리가 ‘절 단위’로 준비된 점은 학습자의 호흡을 짧게 끊어서 기초를 하나씩 차근차근 쌓아갈 수 있게 이끈다. 즉, 배운 것을 정리할 시간을 주는, 입문자에게 적합한 구성이다.


3.3 좀 더 알아보기

장의 마지막을 장식하는 요소다. 장의 각 절에서 다룬 쉽고 핵심적인 내용 외에, 알아두면 유용한 더 깊은 내용을 소개한다. ‘쉽게’만을 지나치게 추구하다가는 실전에서 언젠가 꼭 필요한 내용을 알려주지 못할 수 있다. 이런 점을 보완하는 장치라고 생각하면 되겠다.



4. 본문 요소

본문에서 쓰인 각종 요소의 용도와 효과를 알아보자.


4.1 노트

대다수 책에서 흔히 쓰이는 일반적인 노트다. 짧은 설명을 보충할 때 쓴다.


4.2 여기서 잠깐

일반적인 상자글이다. 본문의 주된 흐름과 다소 동떨어지지만 유용하거나 독자가 궁금해할 만한 내용을 추가로 설명한다. 대체로 노트로 처리하기에는 내용이 길 때 이용하며, 고유한 제목을 붙여준다.


4.3 말풍선

지나치기 쉬운 내용 혹은 꼭 기억해둬야 할 내용을 그때그때 짚어준다. 설명을 보충하는 노트와 달리 강조나 리마인드 역할로 많이 쓴다.


4.4 캐릭터 도움말

입문서에서 종종 쓰이는 요소로, 저자가 하고 싶은 말이나 팁을 알려준다. 캐릭터가 등장하므로 적절히 활용하면 재미도 있고 친밀감을 더해줄 수 있다.


4.5 직접 해보는 손코딩

대부분 개발서가 독자보고 코드를 직접 타이핑해 실행해보길 권장한다. 하지만 대체로 앞부속이나 처음 등장하는 코드 전후로 한 번 언급하는 게 다라서, 권고를 잊고 코드를 눈으로만 훑는 독자가 속출한다. 혼공 시리즈는 독자가 타이핑해보길 바라는 코드 모두에 ‘직접 해보는 손코딩’이라는 타이틀을 붙여놔서 ‘직접 해봐야 는다’라는 사실을 끊임없이 되새겨준다. 또한 손코딩용 코드와 설명용 코드를 헷갈리지 않게 시각적으로 확실히 구분해두었다. 아래가 설명용 코드다.


소스 코드 파일 이름을 알려주는 것도 입문서에서는 매우 중요하다. 타이핑 오류가 났을 때 원인을 쉽게 찾지 못하는 독자가 많은데, 이럴 때는 제대로 돌아가는 코드와 비교해보는 게 가장 손쉬운 해결책이다.


4.6 실행 결과

실행 결과가 짧을 때는 소스 코드에 병행 배치했다. 어느 소스에 해당하는 결과인지 더 직관적으로 알 수 있고, 공간도 절약된다.



5. 설명 패턴

본문에서 활용된 설명 패턴 중 도드라지는 두 가지만 살펴보자.


5.1 개념 설명

각 절에서 개념 설명에 주로 활용한 패턴은 다음과 같다.


중제목 (개념 이름)

    개념 설명 (글과 그림)

    예시의 전체 코드와 결과 (직접 해보는 손코딩)

    전체 코드 중 특정 부분 설명 #1

    전체 코드 중 특정 부분 설명 #2

      …


간명한 설명글과 함께 큰 그림을 먼저 보여주고, 이어서 작은 단위로 쪼개 설명하여 독자가 호흡을 조절하기 쉽게 배려했다. 입문서에 매우 적합한 구성이다.


5.2 코드 동작 설명

코드 동작 설명 역시 작은 단위로 쪼개 설명하여 입문자가 호흡을 조절하기 쉽게 배려했다.


어떤 단계를 거쳐 어떻게 변해가는지, 무엇이 어디에 영향을 주는지 등, 글만으로는 입문자가 이해하기 어려울 법한 부분을 마치 칠판에 쓰고 그림을 그리듯 시각적이고 단계별로 설명했다. 예를 몇 가지 살펴보자.


다음 그림은 동작 메커니즘을 가장 작은 단위로 쪼개서 결과가 만들어지는 과정을 상세히 전달한다.


다음 그림은 순서도와 단계별 각 변수의 값 변화 등, 코드의 동작을 더 쉽고 입체적으로 설명하는 방법을 다양하게 동원했다.

마지막으로 글로 설명하기 어려운 내용은 코드에 직접 그려 설명하였다.


위 그림을 글만으로 설명한다고 상상해보자. 입문자가 과연 쉽게 이해할 수 있을까?



6. 용어 노트(별책 부록)

혼공 시리즈에는 용어 노트라는 소책자가 부록으로 딸려 온다. 분권할 수 있어서 본책 학습 시 옆에 놓고 정리하면서 볼 수 있고, 복습용으로 활용하기도 안성맞춤이다. PDF 버전도 제공한다.


용어 노트의 목차는 알파벳 순으로 정렬되어 있어서, 마치 사전처럼 궁금한 용어를 쉽게 찾아볼 수 있다.


한편 노트 본문은 본책과 짝을 이루게끔 장 단위로 구성하였다. 용어들을 간략히 요약해주고, 요약 버전만으로 부족할 때 본책을 찾아볼 수 있도록 오른쪽에는 본책의 쪽번호를 명기했다.


7. 마치며

이상으로 <혼자 공부하는 C 언어>를 대표로 혼공 시리즈의 구성과 특징을 분석해보았다. 느낌이 어떤가? 입문서라고 만만히 봤다면 많이 놀랐을 것 같다. 실제로 이 시리즈를 낸 한빛미디어도 혼공 이전까지 수년 동안 입문서 시장에서 번번이 고배를 마셨다. 숱한 실패가 경험이 되어 마침내 혼공으로 빛을 본 것이다.


앞서 <IT 전문서 시장 오버뷰>에서 입문서 편집자에게 다음의 다섯 가지 능력이 요구된다고 했다.


    독자의 눈높이에 동기화

    쉽게 풀어주기

    쉽게 보이게 하기

    독자의 학습 이끌어주기

    마케팅


혼공은 이 능력들이 잘 버무려져서 탄생한, 고뇌와 노력이 정말 많이 들어간 책이라 생각한다. <혼자 공부하는 C 언어>의 전작인 <이것이 C 언어다>와 비교 분석한 2편까지 살펴본다면 무슨 의미인지 더 확실하게 와닿을 것이다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari