코스 자료를 SCORM 패키지로 전환하기: 실용 파일‑변환 가이드
학습 관리 시스템(LMS)은 e‑learning 콘텐츠를 패키징하고 전송하며 추적하기 위해 SCORM(Sharable Content Object Reference Model) 표준에 의존합니다. 저작 도구가 자동으로 SCORM 번들을 생성하지만, 많은 조직은 수년간 만들어진 PDF, MP4 비디오, PowerPoint 슬라이드, HTML 퀴즈와 같은 다양한 자산 라이브러리를 이미 보유하고 있습니다. 이러한 이질적인 파일들을 하나의 잘 구조화된 SCORM 패키지로 변환하는 일은 시각적 완성도, 메타데이터 및 인터랙션 로직을 보존해야 할 때 특히 어려울 수 있습니다.
이 가이드는 자산 감사에서 최종 zip 파일까지 전체 변환 워크플로우를 단계별로 설명하며, 호환성, 접근성 및 데이터‑프라이버시와 관련된 선택 사항을 강조합니다. 원칙은 전용 저작 플랫폼을 사용하든, convertise.app과 같은 일반‑목적 변환기를 사용해 포맷을 정규화한 뒤 패키징하든 모두 적용됩니다.
1. SCORM 구조 요구사항 이해하기
SCORM은 학습 콘텐츠의 디자인 방식을 규정하지 않으며, LMS가 읽을 폴더 계층 구조와 소수의 XML 매니페스트 파일만 정의합니다. 최소한 SCORM 1.2 또는 2004 패키지는 다음을 포함해야 합니다:
- imsmanifest.xml – 모든 리소스를 나열하고 시퀀싱 규칙을 정의하며 식별자를 파일 경로에 매핑하는 핵심 기술서.
- Resources 폴더 – 매니페스트에 참조된 모든 미디어(이미지, 오디오, 비디오)와 문서 파일.
- HTML 진입점 – LMS가 iframe 안에서 로드하는 시작 페이지(대개
index.html).
추가 자산—PDF 핸드아웃, SCORM‑호환 퀴즈, JavaScript 라이브러리 등—은 반드시 매니페스트에 적절한 <resource> 태그로 참조되어야 합니다. 누락되거나 이름이 잘못된 항목은 LMS가 패키지를 거부하거나, 더 나빠지면 깨진 학습 경험을 제공하게 합니다.
2. 기존 자산 감사하기
변환을 시작하기 전에 코스에 포함될 모든 파일을 목록화합니다. 다음 열을 포함한 스프레드시트를 만드세요:
| Asset | 현재 포맷 | 사용 목적 | 필요한 변환 | 메타데이터 유지? |
|---|---|---|---|---|
| 강의 비디오 | MOV | 인라인 비디오 | MP4(H.264)로 변환 | 예 (생성일) |
| 슬라이드 자료 | PPTX | HTML 보기 | PDF → HTML로 내보내기 | 아니오 |
| 퀴즈 은행 | XLM | SCORM‑퀴즈 | QTI XML로 내보내기 | 예 |
| 핸드아웃 | DOC | 다운로드 링크 | PDF/A로 변환 | 예 |
이 표는 두 가지 핵심 질문을 제기합니다:
- LMS가 기본적으로 지원하는 포맷은 무엇인가? 최신 LMS는 영상에 MP4, 문서에 PDF, 인터랙티브 콘텐츠에 HTML5를 주로 받아들입니다.
- 어떤 메타데이터가 변환 후에도 살아있어야 하는가? 컴플라이언스와 분석을 위해 저자, 생성일, 버전 번호 등을 보존해야 할 수 있습니다.
3. 미디어 파일 정규화
3.1 비디오 변환
비디오 파일은 종종 MOV, AVI 혹은 카메라 전용 포맷으로 제공됩니다. SCORM‑호환 비디오는 H.264 비디오와 AAC 오디오를 사용한 MP4이어야 하며, 품질과 파일 크기의 균형을 맞춘 비트레이트(일반적으로 720p는 2–4 Mbps, 1080p는 5–6 Mbps)를 사용합니다. 변환 단계는 다음과 같습니다:
- 소스 메타데이터 추출(
ffprobe등으로 생성일, 촬영자, GPS 정보를 출력). 이를 사이드‑카 JSON 파일에 저장해 나중에 재삽입합니다. - 두 번 패스 인코딩으로 목표 비트레이트를 달성하면서 인터랙티브 타임스탬프와 일치하는 키프레임 간격을 유지합니다.
- 불필요한 검은 띠나 회전 정보가 있으면 무손실 크롭/회전을 적용합니다.
- 보존한 메타데이터 재삽입(
ffmpeg -metadata등)하여 LMS가 자산 라이브러리에서 메타데이터를 표시하도록 합니다.
프라이버시를 고려해야 한다면 최종 zip 전에 위치 데이터나 얼굴 인식 태그 등은 반드시 제거하십시오.
3.2 이미지 및 그래픽 변환
래스터 이미지는 아이콘·UI 스크린샷 등은 무손실 PNG, 사진은 JPEG를 사용합니다. SVG 다이어그램은 LMS가 직접 SVG를 지원하지 않을 경우 300 dpi PNG로 내보냅니다. 색상 프로파일(sRGB)을 유지해 다양한 디바이스에서 색상 변형을 방지합니다. 일반적인 파이프라인:
- 소스 색상 공간 검증(
exiftool사용). - 변환:
imagemagick convert source.svg -density 300 -colorspace sRGB output.png. - 불필요한 EXIF 필드 제거해 파일 용량을 경량화하면서 저작권 정보는 유지합니다.
4. 문서를 웹‑준비 HTML로 변환하기
대부분의 SCORM 시작 페이지는 HTML5를 사용합니다. PDF를 직접 삽입하기보다 웹 페이지 시리즈로 변환하는 것이 좋습니다.
- PowerPoint 또는 Word를 PDF로 내보내기. 벡터 객체를 그대로 유지하는 도구(예: Microsoft Office “Save as PDF”)를 사용합니다.
- OCR(선택 사항). PDF가 스캔본일 경우 OCR을 적용해 텍스트를 검색 가능하게 하면 접근성이 향상됩니다.
- PDF를 HTML로 변환할 때는 헤딩, 표, 리스트 구조를 보존하는 변환기를 사용합니다. 인라인 스타일이 난잡한 DOM을 생성하지 않는 도구가 SCORM 추적 JavaScript와 통합하기 쉽습니다.
- ARIA 랜드마크 삽입을 수동으로 혹은 스크립트를 이용해 헤딩 계층을
<section>태그에 매핑합니다. - HTML 압축은 웹 서버 수준에서 gzip을 적용하지만, SCORM zip 자체는 압축되지 않은 플랫 디렉터리 형태여야 합니다.
이 과정에서 원본 문서의 메타데이터(저자, 개정) 를 유지하려면 각 페이지 <head>에 <meta> 태그를 추가합니다.
5. 인터랙티브 평가 만들기
SCORM은 HTML/JavaScript 기반 퀴즈를 호스트할 수 있지만, 많은 조직이 이미 QTI, GIFT 혹은 독점 Excel 시트 형태의 문제은행을 보유하고 있습니다. 변환 워크플로우는 다음과 같습니다:
- 소스 설문지를 CSV 또는 XML 같은 중립 포맷으로 내보내기.
- 각 열을 QTI 요소 계층구조(아이템, 응답, 결과)와 매핑. 간단한 Python 스크립트로 자동화 가능.
- QTI XML 파일 생성 후
questions폴더에 배치. - SCORM API에 결과를 보고하는 작은 JavaScript 래퍼를 추가합니다(
SetValue("cmi.score.raw", score)사용).
내부 개발 인력이 부족하면 QTI를 받아 JavaScript 쉼을 출력하는 오픈소스 저작 엔진 ADL X‑API 를 활용해도 됩니다.
6. 매니페스트 작성하기 (imsmanifest.xml)
매니페스트는 SCORM 패키지의 심장부입니다. 단일 레슨 모듈에 대한 최소하면서도 견고한 예시는 다음과 같습니다:
<?xml version="1.0" encoding="UTF-8"?>
<manifest identifier="com.example.course1" version="1.2"
xmlns="http://www.imsproject.org/xsd/imscp_rootv1p1p2"
xmlns:adlcp="http://www.adlnet.org/xsd/adlcp_rootv1p2"
xmlns:imsmd="http://www.imsglobal.org/xsd/imsmd_rootv1p2p1">
<metadata>
<schema>ADL SCORM</schema>
<schemaversion>1.2</schemaversion>
</metadata>
<organizations default="ORG-1">
<organization identifier="ORG-1" structure="hierarchical">
<title>Course Title – Module 1</title>
<item identifier="ITEM-1" identifierref="RES-INDEX">
<title>Lesson Overview</title>
</item>
</organization>
</organizations>
<resources>
<resource identifier="RES-INDEX" type="webcontent" adlcp:scormtype="sco" href="index.html">
<file href="index.html"/>
<file href="assets/video.mp4"/>
<file href="assets/handout.pdf"/>
<file href="questions/q1.xml"/>
</resource>
</resources>
</manifest>
핵심 포인트:
- **
adlcp:scormtype="sco"**는 LMS와 통신하고 보고할 수 있는 Sharable Content Object를 지정합니다. - 매니페스트에 명시된
<file>요소는 실제 물리 파일과 1:1 매핑되어야 합니다. 누락된 파일은 실행 시 “resource not found” 오류를 일으킵니다. - 인간이 읽기 쉬운 식별자(
RES-INDEX,ITEM-1)를 사용하면 디버깅이 간편합니다.
여러 레슨이 있을 경우 <item> 블록을 복제하고 다른 리소스를 참조하도록 하면 됩니다.
7. Zip 아카이브 조립하기
모든 자산이 준비되고 매니페스트가 검증된 후, SCORM이 요구하는 정확한 폴더 구조로 zip 파일을 만듭니다:
my_course.zip
├─ imsmanifest.xml
├─ index.html
├─ assets/
│ ├─ video.mp4
│ ├─ handout.pdf
│ └─ diagram.png
└─ questions/
└─ q1.xml
중요: zip 내부에 최상위 디렉터리를 포함하지 마세요. LMS는 매니페스트가 루트 레벨에 위치하기를 기대합니다. 파일 타임스탬프를 보존하는 CLI 도구(zip -X -r my_course.zip .)를 사용하고, 원본 자산의 원래 타임스탬프도 유지하세요. 일부 LMS는 파일의 lastModified 속성을 학습자에게 표시합니다.
8. 패키지 검증하기
업로드하기 전에 ADL의 SCORM Test Suite 혹은 오픈소스 Rustic SCORM Cloud와 같은 SCORM 검증기를 통해 패키지를 검사합니다. 검증기가 확인하는 내용:
- 매니페스트 구문 및 필수 속성.
- 모든 참조 파일 존재 여부.
- 선택된 SCORM 버전(1.2 vs 2004) 준수 여부.
- 런치 페이지 내 올바른 API 호출(
Initialize(),Terminate()등).
검증 결과 메타데이터 누락이 발견되면 변환 단계로 돌아가 해당 태그를 재삽입합니다.
9. 워크플로우 자동화
수십 개의 코스를 변환해야 하는 조직이라면 수동 작업이 병목이 됩니다. Python이나 Bash 같은 스크립트 언어로 다음 단계들을 오케스트레이션하는 간단한 자동화 파이프라인을 만들 수 있습니다:
- 탐색 – 소스 디렉터리에서 새로운 자산을 스캔.
- 변환 –
ffmpeg,imagemagick, 그리고 PDF‑to‑HTML 서비스(예: convertise.app API)를 호출해 표준 출력물 생성. - 메타데이터 수집 –
exiftool로 저자·날짜를 추출하고metadata.json에 기록, 이후 매니페스트 생성에 활용. - 매니페스트 생성 – Jinja2 템플릿에 파일 목록과 메타데이터를 채워 넣음.
- 패키징 – 폴더를 zip, SCORM 검증기 실행, 검증 통과 시 출력 버킷으로 이동.
각 단계의 로그를 보관함으로써 감사 추적을 확보할 수 있습니다. 이는 규제 산업에서 흔히 요구되는 사항입니다.
10. 프라이버시 및 보안 고려사항
변환이 로컬이나 프라이빗 클라우드에서 이뤄지더라도 다음을 유념하세요:
- 이미지·비디오에서 GPS 제거:
ffmpeg -metadata location=사용. - PDF에서 숨겨진 텍스트 레이어(검토자 코멘트 등) 삭제.
- 최종 zip 암호화는 LMS가 암호화된 SCORM 업로드를 지원할 때만 적용; 그렇지 않다면 보안 저장소에 보관하고 IAM 정책으로 접근을 제어.
- 감사 로그 – 누가 변환을 시작했는지, 어떤 원본 파일을 사용했는지 기록. GDPR·HIPAA 등 개인정보 보호 규정 아래 학습 데이터에 개인 식별자가 포함된 경우 대응이 용이합니다.
11. 흔히 발생하는 문제와 해결법
| 증상 | 가능한 원인 | 해결책 |
|---|---|---|
| LMS가 “Manifest not found” 오류로 패키지를 거부 | zip에 불필요한 최상위 폴더가 포함 | 콘텐츠를 루트 레벨에 바로 zip |
| 비디오 재생은 되지만 오디오가 없음 | 지원되지 않는 오디오 코덱(예: PCM) | 오디오를 AAC 128 kbps 로 재인코딩 |
| 퀴즈 점수가 보고되지 않음 | JavaScript가 Terminate 전에 SetValue 호출을 누락 | 페이지 언로드 전 SCORM API에 데이터 쓰기 완료 확인 |
| 핸드아웃 PDF가 LMS 뷰어에서 빈 화면 | PDF가 최신 압축 방식 사용 | PDF/A‑1b 로 변환해 호환성 확보 |
초기에 이러한 문제를 해결하면 테스트 사이클을 크게 단축할 수 있습니다.
12. 실제 사례: 레거시 교육 자료를 SCORM으로 전환하기
시나리오: 한 제조 기업이 PowerPoint(PPTX), WMV 비디오, PDF 핸드아웃으로 구성된 레거시 교육 라이브러리를 보유하고 있습니다. 목표는 SCORM 2004만 지원하는 LMS에 콘텐츠를 제공하는 것입니다.
진행 단계:
- 자산 감사를 통해 PPTX 45개, WMV 비디오 30개, PDF 60개를 식별.
- 비디오 변환 배치 스크립트:
ffmpeg -i "$in" -c:v libx264 -crf 22 -c:a aac -b:a 128k "${in%.*}.mp4". - 슬라이드는 PowerPoint CLI로 PDF 내보낸 뒤
pandoc --standalone을 이용해 HTML로 변환, 표와 리스트 구조 유지. - 메타데이터는
exiftool로 수집해 HTML<head>에<meta>태그로 삽입. - 퀴즈는 기존 CSV를 Python 스크립트로 QTI XML로 변환.
- 매니페스트는 CSV 기반 Jinja2 템플릿을 사용해 자동으로 식별자를 할당하고 생성.
- 검증 단계에서 SCORM Cloud가 이미지 참조 2건 누락을 발견, 해당 파일을 zip에 추가.
- 배포 – 최종 1.3 GB zip(압축) 파일을 LMS에 업로드했으며, 벤더의 컴플라이언스 테스트를 통과.
이 프로젝트는 수작업 저작 시간을 70 % 절감했고, 모든 모듈에서 일관된 학습 경험을 제공했습니다.
13. 베스트 프랙티스 요약
- 먼저 감사 – 명확한 스프레드시트가 누락을 방지합니다.
- 미디어를 광범위하게 지원되는 포맷(MP4, JPEG/PNG, PDF/A)으로 정규화.
- 필수 메타데이터는 추출 후 재삽입하여 보존.
- 깨끗하고 검증된 매니페스트를 생성; 코드를 작성하듯 lint를 적용하세요.
- 추가 디렉터리 없이 패키징하고 원본 타임스탬프 유지.
- 조기에 SCORM 테스트 스위트로 검증해 구조적 오류를 조기에 잡아냅니다.
- 볼륨이 충분히 크다면 파이프라인 자동화를 구현하고 로그를 남겨 감사 가능하도록 함.
- 변환 과정에서 프라이버시 민감 데이터(이미지·비디오 메타데이터 등)를 반드시 스크럽.
이 단계들을 따르면 이질적인 학습 자산 컬렉션을 표준을 준수하고, 품질·접근성·프라이버시를 모두 만족하는 단일 SCORM 패키지로 변환할 수 있습니다.
여기에 소개된 기술은 플랫폼에 구애받지 않으며, convertise.app과 같은 클라우드 기반 변환기를 활용해 빠르고 프라이버시‑중심적인 포맷 정규화 후 SCORM zip을 조립할 수 있습니다.