본문으로 건너뛰기
Junsu Kim

Posts

OneRoster는 사람을 번호로 가리킨다

OneRoster 명단에서 사람은 표시 이름이 아니라 시스템이 관리하는 식별자로 구분한다. 로그인 계정과 표시 이름은 같은 층위가 아니다.

수정:

이 글은 OneRoster 명단에서 사람을 어떻게 가리키는지 설명한다. 앞 글 OneRoster는 누가 그 반인지를 넘긴다는 “김준수가 3-2반 학생이다”라는 명단 한 줄을 다뤘다. 이번 글의 범위는 그 줄에서 “김준수”가 같은 사람임을 어떻게 구분하는가이다.

전입이 처리된 뒤에 같은 학생이 서류마다 다른 이름으로 적힐 수 있다. 전입 서류에는 김준수라고 적혀 있고, 학습 화면에는 준수 김이라고 표시되고, 출석부에는 김준수(3-2)라고 적힐 수 있다. 이름만으로는 세 기록이 같은 사람을 가리키는지 확정하기 어렵다.

따라서 명단 교환에서는 표시 이름과 식별자를 나누어야 한다. 화면에는 사람이 읽을 이름이 필요하지만, 시스템 사이의 교환에는 같은 사람을 안정적으로 가리키는 값이 필요하다.

정의

단위: 명단에서 한 사람을 가리키는 식별자다.

범위: OneRoster의 user를 다른 시스템이 같은 사람으로 읽게 하는 값이다.

제외 대상: 표시 이름, 로그인 계정, 이메일, 출석 기록은 이 단위와 다르다.

실패 조건: 동명이인을 한 사람으로 합치거나, 같은 사람을 전입 뒤에 다른 사람으로 나누는 상태다.

식별자와 표시 이름

규약에서 이 칸의 영어 이름은 다. sourcedId는 칸의 이름이고, 칸에 들어가는 값은 원천 시스템이 관리하는 식별자다. 화면에 표시할 때는 이름을 보여 줄 수 있지만, 다른 제품에 전달할 때는 식별자를 기준으로 사람을 맞춘다.

한 사람에 붙는 네 가지 값은 서로 층위가 다르다

명단 위의 한 사람식별자표시 이름로그인 계정역할

도해의 지점을 짚거나 Tab으로 옮겨 보십시오

식별자

시스템이 같은 사람을 맞출 때 쓰는 값이다. 규약에서 이 칸의 이름은 sourcedId이고, 값은 원천 시스템이 관리한다.

표시 이름

사람이 화면에서 읽는 이름이다. 서류마다 달라질 수 있으므로 교환의 기준이 되지 못한다.

로그인 계정

인증에 쓰는 값이다. 명단 식별자와 같은 층위가 아니며 SAML이나 OIDC 쪽에서 다룬다.

역할

학생이나 교사 같은 관계 정보다. 사람 자체가 아니라 그 사람이 어느 반에서 무엇인지를 나타낸다.

학습 기록의 주체도 사람이다. 명단에서 사람을 가리키는 값과 학습 기록에서 사람을 가리키는 값이 서로 맞지 않으면, 완료 건수를 사람 수와 연결할 때 기록이 다시 어긋난다. 학습 기록의 줄은 학습 기록은 한 줄이 한 건이다에서 다룬다.

이 사이트에서 그 번호를 제품 연동에 쓰는 위치는 STLink이다. 아직 공개할 연동 건수가 없으므로, 이 글에는 수치를 적지 않는다.

다음에 열 것

이 글의 범위는 사람 번호까지이다. 다음 글에서 다룰 내용은 아래와 같다.

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