Google Forms 퀴즈 - ChatGPT와 Google Forms를 이용해 퀴즈 생성

소개

시도하고자 했던 것과 그 이유를 알려주세요.

ChatGPT를 활용해 Google Forms와 관련된 퀴즈를 만들고, 실제 Google Forms를 활용해 퀴즈를 만들고자 했습니다.

7월 12일 오프모임 때 배운 Google Forms를 응용해 보고, 이론과 실제를 접목해 보기 위함이었습니다.

진행 방법

사용한 도구들

  • Google Sheets: 통계 분석, 자동 채점 등 확인(응답 시트 자동 생성). 대시보드 만들기

  • Google Apps Script: 10문제 퀴즈 자동 생성

  • 트리거 설정: 응답자가 퀴즈를 제출할 때마다 자동 실행되도록 설정

  • ChatGPT: 코드 생성

전체 흐름

  1. ChatGPT로 Google Forms 레벨 1 퀴즈 생성

Google 트레이너 자격시험 레벨 1 스타일에 맞게 Google Forms와 관련된 10문제를 생성해 달라고 요청했는데, 문제 유형이나 내용을 신뢰할 수 없어 <Google for Education> 내의 'Google 설문지 시작하기'를 학습시킴

Google Forms로 퀴즈 만들기 및 채점

https://support.google.com/docs/answer/7032287?hl=en

  1. Google Forms를 이용해 퀴즈 생성

응답 확인 + 자동화 기능을 추가하기 위해 '설정' 수정 (설정에 따라 제공되는 통계들)

노란색 막대와 노란색 번호가있는 한국 앱의 스크린 샷

  1. ChatGPT를 통해 생성한 Google Apps Script 코드 복붙 & 트리거 설정

1) 채점 결과가 내 메일로 전송되는지 확인하기 위해 테스트용 코드 생성

  • 내가 직접 테스트할 때는 트리거 불필요

function testSendCustomScoreEmail() {
  var email = "[email protected]";   // 
  var name = "김지연";             // 
  var score = 9;                 // 

  var message = "";
  if (score >= 9) {
    message = "🎉 " + name + "님, 최고 점수입니다! (" + score + "점)";
  } else if (score >= 7) {
    message = name + "님, 잘 하셨어요! (" + score + "점)";
  } else {
    message = name + "님, 괜찮아요. 다음엔 더 잘할 수 있어요! (" + score + "점)";
  }

  var subject = "[퀴즈 결과 안내]";
  MailApp.sendEmail(email, subject, message);
}

2) 실제 자동 이메일 전송용 Google Apps Script 코드 생성

  • Google Sheets를 통해 오류 발생 원인 발견 -> 수정된 Apps Script 코드 (이름 없이)

function sendCustomScoreEmail(e) {
  var email = e.values[1];         // 이메일 주소 (두 번째 열)
  var scoreText = e.values[2];     // "9 / 10" 같은 형식
  var score = Number(scoreText.split("/")[0].trim()); // 숫자만 추출

  Logger.log("이메일 전송 대상: " + email);
  Logger.log("점수: " + score);

  var message = "";
  if (score >= 10) {
    message = `🎉 훌륭합니다! 만점입니다. (${score}점)`;
  } else if (score >= 9) {
    message = `좋은 결과입니다! (${score}점)`;
  } else {
    message = `괜찮아요, 다시 도전해보세요. (${score}점)`;
  }

  var subject = "[Google Forms 퀴즈 결과]";
  MailApp.sendEmail(email, subject, message);
}

3) 자동 실행을 위해 트리거 설정 : 최종 실행과 오류율 확인 + 새 응답 제출

  • 시트 > 확장 프로그램 > Apps Script > 트리거

4) 성적표 PDF 파일 발송을 위한 Google Apps Script 코드 생성 & 트리거 설정

