1. 학습데이터 API 표준 분석
가) 1EdTech, Caliper Analytics
Caliper Analytics는 1EdTech(구 IMS Global Learning Consortium)가 개발한 학습데이터 표준으로, 학습 활동 데이터를 실시간으로 수집, 공유, 분석하여 학습 환경의 상호운용성과 데이터 분석을 지원하며, 학습 이벤트를 정의하고 이를 구조화된 방식으로 표현하여 학습 활동과 결과를 효과적으로 추적할 수 있도록 설계된 도구
특히 Caliper Analytics 표준은 학습데이터가 발생하는 시점을 ‘이벤트’라는 맥락을 기준으로 수집하도록 권고하고 있어서 학습 활동의 맥락을 분석하는 학습 분석용 데이터세트를 구성하기에 적합한 표준임
Caliper Analytics 표준에 정의된 이벤트 형식의 구문 규칙의 특징은 사람과 기계가 같이 이해할 수 있도록 술어(action)를 통해 주어(actor)와 객체(object)를 연결하는 트리플 바인딩 규칙을 따르고 있음
또한 이벤트가 발생한 시점(eventTime)을 항상 같이 기록하게 되어 있으므로 이벤트에 대한 추적과 이해에 도움이 됨
예를 들어, “누가(actor) 언제(eventTime) 무엇을(object) 했는지(action)”를 JSON-LD 형식으로 기록할 수 있기 때문에 기계적인 해석과 동시에 사람도 쉽게 이벤트의 내용을 파악할 수 있음
아래 그림에 점선으로 표시된 부분은 이벤트를 보다 정밀하게 기록할 수 있도록 이벤트를 발생시킨 사람의 소속, 이벤트가 발생한 구체적인 학습 환경이나 도구, 이벤트를 발생시킨 목적 등 맥락을 상세하게 기록할 수 있는 속성들도 정의하고 있음
[그림 Ⅴ-1] Caliper Analytics에 정의된 학습 이벤트 정의 규칙
(출처 : https://www.imsglobal.org/spec/caliper/v1p2)
Caliper Analytics에는 다양한 행동 모델링을 한 이벤트 형식이 있다고 설명했는데, 그러한 이벤트들은 이벤트 구문 규칙에 있는 유형(type) 속성에 표시하게 되어 있음
예를 들어, 시험이 시작되고 끝난 이벤트는 ‘(type)’ 속성에 ‘Assessment’ 값을 기록하고, 멀티미디어 자원을 활용하면서 발생하는 이벤트는 ‘Media’ 이벤트를 기록
Caliper Analytics 표준 버전 1.2에 정의된 스물한 가지 이벤트 유형은 다음과 같음
| AnnotationEvent(주석 이벤트) | 디지털 자원에 기록되는 주석을 모델링 |
| AssessmentEvent(평가 이벤트) | 온라인 시험 또는 퀴즈와 같은 평가 도구와 학습자의 상호작용을 모델링 |
| AssessmentItemEvent(평가문항 이벤트) | 평가 이벤트의 하위 이벤트로써 평가문항과 학습자의 상호작용을 모델링 |
| AssignableEvent(과제 이벤트) | 학습자에게 과제 형식으로 할당된 디지털 콘텐츠와 관련된 활동을 모델링이며, 완료를 목표로 수행되는 과정을 설명 |
| FeedbackEvent(피드백 이벤트) | Caliper Analytics 표준에 정의된 하나 또는 다른 개체(Entity)에 대한 비공식적인 피드백을 제공하는 과정을 모델링 |
| ForumEvent(포럼 이벤트) | 학습자와 온라인 포럼 커뮤니티에 참여하는 다른 사람들 간의 상호작용을 모델링. 포럼은 일반적으로 멤버가 구독하고 메시지를 게시하고 스레드 토론이 허용되는 경우 다른 메시지에 답장할 수 있는 하나 이상의 스레드 또는 주제를 포함 |
| GradeEvent(성적처리 이벤트) | 에이전트(일반적으로 Person 또는 SoftwareApplicationGradeEvent)가 수행하는 채점 또는 등급 부여 행위를 모델링 |
| MediaEvent(미디어 이벤트) | 학습자와 오디오, 이미지, 비디오와 같은 디지털 콘텐츠 간의 상호작용을 모델링 |
| MessageEvent(메시지 이벤트) | 메시지를 게시 하거나 게시물을 읽음 또는 읽지 않음으로 표시하는 사람의 행동을 모델링 |
| NavigationEvent(탐색 이벤트) | 학습 환경에서 제공하는 디지털 자원을 탐색하는 과정을 모델링 |
| QuestionnaireEvent(설문 이벤트) | 설문지를 시작하고 제출하는 응답자 또는 평가자와 관련된 활동을 모델링 |
| QuestionnaireItemEvent(설문항목 이벤트) | 설문지 이벤트의 하위 이벤트로써 설문 문항을 시작, 완료 또는 건너뛰는 응답자 또는 평가자와 관련된 활동을 모델링 |
| ResourceManagementEvent(자원관리 이벤트) | 학습자원을 생성, 수정, 삭제 등 관리하는 활동을 모델링 |
| SearchEvent(검색 이벤트) | 일반적으로 디지털 자원(DigitalResource)또는 소프트웨어(SoftwareApplication)에서 검색어를 입력하여 검색하는 사용자의 행동을 모델링. 검색 결과는 ‘SearchResponse’ 객체를 통해 기록 |
| SessionEvent(세션 이벤트) | 사용자가 학습환경에 로그인 또는 로그아웃하거나 타임아웃되는 상황을 기록하는 이벤트 |
| SurveyEvent(조사 이벤트) | 조사(Survey)에 참여하기 위한 호출과 관련된 활동을 모델링 |
| SurveyInvitationEvent(조사 초대 이벤트) | 조사(Survey)에 초대하기 위한 발송과 관련된 활동을 모델링 |
| ThreadEvent(스레드 이벤트) | 사람이 포럼의 스레드나 주제에 반응하는 상호작용 행동을 모델링 |
| ToolLaunchEvent(도구 시작 이벤트) | 주로 학습 플랫폼에서 발생하는 이벤트로써 행위자가 학습도구를 호출해서 시작하는 상호작용 행동을 모델링 |
| ToolUseEvent(도구 사용 이벤트) | 학습도구를 사용한 방식을 기록하는 이벤트로써 주로 학습도구를 제공하는 서비스에서 정의한 행동을 기록하는데 쓰이며, 총 사용 시간, 진행 상황 등에 대한 정보를 학습 플랫폼으로 돌려주는 이벤트 |
| ViewEvent(읽기 이벤트) | 단순한 검색이나 탐색과는 대조적으로 디지털 자원을 심층적으로 읽거나 조사하는 행동을 강조하기 위해서 사용하는 이벤트 |
Caliper Analytics 표준에는 이벤트 유형과 구문 규칙 외에도 학습 활동과 관련된 구체적인 개체(entity)의 유형도 정의하고 있는데, 구문 규칙상 주어와 목적어, 부가적인 맥락을 설명하는데 사용되는 정보들이 각각의 개체로 표현됨
사람, 그룹, 조직, 디지털 콘텐츠, 교육과정/코스, 소프트웨어 응용프로그램, Caliper 이벤트의 “내용(stuff)”을 구성하는 기타 개체를 구체적으로 설명하기 위해 아래 그림에서 보는 바와 같이 개체와 개체의 하위 유형들을 정의 (세부적인 개체 설명은 분량이 많으므로 Caliper Analytic 1.2 표준 문서 참조)
[그림 Ⅴ-2] Caliper Analytics에 정의된 개체 유형
(출처 : https://www.imsglobal.org/spec/caliper/v1p2)
가) 1EdTech, Caliper Analytics
xAPI는 ADL(Advanced Distributed Learning Initiative)에서 개발한 학습데이터 표준으로, 학습 환경에서 발생하는 다양한 학습 활동 데이터를 수집하고 공유하며, 분석하기 위해 설계된 표준임. 학습 이벤트를 세밀하게 기록하여 학습자 중심의 학습데이터를 효과적으로 활용할 수 있도록 지원하는 도구로 활용함
특히 xAPI는 학습자가 어떤 환경에서 어떤 학습 활동을 수행했는지를 상세히 기록하며, 다양한 학습 활동 데이터를 시간, 장소, 맥락과 함께 체계적으로 저장할 수 있으며, SCORM(Sharable Content Object Reference Model)에서 제한된 데이터 수집 범위를 확장하여 다양한 학습 활동을 추적할 수 있음
xAPI의 주요 특징
학습 활동 데이터를 JSON 형식으로 실시간으로 기록하며, API 기반으로 전송하여 데이터 분석에 활용함
xAPI의 구문은 Actor, Verb, Object의 기본 3요소를 중심으로 구성되며, 확장 가능함
학습자의 위치, 학습 환경, 도구 등 맥락 정보를 포함하여 학습 활동을 세밀하게 추적 가능함
이벤트 데이터를 기록할 때 발생 시간(Timestamp)을 명시하여 시계열 분석에 유용함
xAPI의 구문 규칙
xAPI는 “Actor(누가) Verb(무엇을 했는지) Object(무엇에 대해)”라는 3요소를 기반으로 데이터를 기록함
Actor : 학습 활동을 수행한 주체를 나타냄(예: 학습자, 교사 등)
Verb : 학습 활동을 설명하는 동작(예: “Viewed”, “Completed”, “Answered”)
Object : 학습 활동의 대상을 설명함(예: 특정 문서, 동영상, 문제)
학습 활동의 맥락(Context)을 구체화하기 위해 “Result”, “Context”, “Attachments”와 같은 속성을 추가로 기록 가능함
예) 학습자가 동영상을 시청하고 완료한 경우, 동영상의 길이, 시청 시간, 재생 여부 등을 추가 기록함
xAPI는 JSON 형식을 사용하여 데이터의 상호운용성과 기계 판독성을 보장함
[그림 Ⅴ-3] xAPI 구문 규칙
xAPI의 활용 사례
학습 경로 추적 : 학습자가 학습 과정에서 어떤 자원을 사용했는지, 학습 경로를 상세히 기록함
학습 성과 분석 : 학습자가 문제를 얼마나 정확히 해결했는지, 학습 목표 달성 여부를 분석함
멀티미디어 학습 기록 : 동영상 재생, 문서 보기, 시뮬레이션 사용 등 다양한 학습 자원 활용 데이터를 기록함
협력 학습 분석 : 팀 프로젝트와 같은 협력 학습 활동에서 개별 기여도를 추적함
xAPI의 주요 활용 환경
xAPI는 다양한 환경에서의 활용을 위해 확장 가능한 데이터 구조를 제공하며, 학습 관리 시스템(LMS), 학습 기록 저장소(LRS), 외부 도구 간 데이터 교환을 지원함
xAPI는 Caliper Analytics 표준과 달리 구문 규칙만 정의되어 있으므로, 데이터의 속성은 구현하는 사람이 직접 구현해야 함
xAPI 표준은 Caliper Analytics와 함께 사용하여 학습 환경의 데이터를 보다 풍부하게 기록하고, 서로 다른 시스템 간 상호운용성을 높일 수 있음
[그림 Ⅴ-4] xAPI 구문으로 작성된 데이터가 LRS에 저장되는 과정
SCORM과 비교하여 xAPI는 오프라인 활동, 모바일 학습, 실습 환경 등의 데이터를 포함할 수 있어 유연성이 높음
2. 학습데이터 사전을 API로 설계할 때 참조하는 방법
학습데이터 사전은 과제 수행, 평가 수행 등과 같은 학습자의 활동, 교사의 피드백, 학습 콘텐츠 활용 데이터 등을 포함하여 다양한 정보를 구조화한 문서로 설계되었음 ([그림 Ⅴ-5], [그림 Ⅴ-6] 참조)
가) 학습데이터 사전의 분류체계
학습데이터 사전의 주요 구성 요소는 아래와 같이 설계되었음
(대분류) 학습데이터는 학습 활동의 분류를 의미하는 대분류 수준의 ‘영역’으로 우선 구분함
(중분류) 각 영역은 중분류 수준의 ‘항목’으로 분류하고 있음
(소분류) 각 데이터의 특성은 컨테이너 또는 속성의 묶음으로 설명할 수 있는 엔티티(Entity)로 분류함
각 컨테이너는 실제 데이터의 특성에 관한 메타데이터인 속성(Attribute)들로 구성되어 있음
속성은 데이터의 고유한 특성을 나타내는 메타데이터(4)와 활용한 결과로 생성되는 집계성 메타데이터(5)로 구분할 수 있음
속성 중에서 행위를 의미하는 메타데이터는 “verb”로 구분하고 있으며, 주로 이벤트 타입의 데이터를 표현할 때 활용함
(4) 학습데이터 사전의 ‘카테고리’ 칼럼의 “Attribute”에 해당되는 속성
(5) 학습데이터 사전의 ‘카테고리’ 칼럼의 “Count”에 해당되는 속성
[그림 Ⅴ-5] 학습데이터 사전 구성 요소 중 일부 발췌
나) 학습데이터 사전의 데이터 형식
학습데이터 사전의 데이터 형식은 아래와 같이 설계되었음
객체 : 주로 컨테이너에 해당하는 데이터 형식으로 ‘object’로 표시
숫자형 : 데이터의 길이에 따라서 소수점을 갖는 긴 길이의 ‘float’와 정수로 표현하는 비교적 짧은 길이의 ‘integer’ 형식으로 구분
문자형 : 길이에 상관없이 문자열 데이터 형식은 ‘string’올 표시
진위형 : 두 가지 경우 중에서 한 가지를 선택하는 진위형 형식은 ‘boolean’으로 표시
날짜형 : 날짜와 시간을 표현하는 형식은 ‘timestamp’로 표시하고, 데이터 포맷은 ‘표현형식’ 칼럼에 별도로 설명이 되어 있음
제한된 어휘 목록 : 일부 속성은 정해진 목록 중에서 값을 선택하여 입력하도록 통제되어 있는데, 이 경우 선택할 수 있는 값의 목록은 ‘표현형식’ 칼럼을 참조할 수 있음
기본값 : 일부 속성은 null 값을 허용하지 않고 기본값을 입력하도록 제한하고 있으므로 ‘표현형식’ 칼럼을 참조할 수 있음
행위동사형 : 주로 이벤트 형식의 데이터를 표현할 때 활용하는 형식은 ‘term’으로 구분하여 표시
[그림 Ⅴ-6] 학습데이터 사전 데이터 형식 중 일부 발췌
3. 학습데이터 API의 유형과 설계 방법
학습데이터 API를 설계하기에 앞서 학습데이터를 어떻게 처리할 것인지, 어떤 목적으로 활용할 것인지를 우선 결정해야 하므로, 다음 두 가지 구분에 따라서 목적과 방식을 이해할 필요가 있음
가) 학습데이터 처리 유형에 따른 구분
학습데이터를 처리하는 목적과 방식을 명확히 하기 위해서 Transaction Data와 Tracing Data로 구분할 수 있음
Transaction Data는 실시간으로 발생하는 개별 이벤트 데이터를 빠르게 처리하여 즉각적인 피드백이나 시스템 반응이 필요한 경우 활용됨
Tracing Data는 시간 축에 따라 데이터가 누적되며, 사용자의 행동 패턴이나 학습 경로를 추적하고 분석할 때 중요한 역할을 함
이와 같은 구분은 데이터 처리의 효율성을 높이고, 각각의 데이터 유형에 적합한 표준을 선택하여 설계 및 구현할 수 있도록 지원
Transaction Data는 MQTT, ISO/IEC 20922와 같은 실시간 데이터 전송 표준을 활용
Tracing Data는 Caliper Analytics 또는 xAPI와 같은 데이터 수집 기술을 통해 학습 경로와 이벤트의 상호 연관성을 분석할 수 있음
<표 Ⅴ-1> 학습데이터 처리 유형 분류 : Transaction vs Tracing
| Transaction Data | Tracing Data | |
|---|---|---|
| 정의 | 개별 이벤트 중심으로, 특정 시점에서 발생하는 데이터를 의미 | 시간의 흐름에 따라 누적되며, 사용자의 행동 및 학습 경로를 추적하는 데이터를 의미 |
| 설명 | 주로 로그 데이터(로그인/로그아웃, 클릭 등) 형태로 수집되며, 실시간 이벤트 처리가 필요 | 사용자의 행동 패턴이나 학습 이력을 분석하기 위해 시간 단위로 데이터를 누적 (단, 기록은 실시간으로) |
| 예시 | 로그인, 과제 제출, 콘텐츠 보기 등의 단일 작업 데이터 | 학생의 학습 경로, 과제 해결 순서, 지속 시간 등과 같은 누적 데이터 |
| 출처/근거 | 데이터 이벤트 정의: ISO/IEC 20922:2016, MQTT 표준 | 학습데이터 추적 개념: Caliper Analytics 및 xAPI표준에 기반 |
| 데이터 사전 활용예시 | 데이터 사전의 Entity/Attribute 속성으로 데이터 처리 :
(아래 예시에서 사용자 ID는 생략되었음) AssessmentItemInfo(entity: 문항 정보) AssessmentItemId(attribute: 문항 ID) AssessmentItemType(attribute: 문항 유형) AssessmentItemDifficulty(attribute: 문항 난이도) AssessmentItemDifficultyMin(attribute: 문항 난이도 최저값) AssessmentItemDifficultyMax(attribute: 문항 난이도 최대값) AssessmentItemResult(attribute: 문항 풀이 정보) |
데이터 사전의 Verb + Entity/Attribute를 활용하여
데이터 처리 :
(아래 예시에서 주어에 해당하는 Actor는 생략되었음) AssessmentSubmitted(verb: 평가 제출) AssessmentItemInfo(entity: 문항 정보) AssessmentItemId(attribute: 문항 ID) AssessmentItemType(attribute: 문항 유형) AssessmentItemDifficulty(attribute: 문항 난이도) AssessmentItemDifficultyMin(attribute: 문항 난이도 최저값) AssessmentItemDifficultyMax(attribute: 문항 난이도 최대값) AssessmentItemResult(attribute: 문항 풀이 정보) |
나) 학습데이터 활용 목적에 따른 구분
학습데이터를 집계성 데이터와 이벤트 데이터로 분류하는 이유는 데이터의 사용 목적에 따라 설계와 처리가 달라지기 때문임
집계성 데이터는 학습 결과나 성과를 평가하는 데 중점을 둔 데이터로, 학습자나 콘텐츠별 성취도 분석 등에 활용함
이벤트 데이터는 개별 학습 활동의 세부 정보를 추적하여 실시간 행동 분석 및 학습 개선의 기초 데이터를 제공함
이와 같은 분류는 데이터 처리의 우선순위와 목적에 따라 설계 프로세스를 차별화할 수 있도록 돕는 역할을 함
집계성 데이터는 정기적인 배치(batch) 처리로 효율성을 극대화함
이벤트 데이터는 실시간 데이터 처리를 통해 즉각적인 응답을 제공하며, 사용자 경험을 향상시킴
<표 Ⅴ-2> 학습데이터 처리 유형 분류 : Transaction vs Tracing
| 집계성 데이터 | 이벤트 데이터 | |
|---|---|---|
| 정의 | 다수의 이벤트 데이터를 통계적으로 처리하여 집계된 결과를 제공 | 개별 학습 활동이나 작업의 시점 데이터를 수집하여 특정 이벤트를 캡처 |
| 설명 | 학습 성과, 참여도, 완료율 등의 고차원적 데이터를 평가하는 데 사용하며, 주로 일괄 처리 | 세밀한 행동 분석이나 특정 이벤트의 원인 파악을 위해 사용하며, 주로 대화식 처리 |
| 예시 | 학생별 평균 학습 시간, 콘텐츠별 정답률 | 클릭, 답안 제출, 페이지 이동 등의 세부 이벤트 |
| 출처/근거 | AIDT 기술규격문서에 포함된 집계 데이터 정의 | Caliper Analytics와 xAPI이벤트 구조 |
| 데이터 사전 활용예시 | 데이터 사전의 Entity/Attribute 속성으로 데이터 처리 :
(아래 예시에서 사용자 ID는 생략되었음) VideoInfo(entity: 영상 미디어 정보) VideoAttempt(count: 영상 미디어 재생 횟수) VideoMuteCount(count: 영상 미디어 음소거 횟수) VideoSkipCount(count: 영상 미디어 건너뛰기 횟수) VideoPauseCount(count: 영상 미디어 일시멈춤 횟수) |
데이터 사전의 Verb + Entity/Attribute를 활용하여
데이터 처리 :
(아래 예시에서 주어에 해당하는 Actor는 생략되었음) AssessmentSubmitted(verb: 평가 제출) AssessmentItemInfo(entity: 문항 정보) AssessmentItemId(attribute: 문항 ID) AssessmentItemType(attribute: 문항 유형) AssessmentItemDifficulty(attribute: 문항 난이도) AssessmentItemDifficultyMin(attribute: 문항 난이도 최저값) AssessmentItemDifficultyMax(attribute: 문항 난이도 최대값) AssessmentItemResult(attribute: 문항 풀이 정보) EventTime(이벤트가 발생한 시간) |