당신의 ePub은 정상입니다
요약
epubcheck를 통과한 정상적인 EPUB 파일이 Kobo 등 특정 기기에서 '손상됨' 오류를 일으키는 원인을 분석합니다. 이는 표준을 준수하는 최신 CSS 코드가 Adobe의 구형 렌더링 엔진인 RMSDK와 호환되지 않아 발생하는 문제입니다.
핵심 포인트
- epubcheck 통과가 모든 렌더러에서의 완벽한 호환성을 보장하지 않음
- Kobo는 Adobe의 구형 RMSDK 엔진을 사용하여 최신 CSS 지원이 제한적임
- CSS level 4의 min() 함수 사용이 특정 엔진에서 로딩 실패를 유발함
- 호환성 검증을 위해 Adobe Digital Editions를 통한 추가 테스트가 필요함
- 검증을 통과한
DRM 없는 EPUB도 Kobo에서는 “corrupted”로 처리될 수 있으며, 문제는 파일 형식 오류가 아니라 렌더링 엔진 호환성에서 발생함
epubcheck는 EPUB 구조와 규칙 준수 여부를 확인하는 사실상 표준 검증 도구지만, 특정 렌더러의 오래된 CSS 파서 문제까지 잡아내지는 못함 - Kobo는 Adobe의 독점 전자책 렌더링 엔진인
RMSDK를 사용하며, 이 엔진은 EPUB2 기반으로 만들어진 뒤 EPUB3용으로 가볍게 갱신됐지만 현대화되지 않았음 - 문제의 원인은
max-width: min(150px, 30vw);
한 줄이었고, 이 유효한 CSS level 4 코드는 RMSDK에서 지원되지 않아 Adobe Digital Editions와 Kobo에서 책 로딩 실패를 일으킴
- Kobo 호환성을 확인하려면 epubcheck만으로는 부족하며,
Adobe Digital Editions에서 실제로 열어보는 추가 검증이 필요함
epubcheck를 통과한 EPUB에서 시작된 문제
- Adobe 도구는 Creative Suite가 업계 표준이거나 대안이 부족해 사용되는 경우가 많으며, 이 글의 문제의식은 Adobe 소프트웨어에 대한 불만에서 출발함
- 새 책은 독자에게 직접 제공되는
**DRM 없는 **EPUB
파일로 배포됐고, 배포 전 여러 과정을 거쳐 epubcheck
검사를 통과함
epubcheck
는 잘 구성된 전자책을 확인하는 사실상 표준 도구이며, manifest
가 책 안의 조각과 이미지를 빠짐없이 반영해야 통과함
- HTML 요소 순서가 맞지 않거나 International Digital Publishing Forum의 규칙에서 조금만 벗어나도 검증에 실패함
epubcheck
를 100% 통과시키는 일은 초보자에게 쉽지 않지만, 출판 작업자에게는 타입 린터나 형식적 테스트 스위트에 가까운 역할을 함
- 원래 기대는
epubcheck
를 통과한 책이 EPUB 호환 리더나 앱 어디서나 작동하는 것임
Kobo에서만 “corrupted”가 발생함
- 새 책은
epubcheck
ruleset 3.3을 통과했지만, 한 독자에게서 “corrupted”라는 메시지가 발생함
- 하위 호환성 가능성을 확인하기 위해 EPUB2 버전도 제공했지만, 그 파일도 규칙을 완전히 준수했음에도 같은 문제가 발생함
- 해당 독자는 여러 세대의
Kobo 기기에서 책이 열리지 않는다고 전함 - 같은 EPUB은 Amazon Kindle, Apple Books, Thorium 등 다른 환경에서는 문제없이 작동함
- 조사 결과 Kobo는 Adobe의 독점 전자책 렌더링 엔진인
RMSDK를 사용함
RMSDK와 Adobe Digital Editions로 좁혀진 원인
- RMSDK는
Adobe Digital Editions의 핵심 엔진이며, 여러 Kobo 기기와 구형 Sony·Nook 기기에서도 쓰임 - 이 엔진은 2010년 무렵 EPUB2를 중심으로 만들어졌고, EPUB3용으로 가볍게 갱신됐지만 현대화되지는 않았음
- RMSDK 사용 사실은
epubcheck
와 Kobo 결과가 엇갈리는 문제를 곧바로 해결하지는 못했지만, 디버깅 방향을 제공함
- Adobe Digital Editions에 책을 넣자 예상대로 로딩에 실패했으며, 오류 메시지도 나타나지 않음
- 다시 불러오려 하면 이미 추가한 책이라 가져올 수 없다는 메시지가 나왔지만, 화면은 흰색으로 남아 있었음
- 이후 여러 변형 파일을 만들며 테스트했고, 모든 변형은 계속
epubcheck
를 통과함
- 폴더 구조 재배치, 메타데이터 제거, 언어 속성 제거, 새 UUID 생성, 디렉터리 평탄화, 확장자 변경, ZIP 재생성,
manifest
변경을 시도함
- 이 모든 시도에도 Adobe Digital Editions 로딩 실패는 반복됨
실제 원인: 유효한 CSS 한 줄
- 스타일시트를 비활성화하자 책이 갑자기 로딩되면서, 문제 범위가
스타일시트로 좁혀짐 - 스타일시트 일부만 적용한 여러 변형을 더 만든 끝에 문제를 일으키는 한 줄이 확인됨
.copyright img {
max-width: min(150px, 30vw);
}
- 해당 코드는 완전히 유효한
CSS level 4 코드지만, RMSDK는 이를 지원하지 못함 - 코드를 더 오래된 방식인
max-width: 150px;
로 바꾸자 Adobe Digital Editions에서 책이 정상적으로 열림
- RMSDK의 CSS 파서는 대략 2013년 상태에 머물러 있으며, flexbox, grid, 수학 함수, 사용자 지정 속성을 지원하지 않음
- 인식하지 못하는 CSS를 만나면 폴백이나 명확한 오류 대신 조용히 충돌함
epubcheck
는 기본적인 CSS 검사를 수행하지만, 근본적으로 망가진 특정 렌더러에 맞춰 CSS를 검증할 수는 없음
Kobo 호환성 검증의 교훈
- 2026년에도 Kobo가 책 렌더링의 기반으로 RMSDK를 사용하면서, 유효한 CSS 한 줄이 유효한 EPUB 전체를 “corrupted file”로 만들 수 있음
- 이 경우 Kobo는 명확한 오류 메시지나 폴백 없이 책 전체를 열지 못함
- 문제를 피하기 위해 새 버전이 배포됐고, 독자들이 같은 오류를 다시 겪지 않도록 조치됨
- 이상적인 환경이라면 RMSDK가 CSS 구식 상태에서 벗어나거나 최소한 오류 처리를 제공해야 하지만, 현재 문제는 그대로 남아 있음
- Kobo 호환성을 확실히 하려면
epubcheck
만으로는 부족하며, Adobe Digital Editions에서 실제 로딩 여부를 확인해야 함
- EPUB은 전자책을 위한 훌륭한 개방형 표준이지만, 많은 구현은 접근 제한을 우선하는 구조 속에서 근본적인 결함을 드러냄
AI 자동 생성 콘텐츠
본 콘텐츠는 GeekNews의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기