Skip to main content

그룹 과제 만들기

과정에 참가하는 학생 팀을 위한 공동 작업 과제를 만들 수 있습니다.

누가 이 기능을 사용할 수 있나요?

Organization owners who are admins for a classroom can create and manage group assignments for a classroom. 클래스룸 관리자에 대한 자세한 내용은 "클래스룸 관리"을 참조하세요.

그룹 과제 정보

그룹 과제는 GitHub Classroom에 있는 학생 그룹을 위한 공동 작업 과정입니다. 학생은 전문 개발자 팀처럼 리포지토리에서 그룹 과제를 함께 작업할 수 있습니다.

그룹 과제를 수락한 학생은 새 팀을 만들거나 기존 팀에 참가할 수 있습니다. GitHub Classroom은 과제를 수행하는 팀은 하나의 집합으로 저장합니다. 과제를 만들 때 특정 과제에 대한 팀 집합의 이름을 지정할 수 있으며, 이후 과제에서 이 팀 집합을 다시 사용할 수 있습니다.

각 그룹 할당에 대해 GitHub Classroom은 팀이 액세스할 수 있는 단일 공유 리포지토리를 자동으로 만듭니다. 리포지토리는 비어 있거나 시작 코드, 설명서, 테스트, 기타 리소스를 사용하여 템플릿 리포지토리에서 리포지토리를 만들 수 있습니다. 리포지토리는 GitHub의 조직 계정에 속하며GitHub Classroom은 과제를 수락할 때 학생이 만들거나 참가하는 팀에 대한 액세스 권한을 부여합니다.

각 과제에는 제목과 선택적 마감일이 있습니다. GitHub Classroom에서 만든 리포지토리의 표시 유형을 선택하고 액세스 권한을 선택할 수 있습니다. 과제를 자동으로 채점하고 과제에 대해 학생과 토론할 전용 공간을 만들 수도 있습니다.

하나의 과제에 포함할 수 있는 팀 수와 각 팀이 가질 수 있는 구성원 수를 결정할 수 있습니다. 학생이 과제를 위해 생성하는 각 팀은 GitHub의 조직 내 팀이 됩니다. 팀의 표시 여부는 비밀입니다. GitHub에서 만든 팀은 GitHub Classroom에 표시되지 않습니다. 자세한 내용은 팀 정보을(를) 참조하세요.

다른 조직의 클래스룸을 포함하여 관리자가 액세스할 수 있는 다른 모든 클래스룸에서 기존 과제를 다시 사용할 수 있습니다. 자세한 내용은 "과제 재사용"을(를) 참조하세요.

필수 조건

과제를 만들려면 먼저 클래스룸을 만들어야 합니다. 자세한 내용은 "클래스룸 관리"을(를) 참조하세요.

과제 만들기

  1. GitHub Classroom에 로그인합니다.
  2. 클래스룸으로 이동합니다.
  3. 과제 탭에서 과제를 만듭니다.
    • 첫 번째 과제인 경우 과제 만들기를 클릭합니다.
    • 그렇지 않으면 오른쪽에서 새 과제를 클릭합니다.

과제의 기본 사항 설정

과제 이름을 지정하고, 마감일 할당 여부를 결정하고, 팀을 정의하고, 과제 리포지토리의 표시 유형을 선택합니다.

과제 이름 지정

그룹 과제의 경우 GitHub Classroom은 리포지토리 접두사 및 팀 이름을 기준으로 리포지토리의 이름을 지정합니다. 기본적으로 리포지토리 접두사는 과제 제목입니다. 예를 들어 과제 이름을 "assignment-1"로 지정했고 GitHub에서 팀의 이름이 "student-team"이면, 팀의 구성원에 대한 과제 리포지토리의 이름은 assignment-1-student-team이 됩니다.

"과제 제목"에 과제의 제목을 입력합니다. 필요에 따라 을(를) 클릭하여 접두사를 편집합니다.

