안녕하세요, 두루바퀴세상입니다 🙂
오늘은 구글시트 스크립트에서 모달창을 구현하는 방법과 활용법에 대해 깊이 있게 다뤄보겠습니다. 단순히 알림창(alert) 수준이 아니라, **사용자 입력을 받을 수 있는 진짜 모달창(UI)**을 띄우고, 데이터를 처리하며, 업무 효율을 극대화하는 방법을 정리했습니다.

✅ 핵심 요약
✔ 구글시트 스크립트(Apps Script)에서 SpreadsheetApp.getUi().showModalDialog() 로 모달창 구현 가능
✔ HTMLService를 이용해 HTML/CSS/JS 기반 UI 생성 → 입력값을 시트와 연동
✔ 업무 자동화(예: 데이터 등록, 검색 필터, 보고서 확인)에서 자주 활용
✔ 2025년 기준, Material Design 스타일 UI와 Google Workspace Add-on 연계가 최신 트렌드
✔ FAQ: “모달창과 사이드바 차이는?”, “모바일에서도 되나요?”, “보안 이슈는?”
❓ 구글시트 스크립트에서 모달창이란 무엇인가요?
구글시트의 기본 대화상자는 alert(), prompt() 같은 단순 기능만 제공합니다. 하지만 Apps Script + HTMLService를 활용하면, 웹 브라우저 수준의 **모달창(Modal Dialog)**을 띄울 수 있습니다.
즉, 단순 경고창이 아니라 폼 입력, 버튼 클릭, 검색 필터 같은 인터랙션이 가능합니다.
예시 코드:
❓ 모달창은 어디에 활용되나요?
대표적인 활용처는 다음과 같습니다:
- 데이터 입력폼
- 직원 출근부 작성
- 신규 거래처 등록
- 고객 상담 기록 저장
- 검색 & 필터링 UI
- 특정 조건으로 데이터 검색
- 드롭다운 메뉴 + 버튼으로 결과 시트 출력
- 리포트 확인창
- 집계 결과를 시각화된 차트와 함께 모달창에 띄움
- 승인/거절 버튼을 눌러 워크플로우 자동화
- 사용자 안내 / 튜토리얼
- 첫 실행 시 “도움말 모달창”
- 관리자 공지 팝업
❓ 모달창 만들기, 어떻게 하나요?
1단계. HTML 파일 생성
Apps Script → 파일 → 새 파일 → HTML 파일(modalForm.html) 추가
2단계. Apps Script에서 불러오기
3단계. 실행 & 테스트
- showMyModal() 실행
- 모달창에서 입력 후 저장 버튼 클릭 → 시트에 데이터 반영
📊 2025년 최신 동향
- Material Design 적용: 구글 UI 라이브러리를 활용해 모바일 친화적 UI 제작 가능
- Workspace Add-on 통합: 사이드바/모달창을 구글독스·메일 등과 연계
- AI 연계: 입력된 데이터를 AI 분석 API에 넘겨 자동 요약/추천 기능 제공
💡 실전 활용 팁
- 모바일 고려
→ setWidth(300), setHeight(400) 등 세로형 레이아웃 활용 - 보안 강화
→ 입력값 검증(sanitize 함수) 반드시 추가
→ 민감 정보는 PropertiesService 대신 시트 암호화 저장 고려 - 디자인 향상
→ CSS 추가로 “브랜드 색상” 반영
→ 버튼에 hover 효과 주기
❓ 자주 묻는 질문 (FAQ)
Q1. 모달창과 사이드바 차이는 뭔가요?
- 모달창: 화면 중앙에 떠서 작업을 멈추고 입력받음 (중요 작업, 승인 시 적합)
- 사이드바: 오른쪽에 열려서 시트와 병행 작업 가능 (검색, 필터링에 적합)
Q2. 모바일에서도 모달창이 작동하나요?
네, 작동합니다. 다만 화면 크기에 맞춘 CSS 반응형 디자인이 필수입니다.
(2025년 구글 Workspace 모바일 앱 기준 정상 동작)
Q3. 보안 문제는 없나요?
직접적인 보안 위험은 적지만, 민감 데이터는 서버측 검증을 반드시 거쳐야 합니다.
특히 이메일·전화번호 저장 시 암호화 권장.
📝 정리
오늘은 구글시트 스크립트 모달창 기능을 처음부터 끝까지 설명했습니다.
- showModalDialog() + HTMLService로 웹 수준 UI 가능
- 데이터 입력, 검색, 보고서, 안내 등 다양한 활용 가능
- 2025년에는 AI + Add-on 연계가 새로운 트렌드
구글시트 자동화는 단순 매크로가 아닌, 진짜 업무용 앱으로 진화 중입니다.
여러분도 모달창 기능을 활용해 더 편리한 업무 환경을 만들어보세요 🚴♂️
읽어주셔서 감사합니다!
궁금한 점이 있다면 댓글로 남겨주세요 🙏

댓글