SCORM/xAPI Reference
SCORM/xAPI/LTI/QTI e러닝 상호운용 표준 레퍼런스
SCORM/xAPI Reference 소개
SCORM/xAPI 레퍼런스는 학습관리시스템(LMS) 개발과 교수 설계에서 사용되는 이러닝 상호운용성 표준의 포괄적인 치트 시트입니다. SCORM 1.2와 SCORM 2004를 나란히 다루며, 콘텐츠 패키지 구조(imsmanifest.xml이 포함된 ZIP), SCO(Shareable Content Object)와 Asset의 구분, window.API(1.2) 또는 window.API_1484_11(2004)을 찾는 API 검색, Initialize/Terminate 세션 수명주기, GetValue/SetValue 데이터 읽기/쓰기, 데이터 저장을 위한 Commit, GetLastError 코드를 이용한 에러 처리를 포함합니다.
CMI 데이터 모델 섹션은 SCORM 1.2(lesson_status, score.raw 0-100, HHHH:MM:SS.SS 형식 session_time의 cmi.core.*)와 SCORM 2004(completion_status와 success_status 분리, score.scaled -1~1, ISO 8601 PT 형식 session_time의 cmi.*)를 모두 문서화합니다. 맞춤 JSON 상태를 저장하는 suspend_data(1.2에서 4096자, 2004에서 64000자), 8-10가지 상호작용 유형의 퀴즈 응답을 기록하는 interactions, 2004에서 다중 목표를 추적하는 objectives를 다룹니다. SCORM 2004 고급 주제로 controlMode와 deliveryControls를 사용한 시퀀싱, 사전/종료 조건 규칙, 내비게이션 요청(continue, previous, choice, exit), 하위 활동 상태를 집계하는 롤업 규칙이 있습니다.
SCORM을 넘어 Actor-Verb-Object 문장 구조의 xAPI(Experience API / Tin Can), 점수/성공/완료/기간이 포함된 Result 객체, ADL 표준 동사 목록, 문장 제출 및 조회를 위한 학습 기록 저장소(LRS) REST API, 강사/팀/활동 계층을 기록하는 Context 객체를 다룹니다. LTI 1.3 항목은 JWT 클레임을 사용한 OIDC 기반 실행 흐름, 이름/역할 프로비저닝(NRPS), 점수 동기화를 위한 과제 및 성적 서비스(AGS)를 문서화합니다. QTI 3.0 항목은 응답 선언과 선다형부터 파일 업로드까지 13가지 상호작용 유형의 평가 문항 XML 구조를 다룹니다.
주요 기능
- API 이름, 상태 값, 점수 범위, 시퀀싱 기능을 비교하는 SCORM 1.2 대 2004 비교표
- imsmanifest.xml 스키마, organizations, resources, SCO/Asset 유형을 포함한 콘텐츠 패키지 구조
- API 수명주기: 검색(window 탐색), Initialize, GetValue/SetValue, Commit, Terminate, 에러 코드
- 두 버전의 전체 CMI 데이터 모델: 수업 상태, 점수, 시간 형식, suspend_data, interactions, objectives
- SCORM 2004 시퀀싱: controlMode, 사전/사후 조건 규칙, 내비게이션 요청, 롤업 집계
- Actor-Verb-Object, Result, Context 및 22개 ADL 표준 동사를 포함한 xAPI 문장 구조
- LTI 1.3 연동: OIDC 실행 흐름, JWT 클레임, NRPS, AGS 점수 전송, Deep Linking
- 응답 선언, 정답, 13가지 상호작용 유형을 포함한 QTI 3.0 평가 문항
자주 묻는 질문
SCORM 1.2와 SCORM 2004의 차이점은 무엇인가요?
SCORM 1.2는 간단한 API(window.API)를 사용하며 6개 수업 상태 값, 0-100 점수, 시퀀싱 미지원입니다. SCORM 2004는 API_1484_11을 사용하고, 완료와 성공 상태를 분리하며, -1~1 정규화 점수를 지원하고, 분기 규칙이 있는 복잡한 시퀀싱과 내비게이션을 추가하며, 다중 목표를 지원하고, suspend_data를 4096자에서 64000자로 확장합니다.
SCO란 무엇이며 Asset과 어떻게 다른가요?
SCO(Shareable Content Object)는 SCORM API를 통해 LMS와 통신하며 Initialize/Terminate를 호출하고 학습 상태를 추적합니다. Asset은 LMS와 통신하지 않는 단순 콘텐츠(이미지, PDF)입니다. imsmanifest.xml에서 SCO는 adlcp:scormtype="sco", Asset은 adlcp:scormtype="asset"을 가집니다. 각 SCO는 하나의 학습 목표를 나타내야 하며, SCO 간 데이터 공유는 불가능합니다.
SCO는 LMS API 객체를 어떻게 찾나요?
현재 window에서 시작하여 window.API(SCORM 1.2) 또는 window.API_1484_11(SCORM 2004)을 확인하고, window.parent를 통해 부모 프레임으로 올라가며 탐색합니다. 부모 체인에서 찾지 못하면 팝업 창의 window.opener를 확인합니다. 이 검색 과정이 성공해야 API 호출을 수행할 수 있습니다.
suspend_data란 무엇이며 어떻게 사용해야 하나요?
suspend_data는 맞춤 학습 상태를 저장하는 자유 형식 문자열 필드입니다. SCORM 1.2에서 최대 4096자, 2004에서 최대 64000자를 저장합니다. 권장 패턴은 JSON.stringify로 상태를 직렬화하여 SetValue로 저장하고, 재개 시 GetValue와 JSON.parse로 복원하는 것입니다. 퀴즈 답변, 현재 페이지, 북마크 등 진행 데이터를 보존할 수 있습니다.
xAPI란 무엇이며 SCORM에 비해 어떤 점이 개선되었나요?
xAPI(Experience API, Tin Can이라고도 함)는 학습 경험을 Actor-Verb-Object 문장으로 학습 기록 저장소(LRS)에 전송합니다. SCORM과 달리 브라우저 외부(모바일 앱, 시뮬레이션, 현실 세계 활동)에서도 작동하며, 오프라인 추적을 지원하고, 시스템 간 데이터 공유가 가능하며, LMS에서 실행되는 콘텐츠에 제한되지 않습니다.
LTI 1.3의 도구 연동 방식은 어떻게 되나요?
LTI 1.3은 인증에 OIDC(OpenID Connect)를 사용합니다. LMS(플랫폼)가 도구에 로그인 요청을 시작하면, 도구가 인증 요청으로 응답합니다. LMS는 사용자 ID, 역할, 컨텍스트가 포함된 서명된 JWT를 반환합니다. 핵심 서비스로 사용자 프로비저닝을 위한 NRPS, 성적 동기화를 위한 AGS(점수와 activityProgress/gradingProgress 전송), 콘텐츠 선택을 위한 Deep Linking이 있습니다.
QTI란 무엇이며 어떤 상호작용 유형을 지원하나요?
QTI(Question and Test Interoperability)는 시스템 간 평가 문항을 교환하기 위한 IMS 표준입니다. QTI 3.0은 13가지 상호작용 유형을 지원합니다. 선다형(choice), 순서 배열(order), 연결(associate), 매트릭스 매칭(match), 빈칸 드래그(gapMatch), 인라인 드롭다운(inlineChoice), 단답형(textEntry), 서술형(extendedText), 텍스트 선택(hottext), 이미지 영역(hotspot), 슬라이더(slider), 그리기(drawing), 파일 업로드(upload)입니다.
SCORM 2004 시퀀싱 규칙은 어떻게 작동하나요?
시퀀싱은 imsmanifest.xml에서 controlMode(choice, flow, forwardOnly), 사전 조건 규칙(예: 목표 달성 시 건너뛰기), 종료 조건 규칙(예: 시도 후 종료), 롤업 규칙(하위 상태를 상위로 집계)으로 정의됩니다. "continue", "previous", "choice" 같은 내비게이션 요청은 adl.nav.request를 통해 설정되며 Terminate 호출 시 실행됩니다.