3-3.What is Apps Script?

๐Ÿ“‘ Google Apps Script ์†Œ๊ฐœ

โ€ข
Google Workspace ์ „์šฉ ์ž๋™ํ™” ํ”Œ๋žซํผ
โ€ข
JavaScript ๊ธฐ๋ฐ˜ โ†’ ์ง„์ž… ์žฅ๋ฒฝ ๋‚ฎ์Œ
โ€ข
ํด๋ผ์šฐ๋“œ ์‹คํ–‰ ํ™˜๊ฒฝ โ†’ ๋ณ„๋„ ์„œ๋ฒ„ ๋ถˆํ•„์š”
โ€ข
์†์‰ฌ์šด ๋ฐฐํฌ โ†’ ์›น ์•ฑ, ์• ๋“œ์˜จ, API ํ˜ธ์ถœ ์ง€์›
โ€ข
๋Œ€ํ‘œ ํ™œ์šฉ โ†’ ๋ฐ˜๋ณต์—…๋ฌด ์ž๋™ํ™”, ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, ๊ฐ„๋‹จํ•œ ์›น์•ฑ ๊ตฌ์ถ•

1. Google Apps Script๋ž€?

โ€ข
Google์ด ์ œ๊ณตํ•˜๋Š” ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ์Šคํฌ๋ฆฝํŠธ ํ”Œ๋žซํผ์œผ๋กœ, ๋ณ„๋„์˜ ์„ค์น˜๋‚˜ ์„œ๋ฒ„ ๊ตฌ์ถ• ์—†์ด ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ฐ”๋กœ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ ๊ฐ€๋Šฅ
โ€ข
Google Workspace(Gmail, Sheets, Docs, Calendar ๋“ฑ) ๊ณผ ๋ฐ€์ ‘ํ•˜๊ฒŒ ์—ฐ๋™ โ†’ ๋ฐ˜๋ณต์ ์ธ ์ž‘์—… ์ž๋™ํ™”์— ์ตœ์ ํ™”
โ€ข
JavaScript ๋ฌธ๋ฒ•์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฏ€๋กœ ์›น ๊ฐœ๋ฐœ ๊ฒฝํ—˜์ด ์žˆ์œผ๋ฉด ์‰ฝ๊ฒŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ

2. ์ฃผ์š” ํŠน์ง•

1.
ํด๋ผ์šฐ๋“œ ์‹คํ–‰ ํ™˜๊ฒฝ
โ€ข
์‚ฌ์šฉ์ž๊ฐ€ ์ฝ”๋“œ๋ฅผ ๋กœ์ปฌ์— ์„ค์น˜ํ•  ํ•„์š” ์—†์Œ
โ€ข
Google์˜ ์„œ๋ฒ„์—์„œ ์‹คํ–‰ โ†’ ํ™•์žฅ์„ฑ๊ณผ ์•ˆ์ •์„ฑ ํ™•๋ณด
2.
๊ฐ„๋‹จํ•œ ๊ฐœ๋ฐœ/๋ฐฐํฌ ๊ณผ์ •
โ€ข
Apps Script ์—๋””ํ„ฐ(์›น ๊ธฐ๋ฐ˜ IDE) ์ œ๊ณต
โ€ข
ํด๋ฆญ ๋ช‡ ๋ฒˆ์œผ๋กœ ์›น ์•ฑ, Add-on, API ์—”๋“œํฌ์ธํŠธ ๋“ฑ์œผ๋กœ ๋ฐฐํฌ ๊ฐ€๋Šฅ
3.
Google Workspace ์—ฐ๋™
โ€ข
Gmail ์ž๋™ ์‘๋‹ต, Google Sheet ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, Calendar ์ผ์ • ๋“ฑ๋ก ๋“ฑ ์—…๋ฌด ์ž๋™ํ™”์— ํŠนํ™”
4.
๋‹ค์–‘ํ•œ ํŠธ๋ฆฌ๊ฑฐ(Trigger) ์ง€์›
โ€ข
์‹œ๊ฐ„ ๊ธฐ๋ฐ˜(๋งค์ผ/๋งค์ฃผ ์‹คํ–‰)
โ€ข
์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜(์‹œํŠธ ์ˆ˜์ • ์‹œ, ํผ ์ œ์ถœ ์‹œ ๋“ฑ)
5.
๋ฌด๋ฃŒ ์‚ฌ์šฉ ๋ฐ ํ™•์žฅ์„ฑ
โ€ข
๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฌด๋ฃŒ ์ œ๊ณต (์ผ์ผ ์‹คํ–‰ ํšŸ์ˆ˜ ๋“ฑ ํ• ๋‹น๋Ÿ‰ ์ œํ•œ ์žˆ์Œ)
โ€ข
ํ•„์š” ์‹œ Google Cloud Platform๊ณผ ์—ฐ๊ณ„ํ•˜์—ฌ ํ™•์žฅ ๊ฐ€๋Šฅ

