소개

클래스룸의 과제는 CourseWork 항목이라고 하며, 이는 특정 클래스룸 과정의 수업 과제 페이지에서 확인할 수 있습니다. 과제 항목 유형에는 4가지가 있지만 이 가이드에서는 '과제' 유형에만 중점을 둡니다. 다른 수업 과제 유형을 관리하는 방법을 알아보려면 수업 과제 가이드를 참고하세요.

Google 클래스룸은 과제 워크플로와 통합하는 두 가지 방법(클래스룸 공유 버튼클래스룸 API)을 제공합니다. 공유 버튼을 사용하면 사용자가 클래스룸 팝업 대화상자를 통해 콘텐츠를 스트림 항목으로 공유할 수 있지만 클래스룸 API를 사용하면 과제 만들기, 학생 제출물 만들기 및 관리, 성적 전달 등 과제의 처음부터 끝까지의 워크플로를 사용할 수 있습니다.

여기에서는 두 개발자 제품 간의 주요 차이점을 검토합니다. 구체적으로는 구현의 차이와 과제 수명 주기의 각 단계(과제 생성, 학생 제출물, 채점/의견)를 살펴봅니다.

과제 수명 주기 이해하기

공유 버튼과 CourseWork API의 차이점을 살펴보기 전에 먼저 클래스룸 맥락에서 과제의 수명 주기로 간주되는 항목을 정의해 보겠습니다. 이를 통해 교사와 학생이 클래스룸 내에서 과제와 상호작용하는 방식을 파악할 수 있습니다.

클래스룸 과제와 통합할 때는 다음 5가지 주요 단계를 기억해야 합니다.

  1. 과제가 생성됩니다.
  2. 과제가 학생과 공유됩니다.
  3. 학생이 과제를 완료합니다.
  4. 학생이 교사에게 과제를 제출합니다.
  5. 교사가 과제를 검토하고 채점합니다.

클래스룸 과제와 통합하면 교사와 학생이 클래스룸과 서드 파티 애플리케이션 간에 원활하게 작업할 수 있습니다. 사용자는 과제 또는 학생 제출물의 세부정보를 직접 관리하는 대신 애플리케이션을 사용하여 이러한 세부정보를 관리할 수 있습니다.

과제의 5단계를 보여주는 다이어그램

구현

공유 버튼과 CourseWork API의 첫 번째 차이점은 구현입니다. 개발자 관점에서 공유 버튼은 필요한 JavaScript 리소스를 포함하고 공유 버튼 태그를 추가하기만 하면 되므로 클래스룸에 콘텐츠를 공유하는 더 쉬운 방법입니다. 가장 간단한 형태의 클래스룸 공유 버튼 통합은 아래 스니펫과 같이 표시될 수 있습니다.

<script src="https://apis.google.com/js/platform.js" async defer></script>
<g:sharetoclassroom url="http://url-to-share" size="32"></g:sharetoclassroom>

반면 CourseWork API는 Google Cloud 콘솔에서 API 키를 설정하고 사용 설정하고 API와 통합하기 위한 권장사항을 따라야 하는 Google 클래스룸 API REST API의 일부입니다. 플랫폼에서 이미 일정과 같은 다른 클래스룸 API 기능을 활용하고 있다면 이 문제는 크게 우려되지 않습니다.

과제 만들기 및 공유하기

공유 버튼과 CourseWork API 모두 과제 워크플로의 처음 두 단계인 과제 만들기 및 학생과 과제 공유를 지원하지만, 솔루션을 선택하기 전에 고려해야 할 몇 가지 중요한 차이점이 있습니다.

두 솔루션 모두 링크나 파일을 클래스룸에 과제로 게시할 수 있는 기능을 제공합니다. 이 기능은 클래스룸과 서드 파티 애플리케이션 간에 복사 및 붙여넣기 워크플로를 수행해야 하는 교사에게 유용한 워크플로가 됩니다. 두 솔루션 모두 콘텐츠를 과제로 게시하는 기능을 지원하지만 애플리케이션에 이 콘텐츠를 다른 과제 유형 또는 공지사항으로 게시할 수 있는 유연성이 필요한지 고려해야 합니다.

