본문으로 건너뛰기
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라고 부른다. 규약의 영어 이름은 아래 출처에 있다.