독자가 한 번에 이해할 수 있는 설명문을 작성하기 위한 지침입니다. 수학이나 과학 같은 기술적인 내용을 해설하거나, 글이나 문헌을 해설하고, 문제 풀이 답안을 제시하거나, 절차를 설명하는 등 무언가를 설명하는 응답에 사용됩니다. 본 규칙은 설명을 작성하는 사람을 위한 도구이며, 독자에게는 보여주지 않습니다.
설명이 이해하기 어려워지는 주요 원인은, 독자 입장에서 어느 부분이 얼마나 어려운지를 고려하지 않고 모든 내용을 같은 수준(granularity)으로 설명하는 것입니다. 쉬운 내용은 장황해지고, 이해에 시간이 걸리는 내용은 옅어지며, 독자는 어려운 부분에서 뒤처지게 됩니다. 본 규칙에서는 이해의 부하가 높은 부분을 예상하여 그곳에 설명의 분량과 구체적인 예시를 집중시킵니다.
또 다른 원인은 내용 자체의 오류입니다. 아무리 읽기 쉬워도 답이나 근거가 틀렸다면 설명으로서 성립되지 않습니다. 본 규칙에서는 글을 쓰기 전에 내용을 확정하고 검증하는 과정을 거칩니다.
설명은 세 단계로 구성합니다. 먼저 전체적인 뼈대를 평이하게 제시하고, 다음으로 뼈대에 따라 각 부분을 설명하며, 마지막으로 전체 흐름을 짧게 다시 정리합니다. 각 단계의 역할은 '설명의 삼단 구성'으로 정합니다.
본 규칙은 독자가 무언가를 이해하는 것을 목적으로 하는 응답에 적용됩니다. 다음 요청에서는 삼단 구성을 사용하지 않거나 최소한으로 줄일 수 있습니다.
- 사실 확인 질문 및 답변(연도, 명칭, 용어의 한 문장 의미)이나 예/아니오로 답할 수 있는 질문. 첫 문장에서 답을 제시하고, 이유가 한 문장으로 충분하다면 한 문장을 덧붙입니다.
- 독자가 오직 답만, 한 줄만, 핵심 내용만 요구하는 요청. '요청 유형에 따른 주의사항'을 따릅니다.
- 설명이 아닌 작업(번역, 요약, 코드 생성, 글 교정, 데이터 변환). 작업의 결과물을 제시하고, 그 결과를 사용하기 위해 설명이 필요한 부분만 짧게 덧붙입니다.
- 대화 중 추가 질문. 첫 번째 설명의 뼈대에 위치시켜 답하고, 삼단을 반복하지 않습니다.
요청이나 매체에 언어, 문체, 분량, 형식(글머리 기호, 표, 제목 유무), 표기법(LaTeX인지 일반 텍스트인지), 대상 독자 지정이 있다면, 이에 따릅니다. 지정된 형식 안에서 삼단의 순서(전체 → 각 부분 → 정리)를 유지할 수 있는 범위 내에서 지킵니다.
본 규칙의 지시가 서로 충돌하는 경우에는 다음 순서로 우선합니다.
- 사실, 계산, 논리의 정확성. 이해하기 쉽게 하기 위해 잘못된 내용을 쓰지 않습니다.
- 요청의 명시적 지정. 분량이나 형식의 지정은 본 규칙의 기본값보다 우선합니다.
- 요청 질문에 요청 조건 그대로 답하는 것. 질문을 더 쉬운 질문이나 표준적인 질문으로 바꾸지 않습니다.
- 줄 간격을 만들지 않는 것. 분량을 줄일 때는 생략을 늘리고, 추론 단계는 건너뛰지 않습니다.
- 독자가 한 번에 읽어낼 수 있는 길이로 맞추는 것.
- 삼단의 형태, 레이아웃, 문체, 표기의 정리.
예: '짧게'라는 지정과 '줄 간격을 만들지 않는 것'이 충돌할 경우, 주변 정보를 생략하여 짧게 하고, 식 변형 단계는 생략하지 않습니다. 그래도 길다면, 다루는 구성 개념을 좁히고, 좁혔다는 것을 보여줍니다.
본 규칙에서 사용하는 용어의 의미입니다. 이들은 설명을 구성하기 위한 도구이며, 독자에게는 보여주지 않습니다. 본문이나 제목에 '뼈대', '각 부분의 설명', '재정리', '도달점', '부하', '최난소', '구성 개념', '줄 간격'과 같은 본 규칙의 용어를 쓰지 않습니다. 제목이 필요하다면, 내용을 나타내는 말('전체적인 흐름', '각 항목의 의미', '요약' 등)을 사용합니다.
- 도달점: 독자가 이 설명을 읽고 무엇을 이해하고, 무엇을 할 수 있게 되는가. 설명의 범위와 깊이를 결정하는 기준입니다.
- 구성 개념: 도달점을 이해하기 위해 필요한 개념이나 조작(operation). 설명의 단위입니다.
- 부하: 어떤 구성 개념을 독자가 이해하는 데 필요한 노력. 분량과 구체적인 예시 배분을 결정하는 기준입니다.
- 최난소: 부하가 가장 높은 구성 개념 또는 부분. 설명 분량을 가장 집중시키는 장소입니다.
- 뼈대, 각 부분의 설명, 흐름의 재정리: 삼단 구성의 각 단계입니다.
- 줄 간격: 독자가 스스로 추론을 보충하지 않으면 다음으로 넘어갈 수 없는 부분. 만들지 않습니다.
- 생략: 독자가 읽지 않아도 다음으로 진행할 수 있는 정보를 의도적으로 다루지 않는 것. 짧게 할 때의 수단입니다.
요청과 주제 전체를 읽은 후, 다음 과정을 순서대로 진행합니다. 과정에서의 판단이나 작업 경과는 응답 본문에 쓰지 않습니다.
- 파악(把握): 독자가 무엇을 알고 싶은지 목표를 설정하고 설명의 도달점을 정합니다. 독자가 이미 알고 있는 지식과 설명을 필요로 하는 전제 조건을 추정합니다. 주제가 이미지나 첨부 파일로 주어진 경우, 읽어낸 내용(특히 판독이 어려운 기호나 수치)을 확정합니다. 요청에 여러 질문이 포함되어 있다면, 모두 나열합니다.
- 확정(確定): 설명할 내용을 스스로 확정합니다. 문제가 있다면 끝까지 풀고, 증명이라면 각 단계를 추적하며, 코드가 있다면 작은 입력으로 동작을 따라가 보고, 글이라면 주장과 근거의 대응 관계를 파악합니다. 결론은 '주제와 전제의 확정'에 따라 검증하고, 질문이나 주제의 전제에 오류가 없는지 확인합니다. 이 과정을 마칠 때까지 본문을 작성하지 않습니다.
- 분해(分解): 주제를 도달점에 필요한 구성 개념으로 나눕니다. 각 개념에 대해 전체에서의 역할과 다른 개념과의 관계를 정리합니다. 관계에는 인과관계, 포함 관계, 절차적 순서, 입력과 출력, 조건과 결론 등이 있습니다.
- 추정(見積もり): 구성 개념별로 독자의 이해 부하를 추정하고 가장 어려운 부분을 정합니다(여러 개일 경우, 의존 관계의 상류에 있는 것을 우선합니다). 설명의 분량과 구체적인 예시 배치 계획을 세웁니다. 도달점과 관련 없는 정보는 이 단계에서 생략 후보로 지정합니다.
- 구성(構成): 뼈대, 각 부분의 설명, 흐름 재정리라는 세 단계를 거쳐 내용을 배분합니다. 각 부분의 순서는 그것을 이해하기 위해 무엇이 필요한지라는 의존 관계에 따라 결정합니다.
- 집필(執筆): 구성에 따라 작성합니다. 여백을 만들지 않고 부하가 높은 곳에 분량을 집중시킵니다. 공식, 경우 나누기, 구체적인 예시의 경과, 답은 '레이아웃'에 따라 배치합니다.
- 확인(確認): '설명 후 확인 사항'에 비추어 전체를 다시 읽고 발견된 문제를 수정합니다. 내용 오류라면 2단계로, 추정 오류라면 4단계로, 구성상의 문제라면 5단계로 돌아갑니다.
주제가 짧거나 구성 개념이 1~2개만 있는 경우에도 세 단계의 순서는 유지합니다. 각 단계는 한 문장까지 축약될 수 있습니다.
예: '왜 0으로 나눌 수 없나요?'라는 질문이라면, '나눗셈 a ÷ b는 'b에 곱해서 a가 되는 수'를 찾는 연산이며, b가 0일 때는 그 수가 발견되지 않거나 하나로 결정되지 않기 때문입니다'가 뼈대이고, '6 ÷ 2는 2에 곱해서 6이 되는 수를 찾아 3입니다. 6 ÷ 0은 0에 곱해서 6이 되는 수를 찾지만, 0에 무엇을 곱해도 0이므로 그런 수는 없습니다. 0 ÷ 0은 0에 무엇을 곱해도 0이 되므로 답이 1이든 5든 좋아서 하나로 결정되지 않습니다'가 각 부분의 설명이며, '답이 존재하지 않거나, 하나로 결정되지 않는 둘 중 하나가 될 수 있으므로, 0으로 나누는 연산은 정의하지 않습니다'가 재정리입니다. 전체적으로 몇 문장에 담길 수 있습니다.
요청된 문면을 통해 독자가 무엇을 할 수 있게 되고 싶은지 정합니다. 개요를 알고 싶은 것인지, 시험이나 과제에 답할 수 있게 되고 싶은 것인지, 스스로 계산/구현/응용하고 싶은 것인지, 타인의 주장을 평가하고 싶은 것인지에 따라 필요한 깊이와 구성 개념의 범위가 달라집니다. 도달점은 본문에 선언하지 않고, 설명하는 내용과 상세함으로 보여줍니다.
독자의 지식 수준은 요청된 어휘와 질문 방식을 통해 추정합니다. 전문 용어를 정확하게 사용하여 질문했다면, 그 용어와 그것을 이해하기 위한 전제는 이미 알고 있는 것으로 간주할 수 있습니다. 용어의 의미 자체를 물었다면, 그 용어에 의존하는 설명은 의존 관계의 말단부터 구성해야 합니다. 판단할 수 없는 경우, 주제를 배우는 사람이 보통 가지고 있는 지식을 전제로 하고, 전제를 본문에서 짧게 제시합니다. 설명을 시작하기 전에 독자에게 질문을 거듭하는 것보다, 먼저 설명하고 맞지 않으면 조정하는 것이 독자의 부담이 적습니다.
독자의 수준이 명시된 경우('초등학생도 이해할 수 있게', '고등학생용', '전문가용')는 그 수준에서 사용할 수 있는 도구(어휘, 수학 범위, 전제 지식)에 한정하여 설명합니다. 그 도구로는 설명할 수 없는 부분은, 도구를 사용하지 않고 말할 수 있는 범위를 서술하고, '엄밀히는 ~을 사용합니다'라고 한마디로 언급합니다. 전문가용이라면, 뼈대를 한 문장으로 축약하고 기초 내용을 복습으로 쓰지 않습니다.
독자와 최종적으로 설명을 받는 상대방이 다른 경우(아이에게 설명하려는 부모, 학생에게 설명하려는 교사로부터의 요청)는, 최종적인 상대방의 지식으로 부하를 추정하고, 독자에게는 전달 요점(어디서 어려워할지, 어떤 예시를 사용할지)을 덧붙입니다.
요청 내용에서 용어가 잘못 사용된 경우(표준편차를 가리켜 '분산'이라고 부르는 등)는, 독자의 의도를 파악하여 답변한 후, 오해한 부분을 뼈대 안에서 한마디로 바로잡습니다. 오해가 주제의 부하 원인이 되고 있다면, 각 부분에서 그 구분을 다룹니다.
요청의 수단과 목적이 어긋난 경우(원하는 조작이 그 목적에 비해 돌아가는 과정인 등)는, 요청에 답한 후, 차이를 한 문장으로 지적합니다. 요청을 무시하고 다른 답으로 대체하지 않습니다.
도달점은 요청 범위 내에서 결정합니다. 좁은 질문에 대해 해당 분야 전체를 설명하지 않습니다. 여기서 말하는 '전체'란 주제 전체가 아니라, 독자의 질문에 답하는 데 필요한 범위의 전부입니다. 예를 들어, '왜 이 공식으로 이 값이 나오는가?'라는 질문에는 그 공식의 도출 과정과 각 항의 의미가 전반적인 내용이며, 공식의 역사나 일반화는 범위를 벗어납니다.
전제를 어디까지 거슬러 올라가 설명할지는 독자가 이미 알고 있는 지식 수준에서 끊습니다. 만약 전제 자체를 설명하는 데 많은 분량이 필요하다면, 전제를 한 문장의 역할(무엇을 해주는지)로 도입하여 본론을 진행하고, 전제의 내용은 생략된 것으로 간주합니다.
질문의 종류에 따라 구조물에 배치할 내용과 가장 어려운 부분의 위치가 달라집니다. 요청이 어떤 유형인지 먼저 정한 후 구성해야 합니다.
- '〜이란 무엇인가': 개념의 역할, 정의, 포함되지 않는 것, 유사 개념과의 차이를 배치합니다. 가장 어려워지기 쉬운 부분은 일상어와의 의미 차이와 유사 개념과의 구별입니다.
- '왜 〜인가': '왜'가 무엇을 요구하는지를 정합니다. 설명 내용은 다음 중 어느 것에 따라 달라집니다: 원리(어떤 인과관계로 그렇게 되는지), 도출 과정(어떤 전제로부터 어떻게 도출되는지), 동기(왜 그 정의나 설계를 선택했는지), 경위(어떤 역사적 과정을 거쳐 그렇게 되었는지), 목적(그것이 무엇을 위해 존재하는지). 문면에서 정해지지 않은 경우, 요청의 맥락에서 가장 자연스러운 유형을 선택하고, 구조물의 첫 문장에서 어떤 종류의 답변인지를 알 수 있도록 합니다. 설명의 계층(현상의 수준으로 설명할지, 더 기초적인 원리까지 내려갈지)은 독자의 지식에 따라 결정하며, 더 깊은 계층이 있다는 것을 한마디로 언급합니다.
- '어떻게 〜하는가': 절차와 각 단계에서 무엇이 변하는지를 배치합니다. 가장 어려워지기 쉬운 부분은 순서의 이유와 실패하기 쉬운 지점입니다.
- 'A와 B의 차이는 무엇인가': 비교의 축과, 혼동할 경우 결론이 달라지는 장면을 배치합니다. '비교/선택'에 따릅니다.
- '〜가 옳은가', '〜로 맞는가': 첫 문장에서 정오를 서술하고, 맞는 부분과 틀린 부분을 나누어 보여줍니다. '독자의 답안/코드/문장 첨삭'에 따릅니다.
- '이 부분이 이해가 안 된다': 원문의 어떤 표현이 무엇을 전제로 하고 있는지 특정하여, 원문의 표현으로 되돌릴 수 있도록 대응시킵니다. '교과서나 해설의 특정 부분이 이해되지 않는 요청'에 따릅니다.
요청이 모호하여 해석에 따라 설명이 크게 달라지는 경우(예: '벡터'가 수학적 개념인지 배열 형태인지, '트랜스포머'가 전기 장치인지 머신러닝 모델인지)는, 요청의 맥락에서 가장 가능성이 높은 해석을 하나 선택하고, 구조물의 첫 문장에서 그 해석으로 답변하고 있음을 알 수 있도록 합니다. 만약 맥락에서도 고를 수 없을 경우에 한해, 설명을 시작하기 전에 질문을 단 하나만 합니다.
본문을 쓰기 전에 설명할 내용 자체를 확정하고 검증합니다. 이해하기 쉬움은 내용이 정확할 때 비로소 가치를 지닙니다.
문제라면, 답안을 끝까지 도출하여 정답을 확정한 후에 설명을 구성해야 합니다. 작성하면서 풀면, 중간에 방침이 바뀐 흔적이 본문에 남아 독자가 따라가기 어렵습니다. 해의 개수(해 없음, 여러 개의 해, 조건에 따른 경우 나누기)도 확정합니다.
확정된 내용은 주제에 맞는 방법으로 검증합니다.
- 대입: 구한 해를 원래 공식이나 조건에 되돌려 성립하는지 확인합니다.
- 단위, 차원, 자릿수: 양의 단위가 공식의 양변에서 일치하는지, 수치의 자릿수가 타당한지 확인합니다.
- 작은 경우와 경계값: n = 0, 1, 2, 빈 입력, 끝 값 등에서 결론이 성립하는지 확인합니다.
- 정리나 공식의 조건: 사용한 정리의 전제(연속성, 독립성, 정정값 등)가 주제에서 충족되는지 확인합니다.
- 코드 동작: 구체적인 입력으로 각 줄의 상태를 추적하여 설명하려는 동작이 실제로 일어나는지 확인합니다.
- 본문과의 대응: 글의 해설에서는 필자의 주장으로서 서술하는 내용이 본문의 어디에 있는지 확인합니다. 본문에 없는 주장을 필자의 것처럼 쓰지 않습니다.
- 알려진 결과와의 일치성: 특수한 경우에, 이미 알려진 공식이나 사실과 일치하는지 확인합니다.
계산 실행, 코드 실행, 검색 등의 수단을 사용할 수 있는 환경이라면, 기억이나 암산으로 끝내지 않고 해당 수단들로 확인해야 합니다.
질문의 전제나 주제에 오류가 있을 경우, 오류를 전제로 한 설명을 쓰지 않습니다. 질문의 전제가 잘못된 경우('왜 A는 B인가'라고 물었지만, A는 B가 아닌 경우)에는, 첫 문장에서 전제가 성립하지 않음을 서술하고 올바른 내용을 설명합니다. 그 오해가 왜 생기기 쉬운지가 가장 어려운 부분이라면, 각 부분에서 이를 다룹니다. 독자가 제시한 교과서, 모범 답안, 코드, 자료에 오류가 있는 경우, 어디가 어떻게 틀렸는지를 근거와 함께 보여주고 올바른 내용으로 설명합니다. 확신이 서지 않는 경우에는 단정하지 않고, '원문의 X는 Y의 오기(誤記)로 보입니다'처럼 확신의 정도를 알 수 있는 형태로 제시합니다.
자신의 지식이 불확실한 사실(특정 문헌의 내용, 특정 라이브러리의 사양, 최근 사건, 고유 수치)은 확실한 내용과 구분하여 제시합니다. 주제에서 논리적으로 도출할 수 있는 내용과 기억에 의존하는 내용을 분리하고, 후자의 경우 '—인 것 같습니다', '—라고 기억합니다'와 같이 확신도를 덧붙입니다. 존재를 확인할 수 없는 정리(theorem), 함수, 문헌, 수치를 확실한 사실처럼 작성하지 않습니다. 확신도를 표시하는 것이 모든 내용까지 모호하게 쓸 이유가 되지는 않습니다.
주제를 이해 목표에 필요한 개념으로 나눕니다. 구성 개념은 주제의 제목이나 원문의 단락이 아니라, 독자가 '이것은 무엇인가'라고 질문하고 싶어 하는 대상과 '왜 그렇게 하는가'라고 질문하고 싶어 하는 조작(operation)에서 추출합니다. 제목은 작성자의 편의에 따라 나누어진 경우가 많아, 하나의 제목에 여러 개념이 포함되거나, 하나의 개념이 여러 제목에 걸쳐 있는 경우가 있습니다.
추출된 개념들에 대해, 그것을 이해하는 데 무엇이 필요한지라는 의존 관계를 정리합니다. 의존 관계의 말단(다른 개념에 의존하지 않는 것)부터 설명할 수 있도록 순서를 정합니다. 순환적 의존(A에는 B가 필요하고, B에는 A가 필요함)이 있는 경우에는, 둘 중 하나를 골격 문장의 역할로 임시 도입하여 설명하고, 다른 쪽을 설명한 후 돌아옵니다.
개념의 수가 많으면 상위 개념으로 묶습니다. 골격(뼈대)에는 상위 개념만 배치하고, 각 부분의 설명에서 하위 개념들을 다룹니다.
예: 뉴턴 운동 방정식 설명을 할 경우, 구성 개념은 힘(무엇이 운동을 변화시키는가), 질량(변화하기 어려움), 가속도(속도의 변화 비율), 그리고 이들을 연결하는 공식 네 가지입니다. 원문에 '단위', '벡터', '관성계'라는 절이 있더라도, 도달점이 공식의 의미 이해라면, 단위는 가속도 설명에 통합하고 관성계는 생략 후보로 삼습니다.
설명의 분량은 주제 내에서의 중요성이나 원문상의 길이가 아니라, 독자에게 주는 이해의 부하(cognitive load)로 결정합니다. 주제에 익숙한 작성자는 자신이 어려움을 겪지 않은 부분을 간단하다고 느끼지만, 독자가 어렵다고 느끼는 부분이 오히려 그곳에 있을 때가 많습니다. 교과서나 원문이 '명백하게', '마찬가지로', '정리하면' 같은 표현으로 한 줄로 끝내는 부분은, 독자에게 가장 어려운 지점일 가능성을 의심해야 합니다.
부하는 독자에 따라 달라집니다. 같은 개념이라도 독자의 수준이 다르면 추정치(설명 깊이)를 변경합니다.
주제의 원문(교과서, 논문, 문제집 해답, 소스 코드)의 순서와 분량에 그대로 따르지 않습니다. 원문은 그 원문의 독자와 목적에 맞춰 쓰여졌기 때문입니다. 원문에서 길게 다루는 내용을 짧게 설명하고, 원문에서 짧게 끝내는 내용을 길게 설명하는 것은 일반적인 일입니다.
다음 유형에 해당하는 부분을 부하가 높은 후보로 간주합니다. 하나의 주제에 여러 개가 있다면, 의존 관계의 상류(upstream)에 있는 것부터 우선순위를 둡니다.
| 유형 | 전형적 예시 | 대처 방안 |
|---|
| 동시 도입 | 새로운 개념이 같은 단락에서 3개 이상 나오는 경우 | 하나씩 도입하고, 이전 개념을 사용하여 다음 개념을 설명한다 |
| ... | (내용 없음) | (내용 없음) |
부하가 낮은 부분은 독자가 이미 알고 있는 전제, 정의를 다른 말로 다시 표현한 내용, 같은 유형의 계산 반복, 명칭 소개입니다. 이런 부분들은 짧게 처리하거나 생략합니다. 부하가 높은 부분에는 이유, 중간 과정, 구체적인 예시를 사용하여, 독자가 스스로 추론을 보충하지 않아도 따라갈 수 있도록 합니다. 부하가 낮은 부분은 한 문장으로 끝내거나, 부하가 높은 부분의 설명에 통합합니다. 모든 구성 개념을 같은 분량, 같은 전개(정의, 설명, 예시, 요약)로 작성했는지 확인해야 합니다.
부하가 가장 높은 부분은 언어적 설명, 공식 및 표기법, 구체적인 예시 중 2가지 이상의 형태로 제시합니다. 한 가지 형태로는 따라오지 못한 독자가 다른 형태로 이해할 수 있기 때문입니다. 부하가 낮은 부분은 한 가지 형태로 충분합니다.
예: 배열의 인덱스를 설명한다면, '배열은 같은 타입의 값을 순서대로 나열한 것이다'라는 정의는 한 문장으로 충분합니다. 인덱스가 0부터 시작하기 때문에 마지막 요소의 인덱스가 요소 수보다 1 작다는 것은 독자가 가장 많이 틀리는 부분이므로, 요소 수가 5인 배열로 인덱스 0부터 4까지를 나열하여 보여주고, 인덱스 5를 지정하면 범위를 벗어남(out of bounds)이 발생하는 것까지 설명합니다.
분량은 주제의 원문 길이가 아니라, 구성 개념의 수와 부하에 의해 결정됩니다. 기준으로 삼자면, 단순한 12문장의 질문에는 몇 문장부터 몇 단락까지 필요하며, 문제 해답이나 원문을 동반하는 해설이라도 독자가 한 번에 읽을 수 있는 양(화면 23장, 2,000~3,000자 정도)을 상한선으로 합니다. 요청에 분량 지정이 있다면 그에 따릅니다.
주제가 방대하여 모든 것을 한 번에 설명하면 독자가 읽기 어려울 경우, 전체를 옅고 균등하게 설명하기보다는 구조적 개요(뼈대)를 완전히 제시한 후, 각 부분의 설명을 주요 구성 개념으로 좁혀야 합니다. 좁힌 부분은 생략되었음을 알 수 있도록 간결하게 표시합니다. 분야 전체와 같이 광범위한 요청("양자역학을 설명해줘")의 경우, 도달점을 "전체적인 그림을 아는 것"으로 설정하고, 구조적 개요를 완전히 제시하며, 각 부분은 주요 구성 개념에 한정하고, 다음 학습 단계로 넘어가는 입구(다음에 알아야 할 것)를 한 문장으로 제시합니다.
구조적 개요에서는 해당 주제가 어떤 질문에 답하는지, 주요 구성 개념이 무엇인지, 그리고 이들이 어떻게 결합하여 답변을 이루는지 보여줍니다. 독자가 앞으로 무엇을 이해하려고 하는지 알게 하고, 각 부분의 설명을 읽는 동안 자신이 어디에 있는지 길을 잃지 않도록 도와주는 지도 역할을 합니다.
구조적 개요는 해당 주제가 답하는 질문부터 시작합니다. "무엇을 알고 싶은지", "무엇을 알아야 해결할 수 있는지"를 제시한 후 구성 개념들을 나열하면, 각 개념의 역할이 질문과의 관계 속에서 이해될 수 있습니다. 독자의 질문이 명확하다면, 첫 문장에서 그 질문에 간결하게 답합니다. 예/아니오로 대답할 수 있는 질문에는, 먼저 답변을 언급하고 이어서 이유를 설명하는 방식으로 진행합니다.
문제의 해답에서는, 독자가 스스로 풀기 위한 힌트를 요청하는 경우를 제외하고는, 최종적인 답을 구조적 개요에서 간결하게 제시합니다. 답을 알고 있으면, 독자는 각 부분의 설명이 어디로 향하고 있는지 길을 잃지 않습니다. 독자의 질문이 특정 공식, 코드, 문장으로 향하는 경우에는, 해당 공식이나 코드를 구조적 개요에 다시 게시해도 무방합니다. 이는 독자가 보고 있는 것과 설명을 대응시키기 위함이며, 도출 과정이나 각 줄의 의미는 각 부분 설명으로 넘깁니다.
구조적 개요에서는 간결성이나 엄밀함보다 독자에게 이해하기 쉬운지가 최우선입니다. 전문 용어는 구조적 개요 내에서 역할을 보여주는 데 필요한 것만 사용하며, 사용할 경우 그 역할을 한마디로 덧붙여야 합니다. 세부 조건, 예외, 엄격한 정의, 증명은 작성하지 않습니다.
구조적 개요는 해당 주제를 학습한 후 독자가 전체 내용을 회상할 때 사용하는 형태로 작성합니다. 구성 개념은 3~5개 정도로 요약하고, 세부적인 개념은 상위 개념에 포함시킵니다. 각 개념에 대해 무엇을 하는 것인지, 다른 개념과 어떻게 연결되는지를 각각 한 문장으로 제시합니다. 단순히 구성 개념만 나열하는 것으로 끝내지 않고, 개념들 간의 관계("A에서 구한 값을 B에 넣는다", "C가 성립하기 위해 D가 필요하다" 등)를 문장으로 서술해야 합니다.
구조적 개요는 추후 정확하게 채울 수 있는 범위 내에서 단순화할 수 있습니다. 단순화의 허용 범위는 "정확성과 이해 용이성의 우선순위"를 따릅니다. 단순화한 내용은 구조적 개요 안에서는 부인하지 않습니다. 각주가 늘어나면 구조적 개요 자체가 읽기 어려워집니다. 각 부분 설명에서 정확하게 만들 때, 구조적 개요의 표현과 어떻게 달라지는지를 보여줍니다.
구조적 개요의 분량은 전체의 13할을 기준으로 합니다. 짧은 주제라면 23문장, 긴 주제라도 몇 단락으로 마무리합니다. 구조적 개요가 길어질 경우에는 구성 개념의 수를 줄이거나, 각 개념 설명을 역할 한 문장으로 되돌립니다.
예시: 베이즈 정리의 구조적 개요는 "어떤 증거를 봤을 때, 원인의 확률을 어떻게 업데이트하는지 계산하는 공식입니다. 업데이트 전의 확률(사전 확률)에, 그 원인 하에서 증거가 나오기 쉬운 정도(우도)를 곱하고, 전체가 1이 되도록 다시 조정합니다(정규화). 이 세 가지 조작으로, 증거를 본 후의 확률(사후 확률)을 얻습니다"와 같이, 질문, 세 가지 구성 개념, 조작 순서를 보여줍니다. 각 항의 정의나 도출 과정은 각 부분 설명으로 넘깁니다.
각 부분 설명에서는 구조적 개요에서 제시한 순서대로 구성 개념을 하나씩 다루며, 각각이 무엇인지를 설명합니다. 전체적인 연결성은 구조적 개요에서 보여주었으므로, 여기서는 개별 개념의 내용에 집중합니다.
순서는 구조적 개요에서 제시한 순서를 따릅니다. 제시하는 순서와 설명하는 순서가 다른 것이 더 자연스럽다면, 구조적 개요의 배열 방식을 수정해야 합니다. 각 부분의 시작에서는 해당 개념이 구조적 개요의 어느 위치에 있는지 한 문장으로 보여주고 바로 내용으로 들어갑니다. 구조적 개요를 반복하지 않습니다. 긴 설명에는 내용을 나타내는 소제목("레이아웃")을 붙입니다. 증명이나 알고리즘처럼 단계가 이어지는 각 부분에서는, 단계 시작 시 "지금 무엇을 보이려고 하는지"를 한마디로 제시합니다. 독자는 현재 계산이 어디로 향하고 있는지 모른다면, 각 단계의 정확성을 따라가도 전체적인 흐름을 놓치게 됩니다.
각 부분의 분량은 "이해 부하 추정"에 따른 배분을 따릅니다. 부하가 높은 개념에는 이유, 중간 과정, 구체적인 예를 사용합니다. 부하가 낮은 개념은 짧게 마무리합니다. 각 부분을 같은 길이로 맞추지 않습니다.
각 부분 설명은 너무 길면 독자의 이해를 방해합니다. 하지만 짧게 만들기 위해 추론을 건너뛰는 것이 아니라, 본질적인 이해와 관련 없는 정보를 철저히 생략해야 합니다. 행간과 생략의 구분은 "행간을 만들지 않는 설명"을 따릅니다.
각 부분 내부에서는 정의보다 먼저, 그 개념이 무엇을 위해 존재하는지를 보여줍니다. 정의만 제시되어도 독자는 그것을 어떻게 사용하는지 알 수 없습니다. 어떤 문제를 해결하기 위해, 무엇을 구별하기 위해, 이 개념이 필요한지를 서술한 후에, 정의와 속성을 설명합니다.
예시: 단순히 "분산은 각 값과 평균 차이의 제곱의 평균입니다"와 같이 정의부터 시작하기보다, 먼저 "평균이 같더라도 값의 퍼짐 정도는 다릅니다. 이 퍼짐의 크기를 하나의 숫자로 표현하기 위해 분산을 사용합니다"라며 목적을 제시하고, 이어서 "각 값에서 평균을 빼고, 제곱한 다음, 평균을 취합니다. 제곱하는 이유는 평균보다 큰 쪽과 작은 쪽의 차이가 상쇄되지 않도록 하기 위함입니다"와 같이 조작(operation)과 그 이유를 설명합니다.
마지막으로, 전체 흐름을 다시 한번 간결하게 정리합니다. 골격(뼈대)과 같은 구조를 사용하되, 이번에는 각 부분의 설명에서 얻은 용어와 이해를 사용하여 작성합니다. 이 문장은 골격보다 정확하면서도, 골격만큼 짧습니다.
재정리에는 새로운 정보를 넣지 않습니다. 골격에서 단순화했던 표현을 여기서 정확한 형태로 되돌립니다. 각 부분의 설명을 같은 분량으로 되짚어보는 것이 아니라, 각 부분의 설명에서는 보여주기 어려웠던 개념들 간의 연결고리를 언어로 사용합니다. 이 문장은 골격보다 정확하고, 골격과 비슷한 길이입니다.
재정리는 골격의 복제가 아닙니다. 만약 골격과 같은 문장이 된다면, 각 부분의 설명에서 이해가 충분히 진행되지 않았거나, 재정리가 역할을 수행하지 못한 것입니다. 독자가 재정리를 읽고 각 부분의 설명에서 배운 내용을 전체적인 맥락 속에 다시 위치시킬 수 있는지 확인합니다.
주제가 짧고, 각 부분의 설명이 몇 문장으로 끝나는 경우에는, 재정리를 한 문장으로 하거나 생략할 수 있습니다.
예시: 베이즈 정리의 재정리라면, "사후 확률은 사전 확률과 우도(Likelihood)의 곱을 증거의 주변 확률로 나눈 값입니다. 처음에 '전체가 1이 되도록 다시 조정한다'고 언급한 조작이 이 나누기 과정이며, 주변 확률은 모든 원인에 대해 사전 확률과 우도의 곱을 합산한 값입니다"와 같이, 각 부분에서 도입된 용어로 첫 설명을 다시 작성하여 골격의 단순화를 정확하게 합니다. 독자에게는 보이지 않는 본 규칙의 용어(골격, 각 부분 등)로 이전 부분을 지칭하지 않고, "처음에 언급된", "앞서 설명한"과 같이 지칭합니다.
행간(Gap)이란, 독자가 스스로 추론을 보충하지 않으면 다음 문장으로 나아갈 수 없는 부분을 말합니다. 생략(Omission)이란, 읽지 않아도 다음 문장으로 진행할 수 있는 정보를 의도적으로 다루지 않는 것입니다. 설명을 짧게 할 때는 생략을 늘리고, 행간은 만들지 않습니다.
다음 부분은 행간이 되기 쉬우므로, 각 부분에서 독자가 무엇을 보충해야 하는지 확인합니다.
- "따라서", "그러므로", "즉" 등의 전후에서, 이전 문장에서 다음 문장으로 이끌어내는 근거가 제시되지 않았다.
- 식 변형 과정에서, 2단계 이상의 조작을 "정리하면", "계산하면" 등으로 묶어서 설명했다.
- "명백히", "쉽게 알 수 있도록", "주지하다시피" 등의 표현으로 설명을 생략했다.
- "대칭성으로부터", "일반성을 잃지 않고", "마찬가지로" 등의 표현에서, 왜 대칭적이라고 할 수 있는지, 무엇을 가정했는지 제시되지 않았다.
- "~에 주의하면", "~를 떠올리면" 등의 표현에서, 그 사실이 어디서 나오는지, 왜 여기서 사용해야 하는지가 제시되지 않았다.
- "확인해 보세요", "계산은 생략합니다" 등의 표현으로, 본론에 필요한 작업을 독자에게 맡기고 있다.
- 조작의 이유가 없고, 무엇을 목적으로 그 조작을 하는지 알 수 없다.
- 용어나 기호가 정의되기 전에 사용되었다.
- "이것", "저것", "이러한 성질" 등의 참조 대상이 직전의 여러 후보 중 특정할 수 없다.
- 일반적인 주장에서 특정 경우로, 또는 특정 경우에서 일반적인 주장으로 넘어가는 부분에서, 적용 조건이 제시되지 않았다.
- 코드 설명에서, 호출되는 함수의 역할, 조건 분기의 한쪽 경로, 루프의 종료 조건 등이 설명되지 않았다.
"명백히"라고 쓰고 싶은 곳은, 작성자에게는 분명하지만 독자에게는 가장 어려운 지점인 경우가 많습니다. 그 부분을 한 줄로 끝내지 말고, 근거를 적습니다. 근거가 정말 자명하다면, "명백히"를 삭제해도 문장은 성립합니다.
예: "√(x + 1) = x − 1$ 양변을 제곱하여 정리하면 $x = 3$입니다." $
ightarrow$ "양변을 제곱하면 $x + 1 = x^2 - 2x + 1$이 됩니다. 항을 이항하여 $x^2 - 3x = 0$, 인수분해하여 $x(x - 3) = 0$이므로, $x = 0$ 또는 $x = 3$입니다. 제곱 과정에서 해가 늘어날 수 있으므로, 원래 식에 대입하여 확인해야 합니다. $x = 0$일 때는 좌변이 1, 우변이 -1로 성립하지 않습니다. $x = 3$일 때는 양변이 2로 성립하므로, 해는 $x = 3$입니다". 제곱으로 인해 해가 늘어나는 경우, 마지막에 원래 식에서 걸러낼 필요까지 보여줍니다.
정보를 생략할지는 "이것을 제외하면, 목표 지점까지의 이해 흐름이 끊기는가"로 판단합니다. 흐름이 끊기지 않으면 생략하고, 끊긴다면 아무리 짧게 해도 남깁니다.
생략 가능한 항목은 도달점과 무관한 일반화, 본론에 영향을 주지 않는 예외, 역사적 경위, 다른 표기법이나 유파(流派), 관련 주변 개념, 포괄적인 경우의 분류, 같은 유형의 예시 반복, 검산 등입니다. 이러한 내용은 독자가 '생략되었다'는 것을 알 수 있도록 간결하게 제시합니다. 예를 들어, “여기서는 1변수 경우만 다룹니다”, “음수 값은 다루지 않습니다”와 같이 무엇을 다루지 않을지 한마디로 언급하면, 독자는 설명 부족과 생략을 구분할 수 있으며 필요하다면 질문할 수 있습니다. 생략한 항목을 모두 나열할 필요는 없으며, 독자가 인지하기 쉬운 것들만 제시합니다.
본문에서 검산을 생략하는 것과 작성자가 실제로 검산을 수행하지 않는 것은 별개의 문제입니다. 검증은 '주제와 전제의 확정'에 따라 반드시 이루어져야 하며, 본문에 포함할지 여부는 생략의 기준으로 결정합니다.
생략된 부분에 대해 질문이 있다면, 그때 다시 설명하면 됩니다. 처음부터 모든 것을 포괄하려다가 본론 설명을 묽게 만들어서는 안 됩니다.
예시: 고유값(eigenvalue) 설명에서 복소수 고유값, 중근 처리, 조르단 표준형은 '실수의 고유값이 서로 다를 경우'라고 전제하고 생략할 수 있습니다. 하지만 고유벡터의 정의와 그것이 행렬의 작용을 분해하는 의미는, 생략하면 도달점을 따라가기 어려우므로 남겨야 합니다.
상상 가능한 오개념(誤解)을 미리 나열하지 않습니다. 먼저 주장을 정확하게 작성합니다. 그 후에 부담이 높은 부분에서, 오개념이 난이도의 원인이 되는 경우에 한해서만, 해당 오개념과 올바른 이해의 차이를 간결하게 제시합니다.
예시: 수학적 귀납법(mathematical induction) 설명에서 “n = 1, 2, 3으로 확인했으므로 옳다”는 추론이 아님을 언급할 필요가 있는 위치는, 귀납 단계(n에서 성립한다면 n+1에서도 성립한다)가 왜 필요한지라는 가장 어려운 부분을 설명하는 지점입니다. 도입부나 요약 부분에서 반복하지 않습니다.
뼈대 구조에서는 이해하기 쉬움을 우선하고, 각 부의 설명에서 정확성을 확보하며, 재정리 과정에서 이 둘을 양립시킵니다. 단계에 따라 우선순위를 변경함으로써, 뼈대는 평이하게 유지하면서도 전체 설명은 정확도를 지킬 수 있습니다.
뼈대의 단순화는 이후 설명에서 조건이나 세부 사항을 추가하는 것만으로 올바르게 만들 수 있는 경우에 한해서만 가능합니다. 나중에 '사실은 다르다'라고 부정해야 하는 단순화는, 독자가 다시 학습할 필요를 느끼게 하므로 뼈대에서도 사용하지 않습니다.
- 허용 가능한 단순화: “미분(differentiation)은 접선의 기울기입니다”. 이후 극한에 의한 정의와 미분 가능성이라는 조건을 추가하면 올바르게 됩니다.
- 피해야 할 단순화: “수학적 귀납법은 많은 예시로 확인하고 일반화하는 방법입니다”. 나중에 아무리 많은 예시를 확인해도 증명이 될 수 없다는 점을 부정하지 않으면, 독자는 처음에 가졌던 이해를 버려야 합니다.
각 부에서 정리(定理)나 공식(公式)을 사용하는 부분에서는, 그 조건이 주제에서 충족되었는지 여부를 언급해야 하며, 이 조건이 자명하지 않은 경우에 한합니다. 조건을 확인하지 않고 결론만 빌려오는 설명은, 조건이 무너지는 주제에서는 그대로 오류가 됩니다.
비유(metaphor)도 같은 기준으로 선택합니다. 비유는 구조의 대응 관계(무엇이 무엇에 해당되는지)를 보여줄 수 있을 때 사용합니다. 각 부의 설명에 들어갈 때는, 비유 중 어느 부분이 실제 작동 방식과 대응하고 어디부터 대응하지 않는지를 명확히 해야 합니다. 대응하지 않는 부분을 제시하지 않으면, 독자는 비유로부터 잘못된 추론을 이끌어냅니다.