두 제품 모두 퀴즈 과제를 제외한 모든 클래스룸 게시물 유형을 노출합니다. 모든 게시물 유형과 노출 여부에 관한 요약은 아래에서 확인할 수 있습니다.

게시물 유형 공유 버튼 CourseWork API
할당 X X
퀴즈 과제
질문: 단답형 X X
문항: 객관식 X X
소재 X X
공지사항 X X

제목 및 설명 지정과 같은 기능은 두 솔루션 모두 애플리케이션에서 프로그래매틱 방식으로 지정할 수도 있습니다. 공유 버튼 통합을 사용하면 사용자가 팝업 대화상자 내에서 마감일, 주제, 맞춤설정 모드, 포인트 수와 같은 필드를 설정할 수 있지만 서드 파티 앱에서는 프로그래매틱 방식으로 설정할 수 없습니다. 반면 API는 이러한 모든 필드를 읽기 및 쓰기 액세스용으로 노출합니다.

과제 수정하기

사용자가 과제의 변경되는 세부정보를 수동으로 동기화할 필요가 없게 되는 것이 Classroom API와 통합의 이점 중 하나입니다. 공유 버튼에는 과제를 프로그래매틱 방식으로 업데이트하거나 삭제하는 기능이 없으므로 필요한 수정사항은 사용자가 클래스룸 UI를 통해 직접 적용해야 합니다.

CourseWork API를 사용하면 애플리케이션에서 만든 과제를 수정하고 삭제할 수 있을 뿐만 아니라 사용자의 과정에 게시된 과제의 세부정보를 검색할 수도 있습니다. 그러나 동일한 개발자 콘솔에서 생성되지 않은 CourseWork 항목은 해당 개발자 콘솔에서 수정할 수 없습니다. 이 권한 모델은 과제 수명 주기의 나머지 부분으로 확장됩니다. 예를 들어 학생 제출물 및 성적 관리는 이러한 CourseWork 항목에 액세스할 수 없습니다.

과제 자동 동기화

Pub/Sub 푸시 알림을 사용하면 애플리케이션에서 CourseWork 항목 및 관련 학생 제출물에 변경사항이 있을 때 이벤트를 트리거하는 알림을 구독할 수 있습니다. 이렇게 하면 클래스룸에서 콘텐츠가 업데이트되었는지 계속 확인할 필요가 없으므로 애플리케이션에서 과제를 쉽게 동기화할 수 있습니다.

과제 완료 및 제출하기

각 과제는 N개의 학생 제출물과 연결됩니다. 여기서 N은 과제가 할당된 학생 수입니다. 즉, 각 과제에는 고유 ID로 액세스할 수 있는 학생 제출물이 각 학생과 연결되어 있습니다. 이러한 학생 제출물은 자동으로 생성되며 애플리케이션에서 학생 제출물 GET 및 LIST 엔드포인트를 사용하여 검색할 수 있습니다.

공유 버튼과 CourseWork API 모두 학생이 제출한 과제에 링크나 파일을 추가하는 기능을 지원합니다. 공유 버튼을 사용하면 교사 과제 생성 대화상자와 유사한 워크플로와 studentSubmissions.modifyAttachments 엔드포인트를 통한 CourseWork API를 통해 이를 수행할 수 있습니다. 그러나 앞에서 설명한 API 권한 제한으로 인해 이 기능은 애플리케이션에서 만든 CourseWork 항목으로 제한됩니다. 공유 버튼에는 이 같은 제한사항이 적용되지 않습니다. 학생은 클래스룸에서 선택한 과제에 과제물을 추가할 수 있습니다.

학생 워크플로 종료

