개발자처럼 장편소설 쓰는 법

원고를 넣으면 설정집이 생긴다 (4/7)

원고를 넣으면 설정집이 생긴다

지난 편에서 도구를 설치하고 빈 폴더 하나를 VSCode로 열었다. 이번 편에서는 그 폴더에 원고를 넣고, LLM이 그것을 읽어 첫 설정집을 만들어 보자. 워드나 한글로 써 둔 원고가 있어도 괜찮다. 그것을 옮기는 일부터 시작한다. 아직 한 글자도 쓰지 않았다면 그것대로 좋다. 빈 폴더에서 출발해, 다음 편의 리듬으로 한 화씩 써 가며 설정집을 함께 채워 가면 된다.

원고를 마크다운으로

우리는 원고를 마크다운이라는 형식으로 바꾼다. 마크다운은 특별한 프로그램 없이 메모장으로도 열리는 단순한 텍스트에, 제목이나 강조 같은 최소한의 표시만 더한 형식이다. 글자 크기나 색깔 같은 꾸밈은 없지만, 우리에게 필요한 것은 꾸밈이 아니다. LLM이 쉽게 읽고, Git이 변화를 정확히 추적하고, 어떤 컴퓨터에서도 깨지지 않는 것. 마크다운은 이 세 가지를 모두 만족한다.

막상 소설에 쓰는 표기는 몇 개 되지 않는다. 화의 제목은 맨 앞에 #을 하나 붙이고, 강조하고 싶은 말은 양옆을 별표 두 개로 감싼다. 장면이 바뀌는 자리에는 빈 줄을 하나 두거나 가로줄을 넣으면 된다. 사실상 이게 전부다. 한글에서 쓰던 굵게나 기울임 정도는 그대로 옮겨지고, 화려한 글꼴이나 색은 어차피 소설 본문에 필요 없던 것들이다. 표기가 헷갈리면 그것조차 LLM에게 "이 부분 마크다운으로 어떻게 쓰면 돼?"라고 물으면 된다.

한글이나 워드에 들어 있는 원고를 옮기는 가장 확실한 방법은, 먼저 텍스트 파일을 한 번 거치는 것이다. 한글이든 워드든 '다른 이름으로 저장'에서 형식을 텍스트 문서(.txt)로 고르면, 글자만 남고 복잡한 서식은 모두 떨어져 나간다. 소설 본문에는 어차피 제목과 강조, 장면 전환 표시 정도면 충분하므로 잃을 것이 없다. 작가가 손으로 할 일은 사실 여기까지, 텍스트 파일을 작품 폴더에 넣는 것으로 끝난다.

검증된 방식을 그대로 적용한다

폴더를 어떻게 나눌지, 설정집을 어떤 모양으로 만들지 작가가 하나하나 지시할 필요는 없다. 이 방식에는 이미 잘 정리된 원본이 있다. 2편에서 설정집의 출처로 언급한 그 글, 안드레이 카파시의 LLM-Wiki다. 우리가 할 일은 그 글을 LLM에게 그대로 건네고 내 원고에 적용해 달라고 하는 것이다.

Claude Code의 대화 창에 이렇게 적는다.

링크에 정리된 LLM-Wiki 방식을 내 소설 프로젝트에 적용해 줘. https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f 원고는 원본 그대로 두고, 인물·세계관·연표·복선을 정리한 설정집을 만들어 줘.

그러면 Claude Code가 그 글을 읽고, 원고와 설정집의 자리를 나눈 뒤(원본은 읽기만, 설정집만 새로 생성), 소설에 맞는 인물·장소·연표·복선 페이지를 만들기 시작한다. 한 번에 끝나는 일은 아니어서, 원고가 길면 몇 화씩 나눠 읽어 가며 설정집을 채운다. 사실 이 가이드에서 예로 든 설정집도 바로 이 한 번의 요청에서 시작됐다. (마지막 한 줄, '인물·세계관·연표·복선'이 중요하다. 카파시의 글은 소설이 아니라 일반 자료를 위한 것이라, 소설에 맞게 무엇을 정리할지 짚어 줘야 한다.)

설정집은 한 덩어리가 아니라 여러 페이지로 나뉘어 생긴다. 인물마다 한 장씩 성격과 외모·말투·관계를 적은 인물 사전, 사건을 시간순으로 늘어놓은 연표, 장소 목록, 그리고 깔아 둔 복선을 모아 둔 목록 같은 것들이다. 각 사실 뒤에는 근거가 된 화 번호가 '(→ 0010)'처럼 붙어 있어, 미심쩍을 때 원고의 그 대목을 바로 펼쳐 볼 수 있다. 머릿속에만 있던 세계가 처음으로 손에 잡히는 문서가 되는 순간이다.

말로 풀기보다 한 토막을 직접 보는 편이 빠르다. 가령 원고에 이런 장면이 있다고 하자.

"당신이 죽으면 당신은 없어."

수아가 그를 보았다. "내가 죽으면 내가 죽는 거지. 사라지는 게 아니야."

