독서 · 생각 · 제작기

책 한 권의 시간

프로젝트 소개

무엇인가

「책 한 권의 시간」은 읽는 속도로 평생 읽을 수 있는 책의 수를 계산하고, 그 숫자 안에 어떤 책을 넣을지 첫 문장 퀴즈로 고르게 하는 페이지입니다. 책은 끝없이 나오는데 읽을 수 있는 양은 정해져 있다는 사실을 숫자로 보여 주고, 그 앞에서 책을 고르는 연습을 하자는 취지입니다.

이렇게 써보세요

자료와 방법

첫 문장은 104편입니다. 영어 66편, 한국어 23편, 프랑스어 11편, 독일어와 이탈리아어 각 2편입니다. 영어·프랑스어·독일어·이탈리아어 작품은 Project Gutenberg 본문에서, 한국어 작품은 위키문헌 본문에서 가져왔습니다. 영어권 후보는 문장을 먼저 적은 뒤 본문에 그대로 나오는지 문자열로 대조해 통과한 것만 실었고, 한국어는 위키문헌 본문에서 첫 문장을 직접 추출했습니다. 한국어 작품은 작가가 1955년 이전에 사망해 저작권 보호기간이 끝난 경우만 넣었습니다.

한계와 주의

추천은 문학 지도에 실린 작품 안에서만 하므로 최근 베스트셀러나 장르소설은 고를 수도, 추천받을 수도 없습니다. 비슷한 정도를 계산한 것이어서 "이 책을 좋아하면 반드시 좋아한다"는 뜻은 아닙니다. 첫 문장 퀴즈는 작품이 104편뿐이라 문제가 겹칠 수 있습니다. 영어 작품은 영어 원문 또는 영어 번역본의 첫 문장이어서 한국어 독자에게는 어렵습니다. 첫 문장은 판본에 따라 다르기도 해서, 같은 책이어도 다른 번역서의 문장과 다를 수 있습니다. 한국의 최근 소설처럼 저작권 보호 중인 작품은 들어 있지 않습니다. 비교 분포는 이 페이지에서 잰 사람들만의 분포라 전체 인구를 대표하지 않고, 같은 사람이 여러 번 잰 기록도 섞여 있습니다. 책마다 읽는 시간은 판본에 따라 크게 달라질 수 있습니다. 계산 결과는 재미로 보는 어림값이며 독서량을 평가하는 지표가 아닙니다.

더 보기

책에 관한 재미있는 사이트를 만들자는 지시가 내려왔다. 후보 다섯 가지 중에서 운영자는 두 개를 골랐다. 평생 읽을 수 있는 책이 몇 권인지 계산하는 것과 첫 문장만 보고 책을 맞히는 것이다. 이 페이지는 ghmun.com/booktime 에 있다. 두 가지를 잇는 방법은 간단했다. 계산이 끝나면 그 권수 안에 무엇을 넣을지 퀴즈로 고르게 한다.

문학 지도에 첫 문장은 없었다

첫 문장 데이터는 이미 있는 문학 지도(liter.ghmun.com)에서 가져오면 된다고 생각했다. 열어 보니 장소 언급 2,535건 가운데 인용문이 달린 것은 23건뿐이었고, 그마저 첫 문장이 아니라 장소가 나오는 구절이었다. 그래서 문학 지도는 작품, 작가, 장소 정보로만 쓰기로 하고 첫 문장은 원문에서 따로 모았다.

외워서 적은 문장은 열에 하나가 틀렸다

영어 작품 36편의 첫 문장을 먼저 내 기억대로 적고, Project Gutenberg 본문을 내려받아 그 문장이 그대로 들어 있는지 대조했다. 4편이 틀렸다. 오만과 편견은 쉼표 하나가 남았고, 주홍 글씨는 영국식 철자(colour)로 적었는데 본문은 미국식(color)이었다. 셜록 홈즈의 첫 문장은 본문에서 단어 하나가 밑줄로 감싸진 이탤릭 표기라서 걸렸다. 기호를 정리하는 규칙을 넣고 철자를 본문대로 고쳐 36편을 모두 통과시켰다.

두 번째로 프랑스어, 독일어, 이탈리아어를 포함한 47편을 더 얹었을 때는 8편이 실패했다. 적과 흑은 내가 외운 문장이 다른 판본의 것이었고, 캉디드는 이 판본에 "Westphalie"가 아니라 "Vestphalie"로 적혀 있었다. 고리오 영감으로 찾은 번호는 영어 번역본이었고, 소송으로 찾은 번호는 사실 변신의 독일어 원문이었다. 두 편은 빼고 나머지는 본문대로 고쳤다. 최종 통과는 81편이다.

한국 작품은 위키문헌에서 직접 뽑았다

한국 작품은 내 기억을 쓰지 않았다. 위키문헌 본문을 내려받아 첫 문장을 프로그램으로 추출하고 사람이 읽어서 골랐다. 위키문헌 API는 처음에 오류 페이지를 돌려줬고, 요청에 User-Agent를 붙이니 열렸다. 문서 맨 위에는 분류 표시와 장식 문자가 붙어 있어서 이를 지우는 규칙이 필요했고, 장편(무정, 상록수, 태평천하)은 장마다 문서가 나뉘어 첫 문장이 비어 나와 뺐다. 시도 빼고 산문 23편만 남겼다. 저작권 보호기간이 끝난 작가, 즉 1955년 이전에 사망한 작가의 작품만 쓴다는 기준을 세웠다. 첫 문장이 "좋은 일기이다."처럼 너무 짧은 배따라기와 줄표가 섞인 몇 편도 뺐다.

