Documentation menu

과제 블록

마감일이 있는 숙제나 과제입니다: 제목, 안내문, 선택적 배점, 얼마든지 추가할 수 있는 자료 링크, 그리고 제출 컨트롤로 구성됩니다. 단순히 과제를 "공지"하는 데 그치지 않고 이메일 자체를 실제 과제로 만드는 스튜디오의 블록입니다.

작동 방식

마감일은 카운트다운 블록 자체가 쓰는 것과 동일한 서버 렌더링 애니메이션 GIF 기법을 사용해, 발송된 이메일 안에서 실시간으로 카운트되는 이미지로 렌더링됩니다. 이 엔드포인트는 실제로 공유되는 것이며, 과제 블록이 자체적인 이미지 인코더를 따로 돌리는 것이 아닙니다. 그 옆에는 "마감까지 X일 Y시간 Z분" 또는 "마감 지남"이라는 일반 텍스트 줄이 함께 표시됩니다. 이 조합이 중요한 이유는, 특정 클라이언트가 이미지를 아예 렌더링하지 않더라도 마감일을 정확하게 유지해 주기 때문입니다. 텍스트 줄은 수신자 본인이 실제로 열람한 시점을 기준으로 발송 시점에 계산되므로, 이미지를 전혀 표시하지 않는 클라이언트에서도 올바르게 읽히는 반면 GIF는 이미지를 지원하는 클라이언트에서 계속 카운트를 이어갑니다.

제출 방식은 제출 필드로 선택하는 세 가지 형태를 가집니다:

  • 완료로 표시 — 값이 고정된 액션이므로, 투표 선택지나 평점 칩과 동일한 링크 우선 처리를 받습니다: 인터랙션 엔드포인트로 전송하는 실제 이메일 내 <form>(키네틱 티어)과, 호스팅된 확인 페이지(/v/[token]/act)로 연결되는 일반 폴백 링크가 같은 "완료로 표시" 컨트롤을 감싸는 형태로 함께 존재합니다. 제출되는 값이 절대 달라지지 않으므로, 아래 두 모드와 달리 링크만으로 이루어진 티어 2 경로만으로도 충분합니다.
  • 단답형 답변 / 링크 답변 — 이 두 방식은 일반 GET 링크로는 미리 채워 넣을 수 없는 자유 형식 값을 담습니다. 그래서 퀴즈 블록의 전체 폼 폴백과 마찬가지로, 티어 2 경로는 호스팅된 라이브 뷰 자체로 연결되는 링크이며, 그곳에서 실제 <input>(각각 text 또는 url 타입, 적절한 안내 문구 포함)이 답변을 받아 제출합니다. 키네틱 폼을 렌더링할 수 없는 클라이언트에서는 이 두 모드에 대해 이메일 내부에서 직접 입력하는 방법이 없으며, 대신 라이브 뷰가 열립니다.

어떤 모드로 설정하든, 제출은 일반적인 인터랙션 이벤트로 기록되며 투표와 동일한 방식으로 수신자별로 중복 제거됩니다 — 수신자 본인의 링크를 다시 클릭해도 두 번째 제출이 아니라 무동작입니다. 제출이 도착한 시점에 블록의 마감일이 이미 지났더라도 제출 자체는 그대로 기록되며, 다만 이후 단계(아래 성적표 집계 참고)에서 지각으로 표시될 뿐입니다. 과제 블록은 지각 제출이 기록되는 것 자체를 절대 막지 않으며, 단지 표시만 할 뿐입니다.

그 외 모든 곳(Outlook, 또는 키네틱 티어도 카운트다운 이미지도 의미 있게 렌더링하지 못하는 클라이언트)에서는 폴백이 단순히 정적인 마감일 텍스트 줄과 자료 링크 목록입니다. 둘 다 티어와 무관하게 항상 렌더링되며, 어느 제출 컨트롤(칩 또는 라이브 뷰 링크)이 적용되든 함께 표시됩니다.

설정 가능한 필드:

  • 제목안내문, 그리고 각각의 색상과 글꼴 크기.
  • 마감 시각 — 날짜/시간이며, 이 값이 설정된 경우에만 카운트다운 이미지와 "마감까지…"/"마감 지남" 텍스트가 렌더링됩니다.
  • 배점 — 0이면 채점 대상이 아님을 뜻합니다(상품 블록의 재고 필드가 쓰는 것과 동일한 "0 = 미설정" 규칙입니다). 0이 아닌 값을 넣으면 제목 옆에 "(N점)"이 붙습니다.
  • 자료 링크 — 라벨/URL 쌍을 얼마든지 추가할 수 있으며, 안내문 아래에 일반 링크 목록으로 렌더링됩니다.
  • 제출 — 위에서 설명한 완료로 표시 / 단답형 답변 / 링크 답변 중 선택합니다.
  • 배경색, 패딩, 테두리, 모서리 반경, 그리고 제출 컨트롤에 공통 적용되는 버튼 색상 오버라이드.

예시

Subject

New assignment: Chapter 4 reading response

온라인 강좌의 주간 숙제 리마인더는 완료로 표시와 자연스럽게 짝을 이룹니다 — 이메일을 통해 코스워크와 리마인더를 운영하는 더 넓은 패턴은 교육을 참고하세요. 서술형 과제("3장을 두 문장으로 요약하세요")는 단답형 답변을 사용해, 별도의 제출 포털 없이 답변 자체가 성적표에 바로 기록되도록 합니다. 프로젝트 기반 과제("공유 문서 링크를 제출하세요")는 링크 답변을 사용하고, 자료 링크에는 채점 기준표와 참고 자료를 연결합니다. 마감일을 실제 기한으로 설정해 두면, 마감이 다가올수록 카운트다운이 학생들에게 실질적인 긴박감을 전달합니다.

정적 폴백의 모습

<div style="margin:12px 0;background-color:transparent">
  <p style="margin:0 0 4px;font-weight:700;font-size:18px;color:#111827">
    Chapter 3 reading response (10 pts)
  </p>
  <p style="margin:0 0 6px;font-size:13px;font-weight:600;color:#111827">
    Due in 2d 4h 30m
  </p>
  <img src="https://mailinapp.com/api/countdown?t=1737936000000&c=111827&s=..."
       width="220" height="40" alt="Due in 2d 4h 30m"
       style="display:block;max-width:100%;height:auto;margin-bottom:8px" />
  <div style="text-align:center;margin-top:8px">
    <a href="https://mailinapp.com/v/eyJhbGci..."
       style="display:inline-block;padding:10px 20px;background-color:#4f46e5;
              color:#ffffff;border-radius:6px;text-decoration:none;
              font-size:14px;font-weight:600">
      Submit answer
    </a>
  </div>
</div>

이는 단답형 답변 모드의 폴백을 보여줍니다: 답변을 일반 링크에 미리 채워 넣을 수 없으므로, 폴백은 /act 확인 페이지가 아니라 호스팅된 라이브 뷰로 연결되는 링크입니다.

관련 페이지