function sendScoreAsPdf(e) {
  const email = e.values[1];  // 이메일 (두 번째 열)
  const rawScore = e.values[2];  // 점수 (예: "7 / 10")
  const score = Number(rawScore.split('/')[0].trim());  // 숫자만 추출
  const timestamp = e.values[0]; // 제출 시간 (첫 번째 열)

  let feedback = "";
  if (score === 10) {
    feedback = "🎉 훌륭합니다! 만점입니다.";
  } else if (score >= 8) {
    feedback = "좋은 결과입니다!";
  } else {
    feedback = "괜찮아요, 다시 도전해보세요.";
  }

  // 여기에 본인의 Google Docs 템플릿 문서 ID 넣기!
  const docId = "여기에_당신의_문서_ID"; // 예: "1b5tySAHT2ma0pl9CK3wMu7G6MbC29-a089Bz4nitB4E"

  // 템플릿 복사 → 개인화
  const tempDoc = DriveApp.getFileById(docId).makeCopy();
  const newDoc = DocumentApp.openById(tempDoc.getId());
  let body = newDoc.getBody();

  // 텍스트 치환
  body.replaceText('{{제출일시}}', timestamp);
  body.replaceText('{{점수}}', score + "점");
  body.replaceText('{{피드백}}', feedback);
  newDoc.saveAndClose();

  // PDF 변환
  const pdf = DriveApp.getFileById(tempDoc.getId()).getAs(MimeType.PDF);
  const subject = "[Google Forms 퀴즈 결과 안내]";
  const message = "첨부된 PDF 파일에서 결과를 확인해보세요.";

  // 이메일 전송
  MailApp.sendEmail({
    to: email,
    subject: subject,
    body: message,
    attachments: [pdf]
  });

  // 임시 문서 삭제 (선택사항)
  DriveApp.getFileById(tempDoc.getId()).setTrashed(true);
}

  1. 기타 Google Forms 기능 실습

1) Google Sheets 대시보드 만들기 : 성적 시각화 요약

1단계: 요약 통계 함수 추가(대시보드 시트에 작성)

항목

함수 예시

응답 수

B2

=COUNTA('설문지 응답 시트1'!B2:B)

평균 점수

B3

=AVERAGE('설문지 응답 시트1'!C2:C)

최고 점수

B4

=MAX('설문지 응답 시트1'!C2:C)

최저 점수

B5

=MIN('설문지 응답 시트1'!C2:C)

2단계: 점수 분포 그래프 만들기

막대 차트를 보여주는 Google 스프레드 시트의 스크린 샷

2) PDF 성적표 자동 생성 및 전송

1단계: Google Docs에 성적표 템플릿 문서 만들기

📄 [성적표]

제출일시: {{제출일시}}

점수: {{점수}} / 10점

피드백: {{피드백}}

수고하셨습니다!

2단계 : 문서 ID 복사 -> Apps Script에 붙여넣기

https://docs.google.com/document/d/1b5tySAHT2ma0pl9CK3wMu7G6MbC29-a089Bz4nitB4E/edit?tab=t.0

const docId = "1b5tySAHT2ma0pl9CK3wMu7G6MbC29-a089Bz4nitB4E";

3단계 : 저장하고 퀴즈 제출

Google 양식

-> 점수가 나오지 않아 코드 수정 후 완료 *트리거는 수정하지 않음

Google 양식

3) Google Forms에서 상단 이미지 교체하기 & 색상 변환

'테마 맞춤설정'을 통해 상단 이미지 교체(Canva에서 수정) & 글씨 수정 & 배경 색상 수정

Google Forms Korean Google Forms 한국 Google Forms Google Forms 한국 Google Forms Korean

4) 공유

한국어와 중국어가있는 앱의 스크린 샷

[최종 결과물] Google Forms 퀴즈 – 레벨 1 연습(10문항)

https://forms.gle/y3jHhnUes3NRzjJc6

결과와 배운 점

  1. 배운 점과 나만의 꿀팁을 알려주세요.

Google Forms의 기능을 이론적으로, 실제 활용을 통해 알게 되었습니다.

* Google Forms 동영상 + ChatGPT '초등학생도 이해하기 쉽게 설명해줘'

  1. 과정 중에 어떤 시행착오를 겪었나요?

ChatGPT가 생성해준 퀴즈 문항과 Apps Script 코드가 불일치하여 많은 어려움이 있었습니다.

Sheets를 살펴보면서 오류를 발견했는데, 코드를 읽어보는 힘을 키워야 할 것 같습니다.

  1. 도움이 필요한 부분이 있나요?

오프라인 모임의 실습 + ChatGPT

  1. 앞으로의 계획이 있다면 들려주세요.

  • Google Forms 외에도 다양한 Google Workspace for Education 도구들을 활용해 보고자 합니다.

  • 실제 문제의 정답이 맞는지 확인 후 각 구글 도구들마다 간단 퀴즈를 생성해볼까 합니다.

도움 받은 글

12일 오프라인 모임 때 Miki(유미선) 공동스터디장님의 지도와

막강한 실력을 가지신 버디님(엘리Kim님) 및 구글자격증반 회원님(오프 참석자분)들의 도움이 컸습니다.

2
2개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요