3. ๋Œ€ํ‘œ์ ์ธ ํ™œ์šฉ ์‚ฌ๋ก€

โ€ข
Gmail ์ž๋™ํ™”: ํŠน์ • ํ‚ค์›Œ๋“œ ๋ฉ”์ผ ์ž๋™ ๋ถ„๋ฅ˜/์‘๋‹ต
โ€ข
Google Sheet ํ™œ์šฉ: ๋ฐ์ดํ„ฐ ์ •์ œ, ๋ณด๊ณ ์„œ ์ž๋™ ์ƒ์„ฑ
โ€ข
ํผ(Form) ์‘์šฉ: ์„ค๋ฌธ ๊ฒฐ๊ณผ ์ž๋™ ์ €์žฅ ๋ฐ ์š”์•ฝ ๋ฉ”์ผ ๋ฐœ์†ก
โ€ข
์›น ์•ฑ(Web App): ์ž…๋ ฅํผ, ๊ฐ„๋‹จํ•œ ๋Œ€์‹œ๋ณด๋“œ, ์˜ˆ์•ฝ ์‹œ์Šคํ…œ ๊ตฌ์ถ•

๐Ÿ“‘ Google Apps Script ์‹คํ–‰ ๊ตฌ์กฐ & ์—๋””ํ„ฐ ํ™˜๊ฒฝ

โ€ข
ํ”„๋กœ์ ํŠธ = ์ฝ”๋“œ ๋ชจ์Œ์ง‘
โ€ข
ํŒŒ์ผ ์ข…๋ฅ˜: ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ(.gs), ์›น ํ™”๋ฉด(HTML)
โ€ข
์‹คํ–‰ ๋ฐฉ๋ฒ•: ์ง์ ‘ ์‹คํ–‰ / ์ž๋™ ์‹คํ–‰(ํŠธ๋ฆฌ๊ฑฐ) / ์›น ์•ฑ ๋ฐฐํฌ
โ€ข
์—๋””ํ„ฐ ๊ธฐ๋Šฅ: ์ฝ”๋“œ ์ž‘์„ฑ, ์‹คํ–‰, ๋กœ๊ทธ ํ™•์ธ

1. Apps Script์˜ ๊ตฌ์กฐ

โ€ข
ํ”„๋กœ์ ํŠธ(Project): ํ•˜๋‚˜์˜ ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ ๋‹จ์œ„, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŒŒ์ผ์ด ๋“ค์–ด ์žˆ์Œ
โ€ข
์ฃผ์š” ํŒŒ์ผ ์ข…๋ฅ˜:
1.
์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ (.gs)
โ€ข
JavaScript ๋ฌธ๋ฒ•์œผ๋กœ ์ž‘์„ฑ
โ€ข
๊ธฐ๋Šฅ(ํ•จ์ˆ˜)์„ ์ •์˜ํ•˜๋Š” ๊ณณ
โ€ข
์˜ˆ: "๋ฉ”์ผ ์ž๋™ ๋ฐœ์†ก" ํ•จ์ˆ˜ ๋งŒ๋“ค๊ธฐ
2.
HTML ํŒŒ์ผ
โ€ข
์›น ํ™”๋ฉด(ํผ, ๋ฒ„ํŠผ, ๊ฒฐ๊ณผ ํ™”๋ฉด ๋“ฑ)์„ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉ
โ€ข
์˜ˆ: ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฆ„ ์ž…๋ ฅ โ†’ ์‹œํŠธ์— ์ €์žฅ
๐Ÿ‘‰ ์‰ฝ๊ฒŒ ๋งํ•ด, .gs ํŒŒ์ผ์€ "๋‘๋‡Œ(์ƒ๊ฐํ•˜๋Š” ๋ถ€๋ถ„)", HTML ํŒŒ์ผ์€ "์–ผ๊ตด(๋ณด์ด๋Š” ๋ถ€๋ถ„)" ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋จ.

2. ์‹คํ–‰ ๋ฐฉ์‹

