소개

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

Google 클래스룸에서는 클래스룸 공유 버튼Classroom API를 사용하여 과제 워크플로와 통합할 수 있습니다. 공유 버튼을 사용하면 사용자가 클래스룸 팝업 대화상자를 통해 콘텐츠를 스트림 항목으로 공유할 수 있는 반면, Classroom API를 사용하면 과제 만들기, 학생 제출물 생성 및 관리, 성적 패스백을 포함한 전체 과제 워크플로를 시작할 수 있습니다.

여기서는 이러한 두 가지 개발자 제품의 주요 차이점을 살펴보겠습니다. 더 구체적으로는 구현의 차이점과 과제 생성, 학생 제출, 채점/피드백 등 과제 수명 주기의 각 단계를 살펴보겠습니다.

할당 수명 주기 이해

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

클래스룸 과제와 통합할 때 유의해야 할 5가지 기본 단계가 있습니다.

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

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

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

구현

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

<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와의 통합을 위한 권장사항을 따라야 합니다. 플랫폼에서 이미 출석부와 같은 다른 Classroom API 기능을 사용하고 있는 경우에는 별 문제가 되지 않습니다.

과제 만들기 및 공유하기

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

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

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

게시물 유형 공유 버튼 CourseWork API
임무 X X
퀴즈 과제
질문: 단답형 X X
Question: 객관식 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 스트림 항목 (과제 및 질문 유형)에만 성적을 지정할 수 있습니다. 과제는 숫자 형식으로만 제공되며 초안 또는 최종 성적으로 지정될 수 있습니다.

차이점 요약

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

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