기술 가이드

iBooks 사전 문제 해결: ePub 언어 코드 수정 방법

5 min read 전자책 업데이트됨 16 Sep 2025
iBooks 사전 문제 해결: ePub 언어 코드 수정 방법
iBooks 사전 문제 해결: ePub 언어 코드 수정 방법

문제 요약

iBooks(특히 iBooks 1.1)는 전자책의 메타데이터에 있는 언어 코드에 따라 내장 사전을 연결합니다. Calibre 등으로 변환한 일부 ePub 파일은 언어 태그가 “UND”(Undefined)로 쓰여 있어 iBooks가 적절한 사전을 찾지 못하고 “Dictionary not available for this language.”(이 언어에 대해 사용할 수 있는 사전이 없습니다)라는 오류를 표시합니다.

원인 핵심: ePub 내부의 metadata에 잘못된 또는 누락된 ISO 언어 코드가 저장됨.

주의: 수정 전 원본 파일을 반드시 백업하세요. 압축/편집 과정에서 파일이 손상될 수 있습니다.

준비물

  • 수정할 ePub 파일의 백업본
  • macOS, Windows 또는 Linux에서 ZIP(또는 7-Zip) 압축/해제 도구
  • 텍스트 편집기(Plain text 편집기 또는 XML 편집기)
  • iTunes 또는 Finder(파일 위치 확인용)

중요: iBooks 사전은 ISO 639-1 두 글자 언어 코드(en, fr, de 등)를 기대합니다. 이 코드를 사용하세요.

전체 절차(개요)

  1. 원본 ePub 백업
  2. ePub 내부의 content.opf 위치 확인
  3. content.opf 추출 및 편집( dc:language 값을 “UND” → “en” 등으로 변경 )
  4. 변경한 파일을 ePub에 반영(업데이트)
  5. iTunes/Finder로 기기에 다시 복사 후 iBooks에서 사전 동작 확인

세부 단계: macOS / Linux(터미널 사용)

  1. 파일 위치 찾기
  • iTunes에서 전자책을 우클릭하고 “Show in Finder”(Finder에서 보기)를 선택합니다. Finder에서 해당 ePub 파일을 확인합니다.
  1. ePub 내부 구조 확인
  • 터미널에서 다음 명령으로 ePub 파일의 목록을 봅니다:
unzip -l "/경로/책이름.epub"
  • 출력에서 content.opf 또는 package.opf 위치(예: OEBPS/content.opf)를 확인합니다.
  1. content.opf만 추출
  • 경로를 확인한 뒤 해당 파일만 추출합니다(예시: 경로가 OEBPS/content.opf일 때):
mkdir -p /tmp/epub-edit
unzip "/경로/책이름.epub" "OEBPS/content.opf" -d /tmp/epub-edit
  • 이렇게 하면 /tmp/epub-edit/OEBPS/content.opf 파일이 생깁니다.
  1. content.opf 편집
  • macOS의 텍스트 편집기를 사용하려면:
open -e /tmp/epub-edit/OEBPS/content.opf
  • 또는 선호하는 명령줄 편집기(nano, vim)로 편집합니다.

  • 파일에서 UND 같은 줄을 찾아서 en 또는 해당 언어 코드로 바꿉니다.

참고: ISO 639-1 두 문자 코드를 사용하세요(예: 영어=en, 한국어=ko, 프랑스어=fr, 독일어=de, 스페인어=es).

  1. 수정된 파일을 ePub에 반영(업데이트)
  • content.opf의 상대 경로를 유지하면서 원본 ePub을 업데이트합니다. 예를 들어:
zip -u "/경로/책이름.epub" -j /tmp/epub-edit/OEBPS/content.opf
  • 또는 원본 디렉터리 구조를 유지해 덮어쓰려면 작업 디렉터리로 이동 후 압축을 다시 만드는 방법이 더 안전합니다:
cd /tmp/epub-edit
zip -X0 "/경로/책이름-fixed.epub" mimetype
zip -Xr9 "/경로/책이름-fixed.epub" * -x mimetype
  • 이렇게 하면 새 복원본(책이름-fixed.epub)이 생성됩니다. 원본을 덮어쓰기 전에 새 파일로 테스트하세요.
  1. iTunes/Finder에 재추가
  • 수정한 ePub을 iTunes 또는 Finder로 드래그하여 라이브러리에 다시 추가한 뒤 기기와 동기화합니다.

Windows(7-Zip 또는 PowerShell) 방법

GUI(7-Zip):

  • 7-Zip으로 ePub을 열면 내부 파일이 보입니다. content.opf를 찾아 “추출”해서 텍스트 편집기로 열고 수정한 다음, 같은 경로에 “업데이트”(Add/Update)하면 됩니다.

PowerShell(명령줄) 예시:

Expand-Archive -LiteralPath "C:\경로\책이름.epub" -DestinationPath "C:\temp\epub-edit"
# 편집: C:\temp\epub-edit\OEBPS\content.opf 파일 수정
Compress-Archive -LiteralPath "C:\temp\epub-edit\*" -DestinationPath "C:\경로\책이름-fixed.epub"

주의: Windows 압축 도구는 ePub의 mimetype 파일 및 압축 설정 때문에 호환성 문제가 생길 수 있습니다. GUI로 편집 후 원본 ePub에 개별 파일만 업데이트하는 방법(7-Zip의 Update 기능)을 권장합니다.

대안: Calibre에서 메타데이터 수정 후 재변환(간단한 사용자용)

  • Calibre에서 책을 선택한 뒤 “Edit metadata”(메타데이터 편집) 기능을 사용하면 언어를 직접 설정할 수 있습니다. 언어를 지정하고 저장한 뒤 ePub으로 다시 변환하거나 “Send to device”로 전송하면 iBooks에서 사전이 작동할 가능성이 높습니다.

