본문으로 건너뛰기
Junsu Kim

Posts

OneRoster는 누가 그 반인지를 넘긴다

OneRoster는 학적 시스템과 학습 시스템 사이에서 사람, 반, 수업, 수강 정보를 같은 구조로 전달하기 위한 명단 교환 표준이다.

수정:

이 글은 를 명단 교환 표준으로 설명한다. 전체 표준의 층위 구분은 국제표준은 시스템 사이의 계약이다에 두었다. 이 글의 범위는 사람, 반, 수업, 수강 정보가 시스템 사이에서 이동하는 방식이다.

학기가 열리면 같은 반이 여러 시스템에 적힌다. 학적 시스템은 28명이라고 하고, 학습 화면은 27명이라고 하고, 담임 표에는 전입생이 반영되어 29명이라고 할 수 있다. 이 차이는 학습 기능의 문제가 아니라 명단 단위가 서로 다른 문제다.

OneRoster는 이 상황에서 “누가 어느 반에 어떤 역할로 속해 있는가”⁠를 같은 구조로 전달하게 한다. 학습 활동을 기록하는 표준이 아니다. 로그인 표준도 아니다.

정의

단위: 누가, 어느 학교나 반에, 무슨 역할로, 언제부터 언제까지 속하는지 나타내는 명단 한 줄이다.

범위: 학교, 사람, 수업, 수강 같은 명단 정보를 다룬다.

제외 대상: 그 학생이 무엇을 배웠는지, 어떤 계정으로 로그인하는지, 성적을 어떻게 해석할지는 이 글의 범위가 아니다.

실패 조건: 같은 학생을 시스템마다 다른 반의 구성원으로 읽는 상태다.

데이터가 이동하는 자리

OneRoster의 기본 방향은 원천 시스템의 명단 정보를 다른 교육 시스템이 같은 뜻으로 읽게 하는 것이다. 공식 문서에서도 OneRoster는 와 같은 시스템 사이에서 학생 데이터, 특히 사람, 수업, 수강, 성적 정보를 교환하는 표준으로 설명된다.

OneRoster 예시

  1. SIS 학적 시스템이 사람, 반, 수업, 수강 정보를 관리한다.
  2. OneRoster 그 정보를 정해진 칸 이름과 전송 방식으로 표현한다.
  3. LMS 학습 화면이 같은 사람과 같은 반을 읽는다.

예를 들어 이 글의 한 줄은 “김준수가 3⁠-⁠2⁠반 학생이다”⁠이다. 이 줄은 학습 활동 한 건과 다르다. “김준수가 4과를 완료했다”⁠는 학습 기록이며, 그 설명은 학습 기록은 한 줄이 한 건이다에 둔다.

아닌 것

OneRoster는 학적 원장이 아니다. 전입, 전출, 반 편성 같은 운영 판단을 대신하지 않는다. 원천 시스템에서 정리된 명단을 다른 시스템이 읽을 수 있게 전달한다.

OneRoster는 인증 방식도 아니다. 사용자가 어떤 계정으로 로그인하는지는 SAML, OIDC 같은 인증 층위에서 다룬다. OneRoster 글에서 이 둘을 섞으면 “누구인가”⁠와 “어떻게 로그인했는가”⁠가 함께 흔들린다.

이 사이트에서 그 약속을 제품 연동에 쓰는 자리는 STLink다. 아직 공개할 연동 건수는 없으므로, 이 글에는 수치를 적지 않는다.

다음에 열 것

한 줄의 명단과 그 줄을 전달하는 표준 이름까지가 이 글의 범위다. 사람을 무엇으로 가리킬지는 OneRoster는 사람을 번호로 가리킨다에 있다. 아직 다루지 않은 내용은 아래와 같다.

  1. 명단 수정 권한: 학습 화면이 학적 원장의 명단을 고쳐 올릴 수 있는지는 이 글에 넣지 않았다.
  2. 전달 방식: 파일로 넘길지 API로 조회할지는 OneRoster 명단은 파일로 넘기거나 API로 조회한다에서 다룬다.

스펙에서 이 칸을 org, user, class, enrollment라고 부른다. 규약의 영어 이름은 아래 출처에 있다.