과제 마감일 할당

필요에 따라 과제에 마감 기한을 할당할 수 있습니다. “마감 기한(선택 사항)”에서 텍스트 필드를 클릭한 다음 날짜 선택을 사용하여 마감 기한을 할당합니다.

필요에 따라 마감일을 컷오프 날짜로 설정하려면 컷오프 날짜로 선택합니다. 컷오프 날짜를 사용하면서 연장하지 않으면 컷오프 날짜가 지나면 학생은 과제 리포지토리 쓰기 권한을 잃게 됩니다. 과제 기한 연장에 대한 자세한 내용은 "개인 또는 그룹의 과제 마감일 연장"을 참조하세요.

과제 유형 선택

"개별 또는 그룹 과제"에서 드롭다운 메뉴를 선택하고 그룹 과제를 클릭합니다. 과제를 만든 후에는 과제 유형을 변경할 수 없습니다. 개인 과제를 만들려면 개별 과제 만들기을(를) 참조하세요.

과제를 수행할 팀 정의

클래스룸에 대한 그룹 과제를 이미 만들었다면 새 과제에 팀 집합을 다시 사용할 수 있습니다. 학생이 과제를 위해 만든 팀을 이용해 새 집합을 만들려면 집합의 이름을 입력합니다. 필요한 경우 팀 구성원의 최대 수와 총 팀 수를 입력합니다.

Note

  • 집합 이름에 팀 집합 세부 정보를 포함하는 것이 좋습니다. 예를 들어 하나의 과제에 팀 집합을 사용하려는 경우에는 과제의 이름을 집합의 이름으로 지정하세요. 한 학기 또는 과정 전체에서 집합을 다시 사용하려면 학기 또는 과정의 이름을 집합 이름으로 지정하세요.
  • 특정 팀에 학생을 할당하려면 학생에게 팀의 이름을 지정하고 구성원 목록을 제공하세요.

과제 리포지토리의 표시 유형 선택

과제용 리포지토리는 퍼블릭 또는 프라이빗일 수 있습니다. 프라이빗 리포지토리를 사용하는 경우 학생 또는 팀만 제공한 피드백을 볼 수 있습니다.

학생에게 과제 리포지토리에 대한 관리자 권한을 부여할지 여부를 결정할 수도 있습니다. 학생이 과제 리포지토리에 대한 관리 작업을 수행할 수 있어야 하는 경우 관리자 권한을 부여합니다. 자세한 내용은 "리포지토리 정보" 및 "조직의 리포지토리 역할"을(를) 참조하세요.

"리포지토리 표시 유형"에서 표시 유형을 선택합니다. 필요에 따라 학생에게 리포지토리에 대한 관리자 액세스 권한 부여를 선택합니다.

완료되면 계속을 클릭하여 할당을 위한 시작 코드와 개발 환경을 구성합니다.

시작 코드 추가 및 개발 환경 구성

필요에 따라 빈 리포지토리 또는 시작 코드를 제공할지 여부를 결정하고 학생을 위한 개발 환경을 미리 구성합니다.

템플릿 리포지토리 선택

기본적으로 새 과제는 학생이 만드는 각 팀에 대해 빈 리포지토리를 만듭니다. 필요에 따라 템플릿 리포지토리를 할당의 시작 코드로 선택할 수 있습니다. 자세한 내용은 "템플릿 리포지토리에서 과제 만들기"을(를) 참조하세요.

Note

템플릿 리포지토리는 조직에 속하거나 GitHub의 퍼블릭 리포지토리여야 합니다.

"템플릿 리포지토리를 추가하여 학생 스타터 코드 제공"에서 리포지토리 선택 드롭다운을 선택한 다음, 검색 쿼리를 입력합니다. 결과 목록에서 시작 코드에 사용할 템플릿 리포지토리를 클릭합니다.

IDE(통합 개발 환경) 선택