1.
์ง์ ‘ ์‹คํ–‰
โ€ข
๊ฐœ๋ฐœ์ž๊ฐ€ ์—๋””ํ„ฐ์—์„œ "โ–ถ ์‹คํ–‰ ๋ฒ„ํŠผ" ๋ˆŒ๋Ÿฌ์„œ ํ…Œ์ŠคํŠธํ•  ๋•Œ ์‚ฌ์šฉ
2.
ํŠธ๋ฆฌ๊ฑฐ(Trigger) ์‹คํ–‰
โ€ข
ํŠน์ • ์กฐ๊ฑด์ด ๋ฐœ์ƒํ•  ๋•Œ ์ž๋™ ์‹คํ–‰
โ€ข
์˜ˆ: ์‹œํŠธ๊ฐ€ ์ˆ˜์ •๋˜๋ฉด โ†’ ์ž๋™์œผ๋กœ ํ•ฉ๊ณ„ ๊ณ„์‚ฐ
โ€ข
์˜ˆ: ๋งค์ผ ์•„์นจ 9์‹œ์— โ†’ ๋ฆฌํฌํŠธ ๋ฉ”์ผ ๋ณด๋‚ด๊ธฐ
3.
์›น ์•ฑ(Web App) ๋ฐฐํฌ ์‹คํ–‰
โ€ข
ํ”„๋กœ๊ทธ๋žจ์„ ์ธํ„ฐ๋„ท ์ฃผ์†Œ(URL)๋กœ ๋ฐฐํฌํ•ด์„œ, ๋ˆ„๊ตฌ๋‚˜ ์ ‘์† ๊ฐ€๋Šฅ
โ€ข
์˜ˆ: ์˜ˆ์•ฝ ํผ, ์„ค๋ฌธ ์‘๋‹ต ํŽ˜์ด์ง€
๐Ÿ‘‰ ์‰ฝ๊ฒŒ ๋งํ•ด, "๋‚ด๊ฐ€ ์ง์ ‘ ๋Œ๋ฆฌ๊ธฐ" / "์ž๋™์œผ๋กœ ๋Œ๋ฆฌ๊ธฐ" / "์›น์œผ๋กœ ์—ด์–ด์ฃผ๊ธฐ" ์„ธ ๊ฐ€์ง€ ์‹คํ–‰ ๋ฐฉ์‹์ด ์žˆ์Œ.

3. ์—๋””ํ„ฐ ํ™˜๊ฒฝ

โ€ข
์ฝ”๋“œ ์ž…๋ ฅ ์ฐฝ: ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋Š” ๊ณต๊ฐ„
โ€ข
์‹คํ–‰ ๋ฒ„ํŠผ(โ–ถ): ์ฝ”๋“œ๋ฅผ ๋Œ๋ ค๋ณด๋Š” ๋ฒ„ํŠผ
โ€ข
๋กœ๊ทธ ํ™•์ธ(Console / Execution Log): ์‹คํ–‰๋œ ๊ฒฐ๊ณผ๋‚˜ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ํ™•์ธ
โ€ข
๋””๋ฒ„๊น…(Debug): ์ฝ”๋“œ๊ฐ€ ์–ด๋””์„œ ์ž˜๋ชป๋๋Š”์ง€ ์ถ”์ 
๐Ÿ‘‰ ๋งˆ์น˜ ๊ธ€์„ ์“ฐ๋Š” ์›Œ๋“œ(Word) ์ฒ˜๋Ÿผ, Apps Script๋„ ์ฝ”๋“œ๋ฅผ ์“ฐ๋Š” ์ „์šฉ ์›Œ๋“œ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์›€.

๐Ÿ“‘ Google Apps Script ์›น ์•ฑ ๊ธฐ๋ณธ ์›๋ฆฌ

โ€ข
์›น ์•ฑ = ์ฃผ์†Œ๋กœ ์—ฌ๋Š” ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ
โ€ข
ํ๋ฆ„: ์ ‘์† โ†’ ํ™”๋ฉด ๋ณด๊ธฐ โ†’ ์ž…๋ ฅ โ†’ ์ฒ˜๋ฆฌ โ†’ ๊ฒฐ๊ณผ ํ™•์ธ
โ€ข
ํŠน์ง•: ์„œ๋ฒ„ ์—†์ด, ๊ตฌ๊ธ€๋งŒ์œผ๋กœ ๊ฐ€๋Šฅ

1. ์›น ์•ฑ(Web App)์ด๋ž€?

