본문으로 건너뛰기
Junsu Kim

LRS: 학습기록이 무엇인지부터

LRS 일을 시작할 때 제품 저장소보다 먼저 고치는 것은 statement의 단위와 경계다.

LRS(Learning Record Store) 작업에서 내가 먼저 묻는 질문은 “어디에 쌓을까”가 아니다. 한 건의 학습기록이 무엇인지다. 단위가 없으면 대시보드도, 표준 연동도 해석 다툼으로 끝난다.

이 글은 정의가 숫자보다 먼저다의 프로젝트 단위 적용이다. 제품 구현 스펙이 아니라, 합의선을 긋는 순서다.

LRS가 하는 일

LRS는 학습 활동 기록을 받아 저장하고, 질의할 수 있게 두는 저장소다. 업계에서 자주 붙는 규약은 xAPI(Experience API)다. xAPI는 활동을 Actor / Verb / Object 형태의 statement로 표현한다.

정의

학습기록(한 건) — 누가(Actor), 무엇을 했는지(Verb), 무엇에 대해(Object), 언제/어떤 결과로 남았는지가 한 statement로 닫히는 관측 단위.

경계 — “학습했다”는 말 전체가 아니라, 시스템이 재현 가능하게 수신할 수 있는 사건만 넣는다.

이 정의를 공유하지 않은 채 이벤트 파이프만 올리면, 같은 “완료”가 제품마다 다른 뜻이 된다.

왜 저장소보다 정의가 먼저인가

현장에서는 대개 LMS 로그, 퀴즈 결과, 시청 시간, 출석처럼 이미 생긴 데이터부터 모으고 싶어 한다. 그건 자연스럽다. 다만 모은 뒤에 정의를 붙이면 비용이 크다.

xAPI 스펙이 강조하는 것도 형식만이 아니다. statement가 다른 시스템에서도 같은 의미로 읽히게 만드는 계약이다. (ADL xAPI Spec)

내가 고정하는 순서

  1. 관측 단위: 한 statement에 넣을 최소 사건
  2. 식별자: Actor / Object를 무엇으로 안정적으로 가리킬지
  3. 허용 Verb 집합: 팀이 쓸 동사와 쓰지 않을 동사
  4. 실패 조건: 어떤 입력이 오면 저장하지 않고 거절할지
  5. 그다음 LRS 적재, 질의, 화면

제품 UI는 5번 이후에야 의미가 있다. 4번이 없으면 “일단 다 넣자”가 되고, 나중에 지표가 서로 안 맞는다.

아직 관측하지 않는 것

이 사이트 LRS 프로젝트에 붙인 시그널은 xAPI / 해석이다. 공개 가능한 KPI 퍼센트는 아직 없다. 그래서 붙이지 않는다. 대신 남아 있는 질문은 분명하다.

한 줄로

LRS를 “학습 데이터 창고”로만 보면 설계가 늦는다. 학습기록의 단위를 계약으로 고정한 뒤 창고를 짓는 편이 싸다.

다음 편은 STLink 쪽에서 명부/프로파일이 같은 역할을 하는 순간을 적을 예정이다.