필요에 따라 IDE(통합 개발 환경)를 사용하도록 할당을 구성할 수 있습니다. IDE를 사용하면 학생이 Git 및 전체 개발 도구 체인을 학생의 컴퓨터에 설치하지 않고도 코드를 작성하고, 프로그램을 실행하고, 공동으로 작업할 수 있습니다. 과제에 대한 IDE를 선택하는 경우에도 학생은 필요한 소프트웨어가 있는 컴퓨터에서 로컬로 코드를 체크 아웃하고 실행할 수 있습니다. 자세한 내용은 IDE와 GitHub 클래스룸 통합을(를) 참조하세요.

GitHub Codespaces을(를) 사용하여 할당을 구성하도록 선택하여 학생들에게 원클릭 설정으로 브라우저 기반 Visual Studio Code 환경에 대한 액세스 권한을 부여할 수 있습니다. 자세한 내용은 "GitHub 클래스룸에서 GitHub Codespaces 사용"을(를) 참조하세요.

과제에 대한 IDE를 선택하려면 편집기 추가 드롭다운 메뉴를 선택하고 학생이 사용할 IDE를 클릭합니다.

완료되면 계속을 클릭하여 프로젝트에 대한 자동 채점 및 피드백을 구성합니다.

피드백 제공

필요하다면 자동으로 과제를 채점하고 팀과 각 제출을 논의할 공간을 만들 수 있습니다.

자동으로 과제 테스트

자동 채점 기능을 사용하여 GitHub Classroom의 할당에 대한 학생의 작업을 자동으로 확인할 수 있습니다. 할당에 대한 테스트를 구성하면 학생이 GitHub.com의 할당 리포지토리에 푸시할 때마다 테스트가 즉시 실행됩니다. 학생은 테스트 결과를 보고, 변경하고, 푸시하여 새 결과를 볼 수 있습니다. 자세한 내용은 "자동 채점 사용"을 참조하세요.

"자동 채점 테스트 추가"에서 테스트 추가 드롭다운 메뉴를 선택한 다음, 사용할 채점 방법을 클릭합니다. 자세한 내용은 "자동 채점 사용"을 참조하세요.

이름, 명령, 입력, 출력, 시간 제한 및 포인트와 같은 테스트 사례의 매개 변수를 정의합니다. 완료되면 테스트 사례 저장을 클릭합니다.

테스트 추가 드롭다운 메뉴를 사용하여 테스트를 더 추가할 수 있으며 또는 을 사용하여 기존 테스트를 편집하거나 삭제할 수 있습니다.

보호된 파일 경로 지정

과제에 채점 프로세스에 사용되는 파일 또는 디렉터리를 가지고 있거나 학생이 편집하지 않아야 하는 경우 보호된 파일 경로로 지정할 수 있습니다. 학생이 보호된 파일을 편집하는 경우 조사할 과제 개요 페이지의 제출에 레이블이 적용됩니다. 자세한 내용은 "과제 개요 페이지를 사용하여 학생의 진도 모니터링"을(를) 참조하세요.

보호된 경로에 대한 패턴은 셸 파일 이름 와일드카드 사용과 유사한 규칙을 따릅니다. 다음과 같은 메타 문자가 포함될 수 있습니다.

  • *: 모든 파일과 일치합니다. 예를 들어, *는 모든 일반 파일과 일치하고, foo*foo로 시작하는 모든 파일과 일치하며, *foofoo로 끝나는 모든 파일과 일치하고, *foo*는 이름에 foo가 포함된 모든 파일(시작 또는 끝 부분 포함)과 일치합니다.
  • **: 디렉터리를 재귀적으로 일치하거나 파일을 광범위하게 일치합니다. 예를 들어, .github/**/*.github와 그 하위 디렉터리에 있는 모든 파일을 일치시킵니다.
  • ?: 임의의 문자 하나와 일치합니다.
  • [set]: set의 모든 문자(a-z 같은 세트 포함)와 일치합니다.
  • \: 다음 메타 문자를 이스케이프합니다.