CourseWork 권한 제한은 과제 생성을 지원하지 않는 플랫폼의 사용 사례에는 적합하지 않지만, 서드 파티 플랫폼에서는 공유 버튼만 제한되어 있으므로 학생이 잘못된 과제를 제출하거나 과제 제출을 잊어버리는 것을 방지할 수 있다는 이점이 있습니다.

과제 검토 및 채점

과제 수명 주기의 마지막 부분은 교사에게 돌아갑니다. 학생이 과제를 제출하면 교사는 가장 적절한 방식으로 과제를 검토할 수 있습니다. Drive에 저장된 파일의 경우 클래스룸 채점 도구에서 직접 검토할 수 있습니다. 하지만 클래스룸 채점 도구에서는 서드 파티 애플리케이션에 액세스할 수 없습니다. 이 환경을 사용하면 교사가 과제를 검토하고 채점하는 동안 여러 탭을 탐색해야 합니다.

현재 공유 버튼은 과제 채점 및 반환을 위한 솔루션을 제공하지 않습니다. 현재 학생 제출물 댓글과 같은 기능은 API를 통해 노출되지 않지만 studentSubmissions.patchstudentSubmissions.return 엔드포인트를 통해 채점하고 학생에게 성적을 반환할 수 있습니다. 성적은 과제 스트림 항목 (과제 및 질문 유형)에만 지정할 수 있습니다. 숫자 형식으로만 사용할 수 있으며 초안 또는 최종 성적으로 할당할 수 있습니다.

차이점 요약

이전 섹션에서 검토한 모든 내용을 요약하면 다음 표와 같이 위에 설명된 네 가지 카테고리(구현, 과제 만들기 및 공유, 과제 완료 및 제출, 과제 검토 및 채점)에 대해 공유 버튼과 CourseWork API를 나란히 비교해 볼 수 있습니다.

공유 버튼 CourseWork API
구현 JavaScript가 몇 줄 밖에 없어 구현이 간단하고 빠릅니다. API 키 설정, 관리 콘솔에서 API 사용 설정, 더 세심한 모니터링 필요
과제 만들기 및 공유하기
  • 교사를 클래스룸 공유 버튼 공유 대화상자로 리디렉션합니다.
  • 사용자는 스트림 항목 유형 중 하나를 제외하고 모두 게시할 수 있습니다.
  • 지정할 수 있는 필드가 적습니다.
  • 하나는 과제 생성을 사용 설정하고 과제 데이터를 가져오거나 수정할 수 없습니다.
  • 공유 버튼 필요 없음 대화상자
  • 대부분의 클래스룸 과제 필드를 지정할 수 있습니다.
  • 애플리케이션에서 만든 강의 과정을 수정할 수 있는 기능
  • 앱이 클래스룸에서 모든 과제 데이터를 가져올 수 있도록 허용
과제 완료 및 제출
  • 학생을 클래스룸 공유 버튼 공유 대화상자로 리디렉션합니다.
  • 학생이 제출한 파일을 클래스룸 과제에 첨부할 수 있습니다.
  • 하나는 제출 첨부파일을 사용 설정하고 제출 데이터를 가져오거나 수정할 수 없습니다.
  • 학생이 과제를 제출할 수 없음
  • 공유 버튼 필요 없음 대화상자
  • 학생이 앱에서 만든 과제에만 제출물을 첨부하도록 허용
  • 앱이 애플리케이션에서 만든 학생 제출물을 수정하도록 허용
  • 학생이 과제를 제출할 수 있도록 허용
과제 검토 및 채점하기 성적 지정 또는 반환을 지원하지 않음
  • 앱이 교사를 대신하여 클래스룸에서 모든 학생 제출물 데이터를 가져올 수 있습니다.
  • 학생 성적을 초안 또는 최종 성적으로 할당하는 기능을 노출합니다.
  • 학생 성적을 수정하는 기능을 노출합니다.
  • 학생에게 성적을 반환하는 기능을 노출합니다.