Book Prize Index: 임베딩(embeddings)을 사용하여 검색하는 6,500권의 수상 도서
요약
역사학자 Benjamin Breen이 Claude Code를 활용해 6,500권의 수상 도서 데이터베이스인 'Book Prize Index'를 구축했습니다. Wikipedia 데이터를 Claude와 GPT-5.6으로 구조화하고 임베딩을 적용하여 의미론적 검색 기능을 구현했습니다.
핵심 포인트
- Claude Code를 활용한 데이터베이스 구축 프로젝트
- 임베딩 기반의 의미론적 검색(Semantic Search) 구현
- AI를 콘텐츠 생성이 아닌 양질의 콘텐츠 큐레이션 도구로 활용
- Wikipedia 데이터를 활용한 데이터 추출 및 구조화
41세의 한 역사학자가 도서관에서 책을 정리하던 학생 시절의 과업을 공개적인 의미론적 검색(semantic search) 도구로 탈바꿈시켰습니다. UC Santa Cruz의 교수인 Benjamin Breen은 2026년 여름 동안 Claude Code를 활용하여 Book Prize Index를 프로그래밍했습니다. 이는 영어로 된 약 6,500권의 비소설(non-fiction) 도서 데이터베이스로, 해당 언어의 가장 중요한 문학상에서 수상하거나 최종 후보에 오른 책들을 간단한 기준으로 필터링한 것입니다.
이 프로젝트는 AI로 콘텐츠를 생성하는 것을 목표로 하지 않습니다. 오히려 그 반대입니다. Breen이 거침없이 'AI 슬롭(AI slop)'이라고 부르는 것들 사이에서, 양질의 인간 콘텐츠를 찾기 위해 AI를 사용하는 것입니다.
요약 (TL;DR)
- 41세의 UC Santa Cruz 역사학자 Benjamin Breen이 2026년 여름에 Book Prize Index를 구축했습니다.
- 이 데이터베이스는 주요 영어 문학상에서 최종 후보에 오르거나 수상한 약 6,500권의 비소설(non-fiction) 도서를 수집합니다.
- Breen은 주로 Wikipedia에서 데이터를 추출하고 구조화하기 위해 Claude와 GPT-5.6을 사용했습니다.
- 이 도구는 의미론적 검색(semantic search)을 제공합니다: '놀라울 정도로 희귀한 고전 전기'와 같은 문구를 인식합니다.
- 접근은 무료입니다; Breen이 호스팅 및 API 비용을 사비로 지불합니다.
- 이 프로젝트는 AI 슬롭(AI slop)에 대한 직접적인 대조로서 탄생했습니다: 일반적인 텍스트를 생성하는 것이 아니라, 품질을 큐레이션하기 위해 AI를 사용합니다.
- Breen은 이 경험을 Butler Library의 GR 830 섹션에서 책을 정리하던 과거의 업무와 비교합니다.
서론
Breen의 출발점은 개인적인 경험입니다. 대학교 1학년 시절, 그는 미국 의회도서관 (Library of Congress) 분류 체계의 A-F 섹션(종교, 철학, 사회학, 역사)에서 서가 정리 담당자 (shelver, 반납된 도서를 재배치하는 직원)로 일했습니다. 지루함을 달래기 위해 그는 자신만의 규칙을 만들었습니다. 책을 무작위 페이지에서 펼쳐 문장 하나를 읽는 것이었습니다. 대부분의 문장은 아무런 감흥을 주지 못했습니다. 하지만 때때로 헬레니즘 신비주의 종교 (mysteric cults)에 관한 이야기나 _Are Clothes Modern?_와 같은 내용을 발견하게 되면, 책을 제자리에 돌려놓기 전 몇 페이지를 더 읽게 되곤 했습니다.
Breen은 이 방식이 그 어떤 정규 수업보다 더 많은 것을 가르쳐 주었다고 말합니다. 왜냐하면 그것은 일종의 '필터링된 자기 주도 학습 (auto-aprendizaje)'이었기 때문입니다. 분류 체계와 학술 도서관의 기준이 이미 해당 텍스트들을 선별해 두었으며, 실제로 대출되었다는 사실은 그 책들이 실제 독자들을 만났음을 증명해 주었습니다. Book Prize Index는 이러한 큐레이션된, 그러면서도 부분적으로 무작위적인 탐색의 느낌을 디지털 방식으로 재현하고자 합니다.
무엇이 일어났는가
Breen은 영어 비소설 (non-fiction) 도서에 대해 가장 신뢰할 수 있고 검증 가능한 품질 기준은 단순하다고 판단했습니다. 바로 주요 문학상을 최종 후보에 올랐거나 수상했다는 사실입니다. 그는 해당 언어의 모든 관련 상을 집계한 후, Claude와 GPT-5.6에게 주로 Wikipedia를 활용하여 각 상의 최종 후보 및 수상자 명단을 수집하고, 이를 정렬 및 조회가 가능한 데이터베이스로 구성하도록 요청했습니다.
그 결과, 필터링과 정렬이 가능한 충분한 메타데이터를 갖춘 약 6,500개의 타이틀 목록이 만들어졌습니다. 이 기초 데이터를 바탕으로 Breen은 임베딩 (embeddings) 모델을 적용하여 의미론적 검색 (semantic search) 기능을 구현했습니다. 즉, 시스템이 정확한 단어 일치를 찾는 대신, 질의어의 의미와 유사한 도서를 찾도록 만든 것입니다.
배경 및 역사
Breen은 이 프로젝트를 자신이 직접 목격해 온 더 광범위한 쇠퇴의 일부로 규정합니다. 즉, 직접 보고 탐색할 수 있는 개방형 서가 형태의 도서관이 점차 Learning Labs, 그룹 스터디룸, 소셜 공간으로 대체되고 있으며, 오래되고 희귀한 책들은 재활용 함으로 향하고 그 자리를 디지털 판본들이 대신하고 있다는 것입니다.
이러한 맥락에서 그는 양질의 비소설 (non-fiction) 도서들이 쇠퇴하지 않았다고 주장합니다 (오히려 그는 이 장르가 드물게 인정받는 황금기를 지나고 있다고 말합니다). 비록 비소설 독서량이 챗봇 (chatbots)이나 팟캐스트 (podcasts)와의 경쟁에서 밀려나고 있음에도 말입니다.
과거 GR 830 분류 체계는 종교, 민속학, 심지어 흡혈귀까지도 동일한 서가에 함께 묶었습니다.
기술적 세부 사항 및 성능
Book Prize Index의 핵심은 데이터 수집(Breen이 Claude와 GPT-5.6을 사용하여 Wikipedia 목록을 읽음으로써 해결한 부분)이 아니라, 그 6,500개의 타이틀 위에 구축된 의미론적 검색 (semantic search) 계층입니다. 임베딩 (embeddings) 모델은 각 도서와 각 질의를 그 의미를 나타내는 수치 벡터 (vector)로 변환합니다. 결과적으로 단어의 일치가 아닌 벡터 간의 근접성이 어떤 결과가 먼저 나타날지를 결정합니다.
그렇기 때문에 _modern France_나 _social history_와 같은 질의뿐만 아니라, classic biographies that are surprisingly weird (놀라울 정도로 기이한 고전 전기)와 같이 훨씬 더 구체적인 문구도 작동합니다. 모델은 키워드 기반 검색 엔진으로는 찾을 수 없는 타이틀과 이 문구를 연관 지을 수 있는데, 예를 들어 Breen이 표지에서 암시하는 것보다 더 기이하다고 설명한 James 가문(Wharton 가문)의 전기와 같은 사례가 이에 해당합니다.
다음 다이어그램은 수상 목록부터 최종적인 의미론적 질의에 이르는 전체 흐름을 요약합니다.
flowchart TD
A["Wikipedia의 수상 목록"] --> B["Claude 및 GPT-5.6이 데이터 추출"]
B --> C["6,500개의 타이틀로 구성된 구조화된 데이터베이스"]
...
각 도서는 다른 도서와의 주제적 근접성을 측정하는 벡터 (vector)로 변환됩니다.
| 방법 | 사용 시점 | 장점 | 한계 |
|---|---|---|---|
| 키워드 검색 (Keyword search) | 정확한 제목이나 저자를 찾을 때 | 정확하고 예측 가능함 | 단어를 공유하지 않으면 주제별 관련 도서를 찾지 못함 |
| 의미론적 검색 (Semantic search, embeddings) | 개념, 어조 또는 다른 도서와의 유사성을 탐색할 때 | 제목 간의 명확하지 않은 연결 고리를 찾아냄 | 결과가 때때로 당혹스럽거나 정당화하기 어려울 수 있음 |
| 인간 큐레이션 (사서 또는 서가 관리자) | 물리적 공간 내에서의 뜻밖의 발견 (serendipitous discovery) | 실제 전문가와 독자에 의해 이미 검증된 품질 필터 | 물리적 컬렉션과 도서관 운영 시간의 한계를 벗어나 확장할 수 없음 |
시작하는 방법 (테스트하기)
Book Prize Index는 구조화된 텍스트 컬렉션에 임베딩 (embeddings)을 적용하는 간단한 사례입니다. 이 아이디어를 소규모로 재현하는 데는 복잡한 인프라가 필요하지 않습니다. 임베딩 모델과 몇 권의 제목만 있으면 충분합니다.
from sentence_transformers import SentenceTransformer
modelo = SentenceTransformer("all-MiniLM-L6-v2")
...
이 첫 번째 블록은 범용 임베딩 모델을 로드하고 쿼리 (query)를 벡터로 변환합니다. 결과는 문장의 정확한 단어가 아닌 문장의 의미를 나타내는 숫자 배열 (이 모델의 경우 일반적으로 384 차원)입니다.
import numpy as np
def similitud_coseno(a, b):
...
두 번째 블록은 쿼리와 코퍼스 (corpus) 내 각 도서 간의 코사인 유사도 (cosine similarity)를 계산하고, 결과값을 의미론적 근접성이 높은 순서대로 정렬합니다. ranking에서 가장 먼저 나타나는 도서는 검색어와 가장 많은 단어를 공유하는 도서가 아니라, 검색어의 의미에 가장 가까운 도서입니다. Book Prize Index의 전체 코퍼스가 쿼리에 잘 응답하는지 확인하기 위해, Breen은 이미 알고 있는 책을 검색해 보고 관련 추천 도서들이 주제적으로 의미가 있는지 확인해 볼 것을 권장합니다.
💡 팁: 소규모 컬렉션을 대상으로 직접 시맨틱 검색 엔진 (semantic search engine)을 구축하려 한다면, 더 큰 모델로 넘어가기 전에 가벼운 모델(MiniLM 유형)로 시작하세요. 컴퓨팅 비용은 빠르게 증가하며, 반드시 인지된 관련성 (relevance)이 향상되는 것도 아닙니다.
영향 및 분석
Book Prize Index가 AI라고 태그가 붙은 대부분의 도구와 차별화되는 점은 텍스트를 생성하지 않는다는 것입니다. 대신 사람이 이미 작성한 기존 텍스트를 큐레이션합니다. Breen은 이 점을 명확히 밝히고 있습니다. 그는 데이터를 수집하고 구조화한 도구와 시맨틱 검색 엔진을 제외하고는 프로젝트에 AI가 전혀 들어있지 않다고 말합니다.
이러한 구분은 동일한 언어 모델 (language models)에 대한 두 가지 매우 다른 용도를 분리하기 때문에 중요합니다. 즉, 새로운 콘텐츠를 생성하는 데 사용하는 것(인터넷에 더 많은 AI 슬롭 (AI slop)을 추가할 위험이 있음)과, 이미 품질 필터를 거친 인간의 콘텐츠(이 경우에는 주요 영어 문학상의 심사위원들)를 정리하고 탐색 가능하게 만드는 데 사용하는 것을 구분하는 것입니다.
💭 핵심: 시맨틱 검색은 사서나 서가 정리원을 대체하는 것이 아니라, 잘 정리된 서가의 큐레이션된 우연성을 수천 권의 타이틀 규모로 복제하는 것이며, 올바른 서가 앞에 물리적으로 서 있을 필요 없이 이를 가능하게 합니다.
Stefan Zweig의 사례는 Breen이 촉진하고자 하는 발견의 유형을 잘 보여줍니다. 제2차 세계대전 이전의 빈(Vienna)에 관한 그의 회고록인 _The World of Yesterday_는 관련 시맨틱 검색 결과 사이에 나타납니다. Breen은 이 책을 1942년 Zweig가 브라질에서 스스로 생을 마감하기 직전에 쓰인, 매우 감동적인 책이라고 설명합니다.
다음 단계
정직한 한계점: 수상 목록에 대한 Wikipedia의 커버리지에 의존하기 때문에, 이 코퍼스 (corpus)는 해당 소스의 편향을 물려받습니다. 즉, 오래되었거나 기록이 적은 상보다는 최근의 영어권 수상 목록에 대한 커버리지가 더 높습니다. 그리고 모든 임베딩 (embeddings) 검색과 마찬가지로, 저자 본인의 표현을 빌리자면 일부 결과는 다소 당혹스러울 수 있습니다. 하지만 그러한 예측 불가능성 또한 실제 서가를 탐색하는 듯한 느낌을 재현하는 요소 중 하나입니다.
📖 Telegram 요약: 요약 보기
직접 시도해 보세요: pip install sentence-transformers를 통해 sentence-transformers를 설치하고, 여러분이 가장 좋아하는 도서 목록으로 두 번째 코드 블록을 실행하여 모델이 주제적 유사성을 얼마나 잘 포착하는지 확인해 보세요.
자주 묻는 질문 (FAQ)
Book Prize Index란 무엇인가요?
역사학자 Benjamin Breen이 만든 것으로, 주요 영어권 문학상의 최종 후보 또는 수상작인 약 6,500권의 영어 비소설 (non-fiction) 도서가 포함된 무료 검색 가능 데이터베이스입니다.
의미론적 검색 (semantic search)은 키워드 검색과 어떻게 다른가요?
키워드 검색은 텍스트의 문자 그대로의 일치를 찾아냅니다. 반면 의미론적 검색은 질의어와 도서를 수치 벡터 (vectors)로 변환하고 의미적 근접성에 따라 결과를 정렬하므로, 동일한 단어를 공유하지 않더라도 관련 있는 도서를 찾아낼 수 있습니다.
Book Prize Index 사용은 무료인가요?
네. Breen은 더 많은 사람들이 좋은 비소설 도서를 발견하고 읽기를 바라는 마음으로 호스팅 비용과 임베딩 (embeddings) API 비용을 사비로 부담하고 있습니다.
구축을 위해 어떤 AI 모델이 사용되었나요?
Breen은 주로 Wikipedia의 수상 목록에서 데이터를 수집하고 구조화하기 위해 Claude와 GPT-5.6을 사용했으며, 의미론적 검색을 가능하게 하기 위해 별도의 임베딩 (embeddings) 모델을 사용했습니다.
프로젝트가 'vibe-code'되었다는 것은 무슨 의미인가요?
이는 Breen이 코드를 직접 작성한 것이 아니라, 각 함수를 직접 프로그래밍하는 대신 원하는 결과를 자연어 (natural language)로 설명함으로써 Claude Code가 코드를 생성하고 반복하도록 지시했음을 의미합니다.
왜 Breen은 이것을 'AI slop'의 반대라고 제시하나요?
인터넷의 새로운 콘텐츠 상당수가 AI에 의해 대량으로 생성되는 시점에, 이 프로젝트는 새로운 콘텐츠를 생성하기 위해 AI를 사용하는 것이 아니라, 문학상 심사위원들에 의해 이미 필터링된 양질의 인간 제작 콘텐츠를 정리하고 발견 가능하게 만들기 위해 AI를 사용하기 때문입니다.
참고 문헌
- Quality non-fiction books are the antithesis of AI slop: Benjamin Breen이 Book Prize Index 프로젝트를 설명한 원문 기사.
- Sentence embedding, Wikipedia: 모델이 텍스트를 벡터 (vectors)로 변환하여 의미론적 유사성 (semantic similarity)을 측정하는 방법에 대한 일반적인 설명.
- Claude Code, Anthropic: 프로젝트 프로그래밍에 사용된 도구의 공식 페이지.
- Library of Congress Classification, Wikipedia: Breen이 자신의 첫 번째 필터링된 큐레이션 경험으로 언급한 도서 분류 체계.
📱 이 콘텐츠가 마음에 드시나요? 기술, AI 및 개발 분야의 가장 중요한 소식을 매일 게시하는 저희 Telegram 채널 @programacion에 참여하세요. 빠른 요약과 매일 새로운 콘텐츠를 제공합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기