소개

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

Google 클래스룸에는 과제 워크플로와 통합하는 두 가지 방법이 있습니다. 클래스룸 공유 버튼클래스룸 API입니다. 공유 버튼을 사용하면 사용자가 클래스룸 팝업 대화상자를 통해 콘텐츠를 스트림 항목으로 공유할 수 있으며, 클래스룸 API를 사용하면 과제 생성, 학생 제출 생성 및 관리, 성적 전달을 포함하는 엔드 투 엔드 과제 워크플로를 사용할 수 있습니다.

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

과제 수명 주기 이해하기

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

Classroom 과제와 통합할 때 염두에 두어야 할 주요 단계는 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 Classroom API REST API의 일부로, Google Cloud 콘솔을 사용하여 API 키를 설정하고 사용 설정하고 API와 통합하기 위한 권장사항을 따라야 합니다. 플랫폼에서 이미 rostering과 같은 다른 Classroom API 기능을 활용하고 있다면 이 문제는 크게 신경 쓰지 않아도 됩니다.

과제 만들기 및 공유하기

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

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

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

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

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

과제 수정

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

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

과제 자동 동기화

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

과제 완료 및 제출

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

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

학생 워크플로 종료

CourseWork 권한 제한은 과제 생성을 지원하지 않는 플랫폼에는 유용하지 않지만, 학생이 과제를 제출할 수 있는 기능에서 공유 버튼만 제한되므로 학생이 잘못된 과제에 제출하거나 과제 제출을 잊는 것을 방지할 수 있다는 이점이 있습니다.

과제 검토 및 채점

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

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

차이점 요약

이전 섹션에서 검토한 내용을 요약하면 아래 표에 구현, 과제 생성 및 공유, 과제 완료 및 제출, 과제 검토 및 채점이라는 위에서 설명한 네 가지 카테고리에 대한 공유 버튼과 CourseWork API의 비교가 나와 있습니다.

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