전자책은 어떻게 만들어지고, 어떻게 읽히는가?

글 | 한동선

1. .epub 파일 = .zip 파일

네, 그렇습니다. 전자책 파일의 확장자로 알려진 .epub은 사실 여러 파일을 압축해 놓은 .zip 파일과 같습니다! 다만 .epub이라고 이름을 별도로 지정함으로써 사용자가 클릭해서 파일을 열 때 컴퓨터에게 "야, 나 전자책 파일이거든? 전자책 파일을 읽을 수 있는 앱으로 나를 실행해 줘." 하고 알려주는 것이지요.

2. .epub 안에 들어 있는 것들

.epub도 결국 압축 파일이므로, .zip으로 이름만 바꾼 다음에 압축을 그대로 해제하면 여러 파일이 그대로 보입니다. (맥에서는 해당 파일이 있는 폴더에서 터미널을 열고 unzip [전자책 이름].epub -d [저장할 폴더 이름]을 입력하면 해제가 됩니다.) 아무 전자책 파일이나 이 방법을 이용하여 압축을 풀어 보면, 그 안은 다음과 같이 구성되어 있을 겁니다.

a) mimetype

그냥 텍스트 파일인데, 다음과 같이 적혀져 있습니다.

application/epub+zip

"나 .epub 파일 맞아" 확인을 위한 신분증 역할을 합니다. 이 파일은 절대 바꾸면 안 됩니다.

b) META-INF

container.xml
content.opf의 위치를 알려줍니다. 이 "META-INF"라는 폴더 이름과 "container.xml"이라는 파일 이름도 마음대로 바꾸면 안 됩니다. 이게 있어야지 전자책 리더 앱에서 책에 대한 정보를 똑바로 읽어올 수 있습니다.

c) 내용이 담긴 폴더

(자유롭게 구성해도 되지만, 어떻게 구성되어 있는지에 대한 정보를 container.xml에 잘 기록해야 합니다.)

3. 전자책은 어떻게 읽히는가?

지금까지의 내용, 생각보다 단순하지요? 사실 "전자책"이라는 것은 "미니 웹사이트"라고 볼 수 있습니다. 웹사이트를 만들 때 사용되는 기술이 거의 그대로 전자책에 사용됩니다. 전자책이 웹사이트라고 한다면, "전자책 리더 앱(eBook Reader App)"들은 크롬, 사파리, 엣지 등과 같은 브라우저의 역할을 한다고 볼 수 있습니다. 다만, 오프라인 전용인 것이지요. 우리가 "전자책을 다운로드" 받을 때는, 서점의 서버로부터 책을 받아와야 하므로 인터넷이 필요합니다. 하지만 일단 내 기기에 그 파일이 저장되어 있으면, 미리 설치되어 있는 전자책 리더 앱을 이용해 인터넷 연결이 없이도 그 파일의 내용을 해석해서 화면에 보여줄 수 있는 것입니다.

실제로는 이런 과정들은 직접 코드로 만들고 싶은 분이 아니라면, 어도비의 인디자인이나 그 외의 각종 전자책 편집기로 작성만 해서 내보내기를 하면 쉽게 전자책 형식의 파일을 얻을 수 있습니다. 다만, 남들이 안 하는 희한한 작업을 하고 싶거나, 아니면 문제가 생긴 파일의 어디가 문제인지를 두 눈으로 확인하고 싶다면 전자책 파일의 구성에 대한 지식이 있으면 좋겠죠?

지금까지 전자책은 어떻게 만들어지고, 어떻게 읽히나에 대한 설명이었습니다.