맞는 신원, 중복된 선반
정본 주소 신원은 맞아. 정리된 주소가 같은 두 행은 같은 기사고, 유일성 제약이 그걸 강제하고, 아무것도 두 번 저장 안 돼. 그런데도 선반은 한 사건을 일곱 번 보여줄 수 있어.
측정값. 하루치 행의 대략 팔 퍼센트가 이미 있는 사건의 반복이었고, 최악은 서로 다른 포장지 주소 일곱 개로 일곱 번 도착한 사건 하나였어. 그 주소 하나하나가 진짜로 구별됐고. 모든 행이 진짜 출처를 통한 진짜 배달이었고. 신원은 안 깨졌어. 그냥 독자가 묻는 질문에 답을 안 할 뿐이지. 독자가 묻는 건 "같은 주소야?"가 아니라 "같은 소식이야?"거든.
서로 다른 관계 둘, 헷갈리는 단어 하나
따로 이름 붙이는 게 도움돼. 신원은 정확하고, 싸고, 레코드의 속성이야. 같은 정본 주소, 같은 행. 같음은 흐릿하고, 판단이 들어가고, 세상의 속성이고. 한 사건을 서술하는 레코드 둘. 신원은 수집에 속해. 같은 배달을 두 번 저장하는 걸 막는 자리니까. 같음은 렌더링에 속하고. 사람이 뭘 봐야 할지 정하는 자리니까.
수집 시점에 같음을 접는 게 솔깃한 지름길이고 못 되찾을 걸 파괴해. 출처 추적이 사라져. 어느 출처가 그 사건을 실었는지 더는 알 수 없고, 그건 그날 소식이 어떻게 퍼졌는지에 대한 진짜 정보야. 결정이 되돌릴 수 없게 되고. 그리고 파괴적으로 적용된 흐릿한 규칙은 결국 제목이 비슷한 진짜로 다른 기사 둘을 합쳐버릴 거야. 복구할 게 아무것도 안 남은 채로.
제일 쓸모 있는 사본을, 첫 사본 자리에
렌더링 시점에 접을 땐 어느 사본이 살아남을지 정해야 하고, 답은 "첫 번째"가 아냐. 사본들은 품질이 달라. 하나는 이미 전처리됐을 수 있고, 하나는 그림을 달고 있을 수 있고, 하나는 포장지 말고 발행사를 직접 가리킬 수 있어. 순위를 매겨서 제일 나은 걸 남겨.
근데 첫 번째가 있던 자리에 남겨. 시간순 선반에선 위치가 의미를 지고, 사본을 자기 나중 자리로 올리면 중복 제거의 부작용으로 선반 순서가 바뀌어. 장치 하나가 조용히 두 일을 하는 거고, 그게 선반이 설명 불가능해지는 경로야.
묶는 키는 영리하지 말고 구두점만 지워
같음을 정하는 키는 되는 것 중 제일 심심한 거여야 해. 구두점이랑 대소문자를 평평하게 민 정규화된 제목. 유사도 점수가 솔깃한데 여기선 나쁜 거래야. 튜닝할 문턱이 생기고, 무관한 글을 합칠 수 있고, 렌더링마다 진짜 시간을 잡아먹어. 뭉툭한 키는 덜 합치는데, 그게 안전한 방향이야. 새어나간 중복은 좀 안 깔끔한 선반이고, 잘못된 합침은 독자가 존재조차 모를 기사를 숨기니까.