본문으로 건너뛰기
DEVKBS
작업 원장
001Icecandy2021.06 – 2021.11비공개

김영사 디지털 교과서

종이 교과서를 EPUB으로 옮기며 배운 웹 표준

기간
2021.06 – 2021.11
분류
전자저작물
역할
퍼블리싱 · 인터랙션 구현
구성
기획 · 디자인 · 퍼블리싱 협업

화면 비공개출판사 저작물이라 지면을 공개할 수 없습니다. 어떤 기준으로 만들었는지는 아래에 정리했습니다.어떤 문제를 어떻게 풀었는지는 아래에 정리해 두었습니다.

01개요

초등학교 영어·수학·과학 교과서를 EPUB 형식의 디지털 교과서로 옮기는 일이었습니다. 종이 지면을 그대로 화면에 옮기는 단순 변환이 아니라, 듣기 자료를 재생하고 문제를 풀어 보고 정답을 확인하는 인터랙션까지 함께 넣어야 했습니다.

이 일을 하기 전까지 나는 마크업을 '화면이 원하는 대로 나오게 하는 수단'으로만 생각했습니다. 그런데 교과서는 달랐습니다. 교육용 저작물은 웹접근성 지침을 따라야 하고, 학교에서 쓰는 뷰어가 한 종류가 아닙니다. 같은 파일이 어떤 뷰어에서는 멀쩡하고 어떤 뷰어에서는 무너집니다.

'내 브라우저에서 잘 보인다'는 말은 아무 근거가 되지 못했습니다. 표준을 지키는 건 심사를 통과하려고 하는 일이 아니었습니다. 내가 손댈 수 없는 환경에서도 콘텐츠가 멀쩡하려면 그 방법밖에 없었습니다.

경력의 시작점이라 화려한 기술은 없습니다. 하지만 이후 어떤 프로젝트에서도 시맨틱 마크업과 대체 텍스트를 나중으로 미루지 않는 습관은 여기서 생겼습니다.

02기술 결정

문제가 무엇이었고, 무엇을 골랐고, 그래서 어떻게 됐는지.

  1. 결정 01

    레이아웃을 좌표가 아니라 흐름으로 짠다

    문제
    교과서 지면을 그대로 옮기려면 절대 위치로 요소를 배치하는 편이 빠릅니다. 그런데 디지털 교과서 뷰어는 기기마다 화면 크기가 다르고, 사용자가 글자 크기를 키울 수도 있습니다. 좌표로 고정한 지면은 그 순간 전부 깨집니다.
    선택
    지면을 그대로 베끼는 대신 콘텐츠의 의미 단위(제목·본문·문제·보기)로 구조를 다시 짜고, 배치는 흐름에 맡겼습니다. 디자인이 정확히 일치하지 않는 부분은 기획·디자인과 합의해 허용 범위를 정했습니다.
    결과
    글자 크기를 키우거나 화면이 좁아져도 내용이 겹치거나 잘리지 않았습니다. 지면과 픽셀 단위로 같지는 않지만, 읽을 수 있는 상태는 어디서나 유지됐습니다.
  2. 결정 02

    대체 텍스트를 '나중에 채울 것'으로 두지 않는다

    문제
    교과서에는 삽화와 도표가 매우 많습니다. 처음에는 이미지를 먼저 넣고 대체 텍스트를 나중에 일괄로 채우려 했는데, 시간이 지나면 그 그림이 무엇을 설명하려던 것이었는지 작업자 본인도 기억하지 못했습니다.
    선택
    이미지를 넣는 그 순간에 대체 텍스트를 함께 쓰는 것을 규칙으로 삼았습니다. 단순 장식은 빈 alt로 명시해 읽히지 않게 하고, 정보를 담은 그림만 설명을 붙였습니다.
    결과
    뒤늦게 몰아서 채우는 작업이 사라졌고, 설명의 질도 훨씬 좋아졌습니다. '장식과 정보를 구분하는 것'이 접근성 작업의 절반이라는 걸 이때 알았습니다.
  3. 결정 03

    뷰어별 차이는 추측하지 말고 목록으로 만든다

    문제
    같은 EPUB이 뷰어에 따라 다르게 렌더링됐습니다. 어떤 CSS가 어디서 무시되는지 감으로 대응하다 보니 같은 문제를 여러 번 다시 만났습니다.
    선택
    지원되지 않는 속성과 대체 방법을 표로 정리해 팀에서 함께 봤습니다. 새로 발견할 때마다 표에 줄을 추가했습니다.
    결과
    같은 문제를 두 번 겪는 일이 줄었습니다. 이후 어떤 프로젝트에서든 환경별 차이를 기록으로 남기는 습관이 생겼습니다.

03주요 기능

  • EPUB 3 기반 교과서 변환

    초등 영어·수학·과학 교과서를 디지털 교과서 규격으로 전환.

  • 인터랙티브 학습 요소

    듣기 자료 재생, 문제 풀이, 정답 확인 등 지면에서 불가능한 동작을 추가.

  • 멀티미디어 삽입

    음성·영상 자료를 본문 흐름 안에 배치해 별도 앱 없이 재생되게 했습니다.

  • 웹접근성 준수

    시맨틱 구조, 대체 텍스트, 키보드 접근을 기준에 맞춰 작성.

  • 뷰어 호환성 확보

    표준을 우선하고, 뷰어별 미지원 속성은 대체 구현으로 처리.

04회고

첫 실무에서 '표준을 지킨다'는 말의 의미가 바뀌었습니다. 그전에는 규칙을 지키는 사람이 되는 문제라고 생각했는데, 실제로는 내가 없는 자리에서도 콘텐츠가 제대로 동작하게 만드는 문제였습니다.

교과서를 만들면서 사용자를 아주 구체적으로 상상하게 된 것도 큰 수확이었습니다. 이 화면을 보는 사람은 초등학생이고, 교실의 오래된 기기에서 열 수도 있고, 화면을 확대해서 볼 수도 있습니다. 그 조건들을 먼저 적어 두고 시작하는 방식은 지금도 그대로 씁니다.

기술적으로 깊이 들어간 프로젝트는 아닙니다. 다만 이후에 만난 모든 화면에서 '이 마크업이 의미를 담고 있는가'를 한 번 더 보게 된 출발점이었습니다.