9. 일관성 있게 데이터를 저장하고 분석할
방법은 없을까요?
학생 우리 반 우리 학교우리 학년
10. 학습 데이터를 구조화 하려는 시도
• xAPI(Experience API, a.k.a Tin Can API)
• ADL(Advanced Distributed Learning)
• 2013년에 1.0.0 버전 릴리즈
• 현재 최신 버전의 스펙은 1.0.3 (참조)
• Caliper Analytics
• IMS Global
• 2015년 1.0 버전 릴리즈
• 현재 최신 버전의 스펙은 1.1 (참조)
11. 데이터 구조
Actor Verb Object ID Stored …
Actor Action Object ID EventTime …Type
xAPI - Statement
Caliper - Event
12. xAPI vs. Caliper - 공통점/차이점
• 공통점
• JSON을 기반으로 한 데이터
• 차이점
• 필수 속성의 차이: S+V+O vs. S+V+O+Type+ID+EventTime
• 학습 유형에 대한 용어가 구체적으로 정의되어 있음: Caliper > xAPI
• 데이터 구성의 유연성: xAPI > Caliper
13. 표준화된 데이터 구조의 장점?
• 데이터 설계에 들어가는 시간을 줄일 수 있습니다.
• 표준화된 데이터를 수집/분석하는 툴을 필요에 따라 쓸 수 있습니다.
• 예 1) Learning Locker (xAPI)
• 예 2) OpenLRW, OpenDashboard (Caliper)
• 데이터 수집/분석에 필요한 도구를 직접 개발하고 배포할 수 있습니다.
19. Tin Can Python (xAPI) 설치
• 설치 과정
• 하지만, Python 2.7 버전만 지원합니다.
• 3년 전이 마지막 업데이트입니다.
$ pip install tincan
20. Caliper Python 설치
• 설치 과정
• Python 3.x, 2.7 버전을 지원합니다.
• PyPI에 등록되어 있지 않아 수동으로 설치해야 합니다.
$ git clone https://github.com/IMSGlobal/caliper-python.git
$ pip install -e caliper-python
21. 파이썬으로 학습 데이터 생성하기
• xAPI – Actor
actor.to_json()
31. 간단한 예제를 만들어 봅시다.
• Flask + MongoDB + Caliper
• Flask – 학습 활동, 학습 데이터 수신 지점 구현
• MongoDB – 학습 데이터 저장 (Learning Record Store)
• Python에서 MongoDB를 사용하려면? PyMongo, MongoEngine, …
• Caliper – 학습 활동 데이터를 구성
• 예제 소스
• https://github.com/rubysoho07/learning-analytics-example
32. 그냥 RDB에 저장하고 분석하면 안 되나요?
• RDB에서 데이터 저장 및 분석을 못 하는 건 아닙니다.
• 하지만,
• 요구사항의 변경 = 수집하는 데이터의 구조 변화 (자주 일어납니다!)
• 이러한 상황에 유연하게 대처하기 위해 MongoDB를 사용하였습니다.