피드백에 대한 끌어오기 요청 만들기

피드백을 제공하고 과제에 대한 학생의 질문에 답변할 수 있는 끌어오기 요청을 자동으로 만들 수 있습니다. 끌어오기 요청의 변경 내용 검토에 대한 자세한 내용은 "끌어오기 요청의 변경 사항 검토"를 참조하세요. 끌어오기 요청에 피드백을 남기는 방법에 대한 자세한 내용은 끌어오기 요청을 사용하여 피드백 남기기을(를) 참조하세요.

피드백 논의를 위한 끌어오기 요청을 만들려면 피드백 끌어오기 요청을 사용하도록 설정을 선택합니다.

과제를 만들려면 과제 만들기를 클릭합니다.

과제에 학생 초대

기본적으로 GitHub Classroom은 사용자가 만든 각 과제에 대한 초대 URL을 활성화합니다. 학생들은 초대 URL이 활성화된 동안 과제를 수락하고 제출할 수 있습니다. LMS, 과정 홈페이지 또는 과제를 게시하는 모든 위치에서 학생들과 URL을 공유할 수 있습니다. 학생이 이미 클래스룸의 과제를 수락한 경우 GitHub Classroom에서 과제로 이동할 수도 있습니다.

Warning

초대 URL을 공유하는 위치에 주의하세요. 과제에 대한 초대 URL이 있는 모든 사람은 초대를 수락하고 GitHub의 개인 계정을 명단의 식별자와 연결할 수 있습니다.

과제에 대한 탭에서 작업 중이거나 과제를 제출한 팀을 볼 수 있습니다. 학생이 과제를 수락 또는 제출하지 못하도록 하려면 "과제 편집" 보기 내에서 "과제 상태"를 변경할 수 있습니다. 과제가 활성 상태이면 학생은 초대 링크를 사용하여 과제를 수락할 수 있습니다. 과제가 비활성 상태이면 이 링크가 더 이상 유효하지 않습니다.

학생의 진행 상황 모니터링

과제 개요 페이지에서는 과제 수락 및 학생 진행 상황에 대한 개요를 제공합니다. 과제 개요 페이지를 보고 사용하는 방법에 대한 자세한 내용은 "과제 개요 페이지를 사용하여 학생의 진도 모니터링"을 참조하세요.

다음 단계

  • 과제를 만들고 학생이 팀을 구성하면, 팀 구성원은 Git 및 GitHub의 기능을 사용하여 과제 작업을 시작할 수 있습니다. 학생은 리포지토리를 복제하고, 커밋을 푸시하고, 분기를 관리하고, 끌어오기 요청을 만들어 검토하고, 병합 충돌을 해결하고, 이슈가 있는 변경 내용을 논의할 수 있습니다. 사용자와 팀 모두 리포지토리에 대한 커밋 기록을 검토할 수 있습니다. 자세한 내용은 GitHub 설명서 시작, 리포지토리 설명서, Git 사용, 끌어오기 요청을 사용하여 협업와(과) GitHub Skills에서 병합 충돌 해결 무료 과정을 참조하세요.

  • 팀이 과제를 완료하면 리포지토리의 파일을 검토하거나 리포지토리의 기록 및 시각화를 검토하여 팀의 공동 작업 방식을 더 잘 이해할 수 있습니다. 자세한 내용은 리포지토리에 대한 활동 및 데이터 보기을(를) 참조하세요.

  • 끌어오기 요청의 개별 커밋 또는 줄에 주석을 달아 과제에 대한 피드백을 제공할 수 있습니다. 자세한 내용은 끌어오기 요청에 대한 주석 추가문제 만들기을(를) 참조하세요. 일반적인 오류에 대한 피드백을 제공하기 위해 저장된 회신을 만드는 방법에 대한 자세한 내용은 저장된 회신 정보을(를) 참조하세요.

추가 참고 자료