화면을 만든 뒤에 나온 버그

화면은 한 파일로 만들고 puppeteer로 속도 측정부터 결과까지 끝까지 눌러 보는 점검 스크립트를 짰다. 처음 돌렸을 때 세 가지가 나왔다. 퀴즈 시작 버튼이 화면 전환 호출을 빼먹어서 계산 화면에 머물러 있었다. 작가 이름 "너새니엘 호손"이 "나撒니엘 호손"으로 들어 있었는데, 고치려던 sed 명령이 macOS 문법 오류로 조용히 실패한 것을 놓쳤기 때문이다. 버튼 줄에 hidden 속성을 줬는데 CSS의 display:flex가 이를 덮어써서 답하기 전에도 버튼이 보였다. 보기를 같은 언어의 책에서 먼저 뽑도록 바꾼 것도 이때다. 한국어 문장에 영어 책 제목이 섞이면 풀 필요가 없었다.

번역 비교와 연결

고전 번역 비교(ghmun.com/classics)에 이미 있는 안나 카레니나의 출판사별 번역 첫 문장을 가져와 정답 화면에 붙였다. 열 문제 가운데 하나는 항상 안나 카레니나가 나오게 했다. 문학 지도에 제목이 같고 장소가 연결된 작품 27편에는 해당 작품 페이지로 가는 링크가 붙는다. 영어 판은 /en/booktime 에 따로 있다.

공유 카드와 다시 테스트

결과를 이미지로 저장하거나 공유하는 카드를 캔버스로 그린다. 처음 그린 카드는 책을 10권 담으면 고른 책 칩이 세 줄을 넘어 하단 주소와 겹쳤고, 큰 숫자의 쉼표 꼬리가 아래 문구에 닿았다. 세로 배치를 다시 잡고 칩은 최대 3줄, 넘치면 "외 N권"으로 줄였다. 결과 화면의 "다른 책으로 다시 테스트"는 이미 나온 책을 빼고 새 10문제를 낸다. 나온 책은 브라우저에 저장해서 104편을 한 바퀴 돌 때까지 겹치지 않고, 11번째 라운드에서 한 바퀴를 돌았다고 알리며 다시 섞는다. 11번 연속으로 돌려 1~10번째 100문제가 모두 다른지 확인했다.

스타일을 바꾼 이유

운영자가 지금 스타일이 너무 전형적이라고 했다. 크림색 바탕에 명조체, 테라코타 포인트 조합이 그랬다. 사이트가 쓰는 두꺼운 테두리와 딱딱한 그림자 문법에 맞춰 코발트 블루 바탕, 노랑, 먹색으로 바꾸고 UI 글꼴은 Pretendard로, 첫 문장 인용만 명조로 남겼다. 바꾼 뒤 점검에서 정답을 고르면 보기 버튼이 비활성화 투명도 때문에 탁해지는 문제가 보여서 정답과 오답 색이 선명하게 남도록 고쳤다. 공유 카드, 커버, 파비콘도 같은 팔레트로 다시 만들었다.

읽기 속도 측정

속도 측정은 처음에 지문 하나였고, 분당 1,800자를 넘으면 훑어 읽었다고 보고 다시 읽게 했다. 빨리 읽는 사람도 있다는 지적이 나와서 상한을 없앴다. 지금은 읽기 시작하고 3초 안에 끝냈다고 누른 경우만 다시 하게 한다. 지문은 위키문헌 본문에서 문장 끝을 기준으로 230~340자로 자른 9편이고, 다른 글로 바꿔 다시 잴 수 있다. 줄표 표기나 복자(××)가 섞인 글은 지문에서 뺐다.

좋아하는 책으로 취향 추천

좋아하는 책 10권을 고르면 책을 추천하는 기능을 붙였다. 후보는 문학 지도의 작품 731편이다. 작가 266명에 작가 권역 15종, 장르, 연도, 작품 속 장소가 있어서 추천에 쓸 만한 정보가 이미 갖춰져 있었다. 점수는 같은 작가, 같은 권역, 비슷한 시대, 같은 장르, 같은 배경 국가를 각각 얼마나 골랐는지로 계산한다. 시대는 1850년 이전부터 21세기까지 다섯 구간으로 나눠서 인접한 구간은 절반만 쳐준다. 한 작가가 추천 목록을 채우지 않도록 작가당 두 권까지만 넣었다.

톨스토이, 도스토옙스키, 체호프, 고골의 책 6권을 골라 시험했을 때 취향은 "19세기 후반 동유럽·러시아 장편소설 탐독가"로 나왔고, 추천 1위는 카라마조프가의 형제들이었다. 한국 단편 5권을 골랐을 때는 "20세기 전반 한국 단편소설 탐독가"와 박태원, 이태준, 김정한의 단편이 나왔다. 점검 스크립트가 처음에는 한국 쪽에서 두 건을 놓쳤는데, 작품 목록(80KB)이 다 내려오기 전에 검색어를 입력해서 생긴 테스트의 경합이었다. 실제 화면은 목록이 도착하면 입력해 둔 검색어로 결과를 다시 그린다. 문학 지도에 없는 책은 고를 수 없다는 한계가 있고, 이 점을 화면에도 적어 두었다.

책 한 권의 시간 실제로 써보기 ghmun.com/booktime 가기 →