"수아야, 그게 같은 말이야."

"같은 말 아니야."

수아가 머그를 두 손으로 감쌌다. 손이 부어 있었다. "죽는다는 건 한 사람이 자기 자리에서 끝까지 살다가 그 자리에서 끝나는 거야. 그 자리에 다른 사람을 세워두고 그 사람을 살리는 게 아니야."

이 한 장면을 읽고 LLM은 인물 사전의 '수아' 페이지에 대략 이렇게 적어 넣는다.

수아

핵심 사실 — 30대. 남편 은현철과 부부 (→ 0030). 손이 부어 있다 (→ 0030). 죽음을 '대체'와 분명히 구분한다 — "자기 자리에서 끝까지 살다가 그 자리에서 끝나는 것"일 뿐, 다른 사람으로 대신 살리는 게 아니라고 본다 (→ 0030).

대사·문체 노트 — 짧고 단정적인 문장. 상대의 말을 토막으로 되받아친다("같은 말 아니야"). 감정을 직접 터뜨리지 않고 논리로 맞선다.

관계 — 남편 은현철: 삶과 죽음을 두고 정면으로 부딪친다.

🔑 복선 — 은현철이 말한 "죽으면 없어진다"와 수아가 거부하는 '대체'. 뒤에서 회수될 떡밥.

원고에서는 흩어진 대사 몇 줄이던 것이, 이렇게 인물의 신념·말투·관계·복선으로 갈래갈래 정리된다. 앞서 말한 출처 표시 '(→ 0030)'가 각 줄에 붙어 있어, 미심쩍으면 그 화를 바로 펼쳐 볼 수 있다.

여기에는 한 가지 원칙이 깔려 있다. 원고, 곧 원본은 LLM이 읽기만 하고 고치지 않게 둔다. 다만 이것은 도구에 거는 약속이라 드물게 어긋날 수도 있는데, 모든 변경이 커밋으로 남으므로 그런 때에도 원래대로 되돌리면 된다. 작가가 쓴 본문은 언제나 작가의 것으로 남고, LLM이 만들고 갱신하는 것은 설정집뿐이다. 원본을 건드리지 않는다는 이 원칙이, 마음 놓고 일을 맡길 수 있는 바탕이 된다.

LLM은 이 과정에서 한 가지를 더 만든다. 앞으로 설정집을 어떻게 유지할지 적은 규칙 파일이다. 작가가 따로 저장할 것은 없고, LLM이 알아서 폴더에 남겨 둔다. 이 파일 덕분에 다음부터는 같은 설명을 되풀이할 필요가 없다. 새 화를 쓰고 "방금 쓴 화를 반영해 줘"라고 한마디만 하면, LLM이 그 규칙대로 설정집을 갱신한다.

실제로 이렇게 한 차례 정리하고 나면, 원고 폴더는 아래와 같은 모습이 된다.

04-screen-01 ![VSCode에서 본 실제 작업 화면]

실제 작업 화면. 왼쪽 탐색기에 화 단위 마크다운 원고가 줄지어 있고(0010, 0011 …), 가운데에는 그중 한 화가 열려 있으며, 오른쪽에는 Claude Code 대화 창이 떠 있다. 원고와 조력자가 한 화면에 나란히 놓인다.

작가는 확인한다

설정집이 만들어졌다고 해서 그대로 믿고 넘기지는 않는다. LLM은 틀릴 때가 있다. 인물의 성격을 어긋나게 요약하거나, 원고에 없는 사실을 그럴듯하게 지어내기도 한다. 그래서 첫 설정집이 나오면 작가는 그것을 한 번 읽고 바로잡는다. 특히 인물의 핵심 설정(나이·관계·동기)과 굵직한 사건의 순서, 그리고 빠뜨린 복선은 없는지를 눈여겨본다. "이 인물의 동기를 이렇게 봤는데 맞나?", "이 사건은 3화가 아니라 5화다." 이렇게 주고받는 동안 설정집은 점점 정확해지고, 작가는 덤으로 자기 글을 한 발 떨어져 다시 보게 된다.

이 검수가 중요한 이유는 분명하다. 운전대는 끝까지 작가가 쥐고, LLM은 옆에서 정리를 도울 뿐이기 때문이다.

문제가 없다면 입력창에 이렇게 입력하면 된다.

커밋해줘

다음 편에서는

이제 원고와 설정집이 한 폴더 안에 자리를 잡았다. 다음 편에서는 매일의 집필이 어떻게 돌아가는지를 본다. 한 화를 쓰고, 설정집을 갱신하고, 커밋으로 한 시점을 남기는 그 리듬이다.


마크다운(Markdown) : 일반 텍스트에 제목·강조·목록 같은 최소한의 서식 표시를 더한 문서 형식. 특별한 프로그램 없이 열리고 사람이 읽기 쉬우며, LLM과 Git이 다루기에 알맞아 글과 코드 양쪽에서 널리 쓰인다.