โ€ข
"์ธํ„ฐ๋„ท ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰๋˜๋Š” ์•ฑ" - ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ตฌ๊ธ€ ๋ฉ”์ผ, ์นด์นด์˜คํ†ก ์›น๋ฒ„์ „ ๋“ฑ
โ€ข
์ฃผ์š” ํŠน์ง•
โ—ฆ
์„ค์น˜ ์—†์ด ์ธํ„ฐ๋„ท๋งŒ ์—ฐ๊ฒฐ๋˜๋ฉด ์–ธ์ œ ์–ด๋””์„œ๋“  ์‚ฌ์šฉ ๊ฐ€๋Šฅ
โ—ฆ
PC, ๋ชจ๋ฐ”์ผ, ํƒœ๋ธ”๋ฆฟ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๊ธฐ์—์„œ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™
โ—ฆ
์•ฑ์ฒ˜๋Ÿผ ๋™์ ์ธ ํ™”๋ฉด ๊ตฌ์„ฑ๊ณผ ์‚ฌ์šฉ์ž์™€์˜ ์ƒํ˜ธ์ž‘์šฉ ๊ฐ€๋Šฅ
โ—ฆ
์—…๋ฐ์ดํŠธ๊ฐ€ ์ฆ‰์‹œ ๋ฐ˜์˜๋˜์–ด ํ•ญ์ƒ ์ตœ์‹  ์ƒํƒœ ์œ ์ง€
์ฆ‰, ์›น์•ฑ์€ ์•ฑ์ฒ˜๋Ÿผ ๋ณด์ด๊ณ  ์ž‘๋™ํ•˜์ง€๋งŒ, ์›น์‚ฌ์ดํŠธ์ฒ˜๋Ÿผ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ์ ‘์†ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ, ๊ฐ„ํŽธํ•˜๊ณ  ๋น ๋ฅธ ์ ‘๊ทผ์ด ์žฅ์ ์ธ ์„œ๋น„์Šค
โ€ข
๊ตฌ๊ธ€์ด ์„œ๋ฒ„ ์—ญํ• ์„ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์—, ์šฐ๋ฆฌ๊ฐ€ ์ง์ ‘ ์„œ๋ฒ„๋ฅผ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ๊ด€๋ฆฌํ•  ํ•„์š” ์—†์Œ
โ€ข
ํ™œ์šฉ ์‚ฌ๋ก€:
โ—ฆ
์˜ˆ์•ฝ ์‹ ์ฒญ ํŽ˜์ด์ง€
โ—ฆ
๊ฐ„๋‹จํ•œ ์„ค๋ฌธ
โ—ฆ
์ž๋™์œผ๋กœ ์ •๋ฆฌ๋œ ๊ฒฐ๊ณผ ๋ณด์—ฌ์ฃผ๊ธฐ

2. ๋™์ž‘ ํ๋ฆ„

1.
์‚ฌ์šฉ์ž๊ฐ€ ์›น ์ฃผ์†Œ๋ฅผ ํด๋ฆญ โ†’ ํ™”๋ฉด ์—ด๋ฆผ
2.
ํ™”๋ฉด์— ์ž…๋ ฅ ํผ์ด๋‚˜ ๋ฒ„ํŠผ์ด ๋ณด์ž„ โ†’ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅ
3.
์ž…๋ ฅ๋œ ๋‚ด์šฉ์ด ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ „๋‹ฌ๋จ โ†’ ์ฒ˜๋ฆฌ(์ €์žฅ, ๊ณ„์‚ฐ)
4.
์ฒ˜๋ฆฌ๋œ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค์‹œ ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚จ โ†’ ํ”ผ๋“œ๋ฐฑ ์ œ๊ณต
๐Ÿ‘‰ ์‰ฝ๊ฒŒ ๋งํ•ด:
"์‚ฌ์šฉ์ž(์ž…๋ ฅ) โ†” ํ”„๋กœ๊ทธ๋žจ(์ฒ˜๋ฆฌ) โ†” ์‚ฌ์šฉ์ž(๊ฒฐ๊ณผ)" ๋ผ๋Š” ์™•๋ณต ๊ตฌ์กฐ

3. ์ธ๋ฌธํ•™์  ๋น„์œ 

โ€ข
์›น ์•ฑ์€ ๋„์„œ๊ด€ ์‚ฌ์„œ ์„œ๋น„์Šค์™€ ๋น„์Šท
โ—ฆ
๋ฐฉ๋ฌธ์ž(์‚ฌ์šฉ์ž)๊ฐ€ ์ฑ…์„ ์š”์ฒญ(์ž…๋ ฅ)
โ—ฆ
์‚ฌ์„œ(ํ”„๋กœ๊ทธ๋žจ)๊ฐ€ ์ฑ…์„ ์ฐพ์•„ ์ฒ˜๋ฆฌ
โ—ฆ
๋‹ค์‹œ ๋ฐฉ๋ฌธ์ž์—๊ฒŒ ์ฑ…์„ ๊ฑด๋„ค์คŒ(๊ฒฐ๊ณผ ์ œ๊ณต)
๐Ÿ‘
Contact : azureguy@empal.com / azureguy@cau.ac.kr