3-1.실습: 설문지 만들기 - ChatGPT+Apps Script

일반적인 구글 설문 만들기 위치는 구글 우측 상단에서 Forms를 선택
하지만, 모든 설문을 입력하고 설정해야 하는 노가다 작업
AI와 구글 Apps Script를 활용하여 효율적으로 작업 가능

1. 설문 항목 만들기

실습 주제: 브랜드 X 인지도 조사
설문 항목을 만들어 달라고 ChatGPT에게 프롬프팅
프롬프트 엔지니어링 공식에 따라서 더 상세하게 작성하면 좋음.
(일-맥락-예시-역할-폼-톤-Do&Don'ts)
ChatGPT: 새로운 브랜드 인지도 설문을 하려고 해. 브랜드 이름은 X. 설문 문항 10개만 제안해줘.
🔹ChatGPT가 만들어준 브랜드 X 인지도 설문 문항 (예시 10개)
1.
브랜드 인지도
브랜드 X를 들어본 적이 있으신가요?
예 / 아니오
2.
최초 인지 경로
브랜드 X를 처음 알게 된 경로는 무엇인가요?
TV/라디오 광고
온라인 광고 (SNS, 유튜브 등)
지인 추천
매장 방문
기타 (직접 입력)
3.
브랜드 연상 이미지
브랜드 X 하면 어떤 이미지를 가장 먼저 떠올리시나요?
세련됨
합리적 가격
품질 우수
친근함
잘 모르겠다
4.
브랜드 친숙도
브랜드 X에 대해 얼마나 친숙하다고 느끼시나요?
전혀 모른다 (1) ~ 매우 잘 알고 있다 (5)
5.
제품/서비스 이용 경험
브랜드 X의 제품/서비스를 사용해본 적이 있습니까?
예 / 아니오
6.
사용 빈도 (이용 경험자만 응답)
브랜드 X를 얼마나 자주 이용하시나요?
주 1회 이상
월 1~3회
연 1~2회
사용 경험 없음
7.
만족도 평가
브랜드 X 제품/서비스에 대한 전반적인 만족도를 평가해 주세요.
매우 불만족 (1) ~ 매우 만족 (5)
8.
경쟁 브랜드 비교
브랜드 X는 경쟁 브랜드(예: A, B, C)에 비해 어떤 수준이라고 생각하시나요?
매우 낮다 (1) ~ 매우 높다 (5)
9.
향후 구매 의사
앞으로 브랜드 X 제품/서비스를 구매할 의사가 있습니까?
전혀 없다 (1) ~ 매우 있다 (5)
10.
개선 의견 (개방형 질문)
브랜드 X가 개선하면 좋을 점이나 바라는 점을 자유롭게 적어주세요.

2. 구글 시트에 질문과 답변을 데이터베이스 형태로 정리하기

ChatGPT: 먼저 구글 시트에 질문과 답변보기를 데이터베이스 형태로 넣고, 구글 폼으로 만들고 싶어 먼저 구글 시트에 어떤 방식으로 입력하면 좋을까?
ChatGPT가 아래 테이블 형태로 설문을 정리해 줌
Q_No
Question_Text
Type
Options
Required
1
브랜드 X를 들어본 적이 있으신가요?
multiple
예;아니오
TRUE
2
브랜드 X를 처음 알게 된 경로는 무엇인가요?
multiple
TV/라디오 광고;온라인 광고(SNS, 유튜브 등);지인 추천;매장 방문;기타
TRUE
3
브랜드 X 하면 가장 먼저 떠오르는 이미지는?
multiple
세련됨;합리적 가격;품질 우수;친근함;잘 모르겠다
TRUE
4
브랜드 X에 대해 얼마나 친숙하다고 느끼시나요?
scale
1-5
TRUE
5
브랜드 X의 제품/서비스를 사용해본 적 있습니까?
multiple
예;아니오
TRUE
6
브랜드 X를 얼마나 자주 이용하시나요?
multiple
주 1회 이상;월 13회;연 12회;사용 경험 없음
TRUE
7
브랜드 X 제품/서비스에 대한 전반적 만족도
scale
1-5
TRUE
8
경쟁 브랜드 대비 브랜드 X의 수준은?
scale
1-5
TRUE
9
앞으로 브랜드 X를 구매할 의사가 있습니까?
scale
1-5
TRUE
10
브랜드 X가 개선하면 좋을 점은?
paragraph
-
FALSE
위 테이블을 Google Sheet에 붙여넣기
구글 Sheet 여는 법 1 : drive.google.com
구글 Sheet 여는 법 1 : chrome 브라우저 주소 창에 'sheet.new' 입력

3. Apps Script로 설문 만들기

설문 만들어주는 코드 생성하기
ChatGPT: 방금 만든 **구글 시트(질문 데이터베이스)**를 읽어서 자동으로 Google Form을 생성하는 Apps Script 코드 만들어줘
function createFormFromSheet() { // 현재 시트 가져오기 var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var data = sheet.getDataRange().getValues(); // 첫 행(헤더)은 제외 var headers = data[0]; var rows = data.slice(1); // 새로운 Google Form 생성 var form = FormApp.create("브랜드 X 인지도 및 태도 조사"); form.setDescription("브랜드 X에 대한 인지도, 태도, 이용 경험, 구매 의사를 파악하기 위한 설문입니다."); // 응답 저장용 스프레드시트 생성 후 연결 var ss = SpreadsheetApp.create("brand_x_survey_responses"); form.setDestination(FormApp.DestinationType.SPREADSHEET, ss.getId()); // 행 반복 → 질문 생성 rows.forEach(function(row) { var qNo = row[0]; var question = row[1]; var type = row[2].toLowerCase(); var options = row[3] ? row[3].toString().split(";") : []; var required = (row[4] === true || row[4] === "TRUE"); var item; switch (type) { case "multiple": // 객관식 단일 선택 item = form.addMultipleChoiceItem() .setTitle(question) .setChoiceValues(options); break; case "checkbox": // 객관식 복수 선택 item = form.addCheckboxItem() .setTitle(question) .setChoiceValues(options); break; case "scale": // 척도형 (예: "1-5") var bounds = options[0].split("-"); var lower = parseInt(bounds[0], 10); var upper = parseInt(bounds[1], 10); item = form.addScaleItem() .setTitle(question) .setBounds(lower, upper); break; case "paragraph": // 서술형 item = form.addParagraphTextItem() .setTitle(question); break; default: Logger.log("지원되지 않는 유형: " + type); } // 필수 여부 설정 if (item && required) { item.setRequired(true); } }); Logger.log("응답 링크: " + form.getPublishedUrl()); Logger.log("편집 링크: " + form.getEditUrl()); }
구글 시트 > '확장 프로그램' > 'Apps Script' 선택
아래 Code.gs에 있는 'function my Function() ~~~' 을 모두 삭제
위 ChatGPT가 만들어준 코드를 Code.gs에 복붙 > '저장' 버튼 클릭
'실행' 버튼 클릭 > 권한 검토 클릭
내 계정 선택
'고급' 클릭
"'제목 없는 프로젝트(으)로 이동(안전하지 않음)" 선택
모두 선택 > 계속
실행 후 > 실행 로그에 응답 링크와 편집 링크가 나오면 OK!
응답 링크
https://docs.google.com/forms/d/e/1FAIpQLSd6vmWZOrjDecUpBzxo0fzTwLNrUxB9aG70IrBGbcjcbFEMqg/viewform
편집 링크
https://docs.google.com/forms/d/1AIKGqtV3BIa9wfbVYV26i_tHCOc6L363kkJfu6SBgbo/edit

4. 설문 수정하는 방법

빠른 수정: 편집 링크에서 바로 고치기
시트에서 수정 후, Apps Script 다시 실행
설문 문항을 구글 시트에서 데이터베이스 형태로 만들고 관리하는 이유
Contact : azureguy@empal.com / azureguy@cau.ac.kr