이 방법은 GUI 기반이라 터미널 작업이 부담스러운 사용자에게 적합합니다.

확인 방법(테스트 케이스)

  • iBooks에서 해당 전자책을 열고 단어를 길게 누른 후 사전이 표시되는지 확인합니다.
  • 다른 기기(iPhone, iPad)에서 동일 계정으로 동기화한 후에도 사전이 동작하는지 확인합니다.
  • 문제 지속 시: content.opf의 언어 코드가 올바른지 재검토, 또는 다른 파일(패키지 manifest)의 언어 필드를 확인합니다.

역할별 체크리스트

  • 초보 사용자

    • Calibre에서 메타데이터 편집으로 언어 설정 시도
    • 재변환 후 iBooks에서 테스트
    • 실패하면 백업 후 전문가 도움 요청
  • 중급 사용자

    • ePub을 추출해 content.opf 편집
    • 압축 재생성 및 테스트
  • 전문가(파워유저)

    • 여러 파일에 대해 스크립트로 일괄 처리
    • ePub 표준(EPUB 2/3) 규격에 따라 mimetype/컨테이너 정합성 확인

호환성 및 마이그레이션 팁

  • iBooks/iOS 버전: 최신 iBooks(iBooks 이름이 Apple Books로 바뀐 이후 버전 포함)는 여전히 메타데이터의 언어 코드를 참고합니다. OS/앱 업데이트로 동작이 변경될 수 있으니 앱 버전도 확인하세요.
  • Calibre 설정: 변환 시 메타데이터를 검토하고 필요한 경우 언어를 명시적으로 입력하세요.
  • 대량 수정: 많은 전자책에서 같은 문제가 반복되면 스크립트(예: Python의 zipfile + lxml)를 만들어 일괄 처리하는 편이 효율적입니다.

위험 및 완화 방안

  • 위험: ePub을 잘못 압축하면 iBooks가 파일을 읽지 못하거나 표시 오류가 생깁니다.
    • 완화: 항상 원본 백업, 새 파일로 테스트, 압축시 mimetype 파일의 위치·압축 여부 유지
  • 위험: 언어 코드를 잘못 입력하면 다른 언어의 사전이 연결될 수 있음
    • 완화: 올바른 ISO 639-1 코드를 사용하고 테스트

간단 용어집

  • ePub: 전자책 포맷(압축 ZIP 컨테이너 안에 XML/HTML/이미지 포함)
  • content.opf: ePub의 메타데이터와 파일 목록을 담은 XML 패키지 파일
  • dc:language: Dublin Core 메타데이터 항목 중 하나로 언어를 지정함

미니 방법론(한눈에 보는 요약 절차)

  • 백업 → 내부 확인(unzip -l) → content.opf 추출 → 수정 → ePub 업데이트(또는 재생성) → iBooks에 재업로드 → 동작 확인

실행 예시(간단 체크리스트 템플릿)

  • 원본 ePub 백업
  • content.opf 위치 확인
  • 값 확인(UND 인가?)
  • 적절한 언어 코드로 수정
  • ePub에 변경 반영
  • iBooks에서 사전 동작 확인

추가 예시: Mermaid 흐름도

flowchart TD
  A[백업] --> B{content.opf 찾기}
  B -->|있다| C[추출 및 편집]
  B -->|없다| D[epub 전체 추출]
  C --> E[업데이트/재압축]
  D --> E
  E --> F[라이브러리에 재등록]
  F --> G[사전 동작 확인]
  G --> H{성공}
  H -->|Y| I[완료]
  H -->|N| J[원인 재검토]

문제 발생 시 체크포인트(에지 케이스)

  • content.opf가 여러 위치에 중복 존재할 수 있습니다. ePub 2/3 표준에 따라 올바른 패키지 파일을 편집하세요.
  • EPUB의 mimetype이 압축되지 않은 상태로 첫 파일로 존재해야 호환성 문제가 적습니다. 압축 방식이 바뀌면 일부 리더가 읽지 못할 수 있습니다.

요약(결론)

iBooks에서 사전이 작동하지 않는 문제의 대부분은 ePub 메타데이터의 잘못된 언어 코드(예: “UND”) 때문입니다. 해결책은 간단합니다: content.opf에서 값을 올바른 ISO 코드로 수정하고 ePub을 다시 패키징한 뒤 기기에 재전송하면 됩니다. Calibre의 메타데이터 편집 기능을 먼저 시도하면 더 쉬울 수 있습니다.

중요: 항상 원본을 백업하고, 변경 후 여러 기기에서 동작을 확인하세요.

공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

Debian 11에 Podman 설치 및 사용하기
컨테이너

Debian 11에 Podman 설치 및 사용하기

Apt-Pinning 간단 소개 — Debian 패키지 우선순위 설정
시스템 관리

Apt-Pinning 간단 소개 — Debian 패키지 우선순위 설정

OptiScaler로 FSR 4 주입: 설치·설정·문제해결 가이드
그래픽 가이드

OptiScaler로 FSR 4 주입: 설치·설정·문제해결 가이드

Debian Etch에 Dansguardian+Squid(NTLM) 구성
네트워크

Debian Etch에 Dansguardian+Squid(NTLM) 구성

안드로이드 SD카드 설치 오류(Error -18) 완전 해결
안드로이드 오류

안드로이드 SD카드 설치 오류(Error -18) 완전 해결

KNetAttach로 원격 네트워크 폴더 연결하기
네트워킹

KNetAttach로 원격 네트워크 폴더 연결하기