์ง์ ‘ ๋”ฐ๋ผ์„œ ํœด๊ฐ€ ์กฐํšŒ ๋ด‡์„ ๋งŒ๋“ค์–ด ๋ณด์„ธ์š”.
์•ˆ๋…•ํ•˜์„ธ์š”!
๊ณ ๊ฐ๋งŒ์กฑ 120%๋ฅผ ์œ„ํ•œ ๋””์ง€ํ„ธ์ปจํƒ์„ผํ„ฐ ๊นƒํ”Œ์ฑ—์ž…๋‹ˆ๋‹ค.

์ž„์ง์› ํœด๊ฐ€ ์กฐํšŒ ๋ด‡์„ ๊ธฐ์–ตํ•˜์‹œ๋‚˜์š”? ์ด ํœด๊ฐ€ ์กฐํšŒ ๋ด‡์„ ์—ฌ๋Ÿฌ๋ถ„๋„ ์ง์ ‘ ๋งŒ๋“ค์–ด ๋ณผ ์ˆ˜ ์žˆ๋„๋ก, ์˜ˆ์ œ์™€ ์ œ์ž‘๋ฒ•์„ ๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค.


ํŠนํžˆ ์˜ค๋Š˜ ์†Œ๊ฐœํ•ด๋“œ๋ฆด ํœด๊ฐ€ ์กฐํšŒ ๋ด‡ ์˜ˆ์ œ๋Š” ์šด์˜ํ•˜๊ณ  ์žˆ๋Š” ์„œ๋ฒ„๊ฐ€ ์—†์–ด๋„ ์‹œ์—ฐํ•ด๋ณผ ์ˆ˜ ์žˆ๋„๋ก, ๊ตฌ๊ธ€์ด ์ œ๊ณตํ•˜๋Š” ๋„๊ตฌ๋งŒ์„ ์ด์šฉํ•ด์„œ DB๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค๋“œ๋ฆด๊ฒŒ์š”.


์ œ์ž‘์— ์•ž์„œ, ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š” ๋ด‡์ธ์ง€ ๋‹ค์‹œ ํ•œ ๋ฒˆ ํ…Œ์ŠคํŠธํ•ด ๋ณด์„ธ์š”.

๐Ÿ‘‰๏ธ์—ฌ๊ธฐ๋ฅผ ๋ˆŒ๋Ÿฌ ๊นƒํ”Œ์ฑ— ์ฑ—๋ด‡์— ์ ‘์†ํ•œ ํ›„, ์ฑ—๋ด‡ ์ฒดํ—˜ํ•˜๊ธฐ โ†’ ๐Ÿ–๏ธํœด๊ฐ€ ์กฐํšŒ ๋ด‡ ์ฒดํ—˜ํ•˜๊ธฐ ์ˆœ์„œ๋Œ€๋กœ ๋ˆŒ๋Ÿฌ ์ง„ํ–‰ํ•ด ๋ณด์„ธ์š”.


์ฒดํ—˜์„ ๋งˆ์น˜๊ณ  ์˜ค์…จ๋‹ค๋ฉด, ๋ณธ๊ฒฉ์ ์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค๋“œ๋ฆด๊ฒŒ์š”.

PART 1: ๊ตฌ๊ธ€ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ ๋งŒ๋“ค๊ธฐ

์ž„์ง์› ํœด๊ฐ€ ์กฐํšŒ ๋ด‡์ด ์ž‘๋™ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”, ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ DB๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹œ๋‚˜๋ฆฌ์˜ค ๋ด‡์„ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐœ๋ฐœ์ž์™€ ์ „์šฉ ์„œ๋ฒ„ ๊ตฌ์ถ•์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ํœด๊ฐ€ ์กฐํšŒ ๋ด‡๊ณผ ๊ฐ™์ด ๊ฐ„๋‹จํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค ๋ด‡์€ ๊ตฌ๊ธ€ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ์™€ ๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์„ ์ด์šฉํ•ด ๋ณ„๋„์˜ ์„œ๋ฒ„ ์—†์ด๋„ ๋งŒ๋“ค์–ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ‘  ๊ตฌ๊ธ€ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ ์ƒ์„ฑ

๋จผ์ € ๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ์— ๋“ค์–ด๊ฐ€์„œ, ์ƒˆ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ๋ฅผ ๋งŒ๋“œ์„ธ์š”.

โ‘ก ๋ฐ์ดํ„ฐ ์ž…๋ ฅ ๋ฐ ์‹œํŠธ ์ด๋ฆ„ ๋ณ€๊ฒฝ

๋นˆ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ์— ์•„๋ž˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”. ์™ผ์ชฝ๋ถ€ํ„ฐ ๊ฐ๊ฐ ์ด๋ฆ„, ๋น„๋ฐ€๋ฒˆํ˜ธ, ์ž”์—ฌํœด๊ฐ€์ผ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์‹œ๋‚˜๋ฆฌ์˜ค ๋ด‡์ด ์—ฌ๊ธฐ์— ์ž…๋ ฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒ ๋ฐ ๋น„๊ตํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


๊ทธ๋ฆฌ๊ณ  ์Šคํ”„๋ ˆ๋“œ๋ฅผ ๋งŒ๋“ค๋ฉด ์ž๋™์œผ๋กœ ๋ถ€์—ฌ๋˜๋Š” ์‹œํŠธ ์ด๋ฆ„์ธ โ€œ์‹œํŠธ1โ€์„ bot_data์™€ ๊ฐ™์ด ์˜๋ฌธ์œผ๋กœ ๋ฐ”๊พธ์–ด ์ฃผ์„ธ์š”. HTTP ํ†ต์‹ ํ•  ๋•Œ ์‹œํŠธ ์ด๋ฆ„์ด URL์— ํฌํ•จ๋˜๊ฒŒ ๋˜๋ฏ€๋กœ, ์˜๋ฌธ์œผ๋กœ ๋ฐ”๊พธ์–ด์ฃผ๋Š” ๊ฒƒ์ด ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

โ‘ข ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ ๊ถŒํ•œ ๋ณ€๊ฒฝ

์Šคํ”„๋ ˆ๋“œ์‹œํŠธ ์šฐ์ธก ์ƒ๋‹จ์˜ ๊ณต์œ  ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๐Ÿ”—๋งํฌ ๋ณด๊ธฐ๋ฅผ ํด๋ฆญ, ๊ถŒํ•œ์„ ๋งํฌ๊ฐ€ ์žˆ๋Š” ๋ชจ๋“  ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ทฐ์–ด ๊ถŒํ•œ์„ ์ฃผ๋„๋ก ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋งํฌ ๋ณต์‚ฌ๋ฅผ ๋ˆŒ๋Ÿฌ URL ๋ณต์‚ฌํ•ด ๊ธฐ๋กํ•ด ๋‘ก๋‹ˆ๋‹ค.


์—ฌ๋Ÿฌ๋ถ„์—๊ฒŒ ์˜ˆ์ œ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ด ๋งํฌ์™€ ๊ฐ™์ด ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๋‘์—ˆ์œผ๋ฉฐ, ์ฃผ์†Œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์˜ ์ฃผํ™ฉ์ƒ‰ ๋ถ€๋ถ„์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.


https://docs.google.com/spreadsheets/d/1-IAR6ENKa9afaLjDyX77p93yE5GQQ38zGNb5SSDNRD0

PART 2: ๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์—์„œ API ํ‚ค ๋ฐ›๊ธฐ

์—ฌ๋Ÿฌ๋ถ„ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ ๊ตฌ๊ธ€ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ๋ฅผ ์™„์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ด์ œ ๊นƒํ”Œ์ฑ— ์‹œ๋‚˜๋ฆฌ์˜ค ๋ด‡์ด ๊ตฌ๊ธ€ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ์™€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค๋ฆฌ๋ฅผ ๋†”์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

โ‘  ๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์—์„œ ์ƒˆ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ด ์„œ๋น„์Šค ๊ฐ€์ž… ์ ˆ์ฐจ๋ฅผ ๋งˆ์นฉ๋‹ˆ๋‹ค. ์ขŒ์ธก ์ƒ๋‹จ์˜ ํ”„๋กœ์ ํŠธ ์„ ํƒ์„ ๋ˆŒ๋Ÿฌ, ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

์ดํ›„ ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์„ ์ •ํ•˜๊ณ  ๋งŒ๋“ค๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

โ‘ก Google Sheets API ์„ค์น˜

์ƒ์„ฑ์ด ์™„๋ฃŒ๋œ ํ›„, ํ™”๋ฉด ์ƒ๋‹จ์˜ ๐Ÿ”๏ธ ๋‹๋ณด๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ Google Sheets API๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์˜ MARKETPLACE ์„น์…˜์— ๋‚˜์˜ค๋Š” Google Sheets API๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ ํ›„, ์œ„ โ‘ ์—์„œ ๋งŒ๋“  ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์„ ํด๋ฆญํ•ด ์ ์šฉํ•ด ์ค๋‹ˆ๋‹ค.

โ‘ข API ํ‚ค ๋งŒ๋“ค๊ธฐ

๋‹ค์Œ์œผ๋กœ API ๋ฐ ์„œ๋น„์Šค โ†’ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

 + ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•˜๊ณ , ์ฒซ ๋ฒˆ์งธ์— ์žˆ๋Š” API ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด API ์ƒ์„ฑ์ด ๋๋‚ฉ๋‹ˆ๋‹ค.

์ด API Key๋ฅผ ์ž˜ ๊ธฐ์–ตํ•ด ๋‘ก๋‹ˆ๋‹ค.


์—ฌ๋Ÿฌ๋ถ„์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ์˜ˆ์ œ๋ฅผ ์œ„ํ•ด ๋งŒ๋“ค์–ด๋‘” API Key๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค:

AIzaSyDY7KVDGjIQPDin-cogDZb67_8lxWtTRa0

์ด์ œ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์‹œ๋‚˜๋ฆฌ์˜ค ๋ด‡์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์ค€๋น„๊ฐ€ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค!

TIP: HTTP ๋…ธ๋“œ ์ž‘๋™ ์ดํ•ดํ•˜๊ธฐ

์‹œ๋‚˜๋ฆฌ์˜ค ๋ด‡ ํ•ด์„ค์„ ์‹œ์ž‘ํ•˜๊ธฐ์— ์•ž์„œ, HTTP ๋…ธ๋“œ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ด ๋“œ๋ฆด๊ฒŒ์š”.


์‹œ๋‚˜๋ฆฌ์˜ค ๋ด‡์ด DB์ธ ๊ตฌ๊ธ€ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด์„œ๋Š”, ๊ตฌ๊ธ€ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ๊ฐ€ ์„œ๋ฒ„์ฒ˜๋Ÿผ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. Google Sheets API๋ฅผ ์„ค์น˜ํ•˜์—ฌ ๋‚ด๊ฐ€ ์ƒ์„ฑํ•œ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ๊ฐ€ ์„œ๋ฒ„์ฒ˜๋Ÿผ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฐ”๊พธ๊ณ , ์ด ๋ฐ์ดํ„ฐ์— ์•„๋ฌด๋‚˜ ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก API Key๋ฅผ ๋ฐœ๊ธ‰ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์‹œ๋‚˜๋ฆฌ์˜ค ๋ด‡์—์„œ ๊ตฌ๊ธ€ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ์˜ ์ •๋ณด๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ API URL ํ˜•์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค:

https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/{sheetname}

์šฐ๋ฆฌ๊ฐ€ ์•ž์„œ PART 1์—์„œ ์ƒ์„ฑํ•œ ๊ตฌ๊ธ€ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ์˜  spreadsheetId์™€ sheetname์„ ์ ์šฉํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์ฃผ์†Œ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.

https://sheets.googleapis.com/v4/spreadsheets/1X6U94cEUUozfnSlqyN-3A-7BUJSgkPDjQ1sQ0Y3NtuM/values/bot_data

์ด ์ฃผ์†Œ๋ฅผ ์ธํ„ฐ๋„ท ๋ธŒ๋ผ์šฐ์ €์— ์ž…๋ ฅํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด API Key๊ฐ€ ์—†์–ด์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ๋œน๋‹ˆ๋‹ค.

"message": "The request is missing a valid API key.",
    "status": "PERMISSION_DENIED"

๋”ฐ๋ผ์„œ HTTP ๋…ธ๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ, API URL์„ ์ ์€ ํ›„ ์•„๋ž˜์ชฝ์˜ Params์— key ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•˜์—ฌ API ํ‚ค ๊ฐ’์„ ๋„ฃ์–ด์ฃผ์–ด์•ผ ์ •์ƒ์ ์œผ๋กœ ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


์ด ๋‚ด์šฉ์„ ์ฝ์—ˆ๋‹ค๋ฉด ์•„๋ž˜์—์„œ HTTP ๋ฉ”์‹œ์ง€ ๋…ธ๋“œ ํ•ญ๋ชฉ์„ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šธ ๊ฑฐ์—์š”!

PART 3: ์‹œ๋‚˜๋ฆฌ์˜ค ๋ด‡ ๋งŒ๋“ค๊ธฐ

๋จผ์ € ๐Ÿ‘‰๏ธ์ด ๋งํฌ๋ฅผ ๋ˆŒ๋Ÿฌ ์‹œ๋‚˜๋ฆฌ์˜ค ๋ด‡ ์˜ˆ์ œ ํŒŒ์ผ์ธ sample-bot_employee-vacation-gcp.json์„ ๋‹ค์šด๋ฐ›์œผ์„ธ์š”.

โ‘  ์›Œํฌ์ŠคํŽ˜์ด์Šค์—์„œ ์‹œ๋‚˜๋ฆฌ์˜ค ๋ด‡ ์ƒ์„ฑ ๋ฐ ๋ด‡ ๋นŒ๋” ์ ‘๊ทผํ•˜๊ธฐ

์›Œํฌ์ŠคํŽ˜์ด์Šค์—์„œ ๋ด‡ โ†’ ์‹œ๋‚˜๋ฆฌ์˜ค ๋ด‡์œผ๋กœ ์ด๋™ํ•˜์—ฌ ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์˜ +์‹œ๋‚˜๋ฆฌ์˜ค ๋ด‡ ์ถ”๊ฐ€๋ฅผ ๋ˆŒ๋Ÿฌ ๋น„์–ด์žˆ๋Š” ๋ด‡์„ ์ƒ์„ฑํ•˜์„ธ์š”.

์ƒ์„ฑ๋œ ๋ด‡ ์ด๋ฆ„ ์šฐ์ธก์˜ โ€œ๋นŒ๋”"๋ฅผ ํด๋ฆญํ•ด ๋ด‡ ๋นŒ๋”๋กœ ์ ‘๊ทผํ•˜์„ธ์š”.

โ‘ก ์˜ˆ์ œ ํŒŒ์ผ ์—…๋กœ๋“œํ•˜๊ธฐ

์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์— ํ…Œ์ŠคํŠธ ๋ฒ„ํŠผ ์˜†์˜ 3๊ฐœ ์ ์„ ๋ˆ„๋ฅธ ํ›„, ์‹œ๋‚˜๋ฆฌ์˜ค ์—…๋กœ๋“œ๋ฅผ ํด๋ฆญํ•˜์„ธ์š”.

๋‹ค์šด๋กœ๋“œ ๋ฐ›์•˜๋˜ ์˜ˆ์ œ ํŒŒ์ผ sample-bot_employee-vacation-gcp.json์„ ์—…๋กœ๋“œ ํ•ฉ๋‹ˆ๋‹ค.

โ‘ข ์—…๋กœ๋“œ๋œ ์‹œ๋‚˜๋ฆฌ์˜ค ๋ด‡ ์ €์žฅ ๋ฐ ํ…Œ์ŠคํŠธํ•˜๊ธฐ

์˜ˆ์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์—…๋กœ๋“œ ๋œ ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค๋ฉด ์ €์žฅํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ์ค๋‹ˆ๋‹ค. ์ดํ›„ ์˜†์˜ ํ…Œ์ŠคํŠธ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ์ž˜ ์ž‘๋™ํ•˜๋Š”์ง€ ํ…Œ์ŠคํŠธํ•ด ๋ณด์„ธ์š”.

PART 4: ๊ฐ ๋…ธ๋“œ์— ๋Œ€ํ•œ ํ•ด์„ค

ํœด๊ฐ€ ์กฐํšŒ ๋ด‡์ด ์ž‘๋™ํ•˜๋Š” ์ „์ฒด์ ์ธ ๊ฐœ๋…์€ ์ง€๋‚œ ๋ฒˆ์— ์†Œ๊ฐœํ•ด ๋“œ๋ ธ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ์ง์ ‘ ์—…๋กœ๋“œํ•œ ๋ด‡์˜ ๊ฐ ๋…ธ๋“œ๋ฅผ ๋ณด๋ฉด์„œ ์•„๋ž˜ ์„ค๋ช…์„ ์ฝ์–ด ๋ณด์„ธ์š”. ํŠนํžˆ ์ด๋ฒˆ์—๋Š” HTTP ๋ฉ”์‹œ์ง€ ๋…ธ๋“œ์˜ ์ž‘๋™ ๋ฐฉ๋ฒ•์„ ๊ตฌ์ฒด์ ์œผ๋กœ ๋ง๋ถ™์—ฌ ์„ค๋ช…ํ•ด ๋“œ๋ฆด๊ฒŒ์š”.

1. ์‚ฌ๋ฒˆ ์ž…๋ ฅ

ํœด๊ฐ€๋ฅผ ์กฐํšŒํ•˜๋Š” ์ž„์ง์›์˜ ์‹ ์›์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ๋ฒˆ ์ž…๋ ฅ์ด๋ผ๋Š” ์ด๋ฆ„์˜ ์ž…๋ ฅ ๋…ธ๋“œ๋กœ ์‚ฌ๋ฒˆ์„ ์ž…๋ ฅํ•˜๋„๋ก ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ์‚ฌ๋ฒˆ ํ˜•์‹์ธ ์„ธ ์ž๋ฆฌ ์ˆซ์ž๋งŒ ์ž…๋ ฅํ•˜๋„๋ก ์‚ฌ๋ฒˆ ์ž…๋ ฅ ํ˜•์‹ ํ™•์ธ์ด๋ผ๋Š” ์ด๋ฆ„์˜ ํŒ๋‹จ ๋…ธ๋“œ๋ฅผ ๋งŒ๋“ค์–ด, ํ˜•์‹์ด ํ‹€๋ฆด ๊ฒฝ์šฐ ๋ฉ”์‹œ์ง€ ๋…ธ๋“œ๋กœ ๋ณด๋‚ด ๋‹ค์‹œ ์ž…๋ ฅํ•˜๋ผ๊ณ  ์•ˆ๋‚ดํ•˜๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ๋ฒˆ ์ž…๋ ฅ ํ˜•์‹ ๊ฒ€์ฆ์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ •๊ทœ ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

2. ์œ ํšจ ์‚ฌ๋ฒˆ ํ™•์ธ

์„ธ ์ž๋ฆฌ ์ˆซ์ž์˜ ์˜ฌ๋ฐ”๋ฅธ ํ˜•์‹์œผ๋กœ ์‚ฌ๋ฒˆ์„ ์ž…๋ ฅํ–ˆ์–ด๋„ ์‹ค์ œ๋กœ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์‚ฌ๋ฒˆ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ด‰ํ™ฉ๊ฑด์„ค ์ž„์ง์› ์‚ฌ๋ฒˆ์€ 001๋ถ€ํ„ฐ 006๊นŒ์ง€๋งŒ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์—, 500์™€ ๊ฐ™์€ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์กฐํšŒํ•  ์ •๋ณด๊ฐ€ ์—†๋Š” ์…ˆ์ด์ฃ .

๊ทธ๋ž˜์„œ ์ž„์ง์›์˜ ์ •๋ณด๊ฐ€ ๋“ฑ์žฌ๋œ ์„œ๋ฒ„์˜ ์‚ฌ๋ฒˆ๊ณผ ๋Œ€์กฐํ•ด์„œ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์‚ฌ๋ฒˆ์ธ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ๋ฒˆ ์œ ํšจ์„ฑ ํ™•์ธ์ด๋ผ๋Š” ์ด๋ฆ„์˜ HTTP ๋ฉ”์‹œ์ง€ ๋…ธ๋“œ์™€ ์‚ฌ๋ฒˆ ์œ ํšจ์„ฑ ํ™•์ธ ๊ฒฐ๊ณผ๋ผ๋Š” ํŒ๋‹จ ๋…ธ๋“œ ์—ฐ๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

โ‘  โ€œ์‚ฌ๋ฒˆ ์œ ํšจ์„ฑ ํ™•์ธโ€ HTTP ๋ฉ”์‹œ์ง€ ๋…ธ๋“œ ์ž‘๋™ ์›๋ฆฌ

์œ„์˜ TIP์—์„œ ์„ค๋ช…ํ–ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ, HTTP ํ†ต์‹ ์œผ๋กœ DB๋ฅผ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•ด GET์œผ๋กœ ์„ค์ • ํ›„ URL์„ ์ž…๋ ฅํ•˜๊ณ , Params์— API ํ‚ค๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์œผ๋กœ๋Š” range๋ฅผ ์ด์šฉํ•ด์„œ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ์˜ ์–ด๋–ค ์˜์—ญ์„ ์กฐํšŒํ• ์ง€ ์ •ํ•ฉ๋‹ˆ๋‹ค. DB์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹ˆ๋ผ ๋”ฑ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•ด ์—‘์…€์˜ ์…€ ๋ฒˆํ˜ธ์ธ A1, C3์™€ ๊ฐ™์€ ์ขŒํ‘œ๊ฐ’์„ ์ •ํ•ด์ฃผ๋Š” ์…ˆ์ด์ฃ .

 

์‚ฌ๋ฒˆ์„ ์กฐํšŒํ•˜๋Š” ์ž…๋ ฅ ๋…ธ๋“œ์˜ Key ๊ฐ’์ด employeeIdNumber์ด๊ธฐ ๋•Œ๋ฌธ์—, ์‚ฌ์šฉ์ž๊ฐ€ ์—ฌ๊ธฐ์— ์ž…๋ ฅํ•œ ๊ฐ’์„ ${employeeIdNumber.data}๋ผ๋Š” ๋ณ€์ˆ˜๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ์—์„œ ํŠน์ • ๋ฒ”์œ„๋ฅผ ์กฐํšŒํ•˜๋„๋ก ์•„๋ž˜์™€ ๊ฐ™์ด range์˜ value๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

A${employeeIdNumber.data}

 

์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•˜๋ฉด, ์ž…๋ ฅํ•œ ์‚ฌ๋ฒˆ์ด 001์ผ ๋•Œ์—๋Š” ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ์˜ A001์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋งŒ์•ฝ ์ž…๋ ฅํ•œ ์‚ฌ๋ฒˆ์ด 500์ผ ๊ฒฝ์šฐ, A500์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋…ธ๋“œ ์˜ค๋ฅธ์ชฝ ์œ„์˜ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ํด๋ฆญํ•ด์„œ ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ์— ๋”ฐ๋ผ ์–ด๋–ค ๊ฒฐ๊ณผ๋ฅผ ๋…ธ์ถœํ•˜๋Š”์ง€ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ๋ฒˆ 001์„ ์ž…๋ ฅํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ , range์— A001 ์ด๋ผ๊ณ  ์ž…๋ ฅํ•œ ํ›„ ์ „์†ก ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด Result์— ์•„๋ž˜์™€ ๊ฐ™์€ ๋‚ด์šฉ์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค:

{
    "statusCode": 200,
    "body": {
        "range": "bot_data!A1",
        "majorDimension": "ROWS",
        "values": [
            [
                "๊น€์‚ฌ์žฅ"
            ]
        ]
    }
}

์ฆ‰, A001์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ์ธ โ€œ๊น€์‚ฌ์žฅ"์„ โ€œvaluesโ€๋กœ ์ถœ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค.

 

๋งŒ์•ฝ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์‚ฌ๋ฒˆ์ธ 500์„ ์ž…๋ ฅํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”? range์— A500 ์ด๋ผ๊ณ  ์ž…๋ ฅํ•œ ํ›„ ์ „์†ก ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๋ณด์„ธ์š”. Result์— ์•„๋ž˜์™€ ๊ฐ™์€ ๋‚ด์šฉ์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค:

{
    "statusCode": 200,
    "body": {
        "range": "bot_data!A500",
        "majorDimension": "ROWS"
    }
}

A500์—๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— โ€œvaluesโ€๊ฐ€ ์ถœ๋ ฅ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ โ€œvaluesโ€๊ฐ€ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ์ฐจ์ด๋ฅผ ํ™œ์šฉํ•ด์„œ ์œ ํšจํ•œ ์‚ฌ๋ฒˆ์ธ์ง€ ์•„๋‹Œ์ง€ ํŒ๋‹จํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

โ‘ก โ€œ์‚ฌ๋ฒˆ ์œ ํšจ์„ฑ ํ™•์ธ ๊ฒฐ๊ณผโ€ ํŒ๋‹จ ๋…ธ๋“œ ์ž‘๋™ ์›๋ฆฌ

์กฐํšŒ๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์œผ๋ฉด ์œ ํšจํ•œ ์‚ฌ๋ฒˆ์ด๊ณ , ์•„๋ฌด๊ฒƒ๋„ ์กฐํšŒ๋˜์ง€ ์•Š์œผ๋ฉด ์ž˜๋ชป๋œ ์‚ฌ๋ฒˆ์ด๋ผ๊ณ  ํŒ๋‹จํ•˜๋„๋ก ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์œ„์—์„œ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์‚ฌ๋ฒˆ์ธ 500์„ ์ž…๋ ฅํ•  ๊ฒฝ์šฐ, โ€œvaluesโ€ ํ•ญ๋ชฉ ์ž์ฒด๊ฐ€ ์ถœ๋ ฅ๋˜์ง€ ์•Š์•˜์ฃ ?


์œ„์—์„œ ๊ตฌ๊ธ€ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ์™€ ํ†ต์‹ ํ•˜๋Š” HTTP ๋ฉ”์‹œ์ง€ ๋…ธ๋“œ์˜ Key ๊ฐ’์€ โ€œcheckValidEmployeeIdNumberโ€์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๋Š” ${checkValidEmployeeIdNumber.values}๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ ํšจํ•œ ์‚ฌ๋ฒˆ์„ ๋„ฃ์„ ๊ฒฝ์šฐ โ€œ๊น€์‚ฌ์žฅโ€์ด๋ผ๋Š” ์ด๋ฆ„ ๊ฐ’์ด โ€œvaluesโ€๋กœ ์ถœ๋ ฅ๋˜์ง€๋งŒ, ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์‚ฌ๋ฒˆ์„ ๋„ฃ์œผ๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ์ขŒํ‘œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ฌด โ€œvaluesโ€๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š๋Š” ๊ฒƒ์ด์ฃ .

 

์ด ์ฐจ์ด๋ฅผ ํ™œ์šฉํ•ด ํŒ๋‹จ ๋…ธ๋“œ์—์„œ ${checkValidEmployeeIdNumber.values}๊ฐ€ ๊ฐ’์ด ์žˆ๋‹ค๋ฉด ์œ ํšจํ•œ ์‚ฌ๋ฒˆ์œผ๋กœ, ๊ฐ’์ด ์—†๋‹ค๋ฉด ์—†๋Š” ์‚ฌ๋ฒˆ์œผ๋กœ ํŒ๋‹จํ•˜๋„๋ก ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

3. ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ

ํ˜•์‹๋„ ๋งž๊ณ  ์‹ค์ œ๋กœ ์กด์žฌํ•˜๋Š” ์‚ฌ๋ฒˆ์„ ์ž…๋ ฅํ–ˆ๋‹ค๋ฉด, ์ด์ œ ๊ฐœ์ธํ™•์ธ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•  ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค. ์ง์›์˜ ์‚ฌ๋ฒˆ์€ ๋ˆ„๊ตฌ๋‚˜ ์•Œ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐ ์ง์› ๊ฐœ์ธ๋งŒ ์•Œ๊ณ  ์žˆ๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด์•ผ ์ž”์—ฌ ํœด๊ฐ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ ๊ฒƒ์ด์ฃ .

์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅ ๋…ธ๋“œ ๊ฐœ์ธํ™•์ธ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ์—์„œ ์ž…๋ ฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ๋งž๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋น„๋ฐ€๋ฒˆํ˜ธ ํ™•์ธ์ด๋ผ๋Š” ์ด๋ฆ„์˜ HTTP ๋ฉ”์‹œ์ง€ ๋…ธ๋“œ์—์„œ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๋‹ค์Œ ํŒ๋‹จ ๋…ธ๋“œ์ธ ๋น„๋ฐ€๋ฒˆํ˜ธ ํ™•์ธ ๊ฒฐ๊ณผ์—์„œ ๊ฒฐ๊ณผ ๊ฐ’์— ๋”ฐ๋ผ ๋‹ค์‹œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํ™•์ธํ•˜๋ผ๊ณ  ํ• ์ง€, ์ž”์—ฌ ํœด๊ฐ€์ผ์„ ์•Œ๋ ค์ค„์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

โ‘  โ€œ๋น„๋ฐ€๋ฒˆํ˜ธ ํ™•์ธโ€ HTTP ๋ฉ”์‹œ์ง€ ๋…ธ๋“œ ์ž‘๋™ ์›๋ฆฌ

์•ž์—์„œ ์ด๋ฏธ ์„ค๋ช…ํ•œ โ€œ์‚ฌ๋ฒˆ ์œ ํšจ์„ฑ ํ™•์ธโ€ HTTP ๋ฉ”์‹œ์ง€ ๋…ธ๋“œ์™€ ๊ฑฐ์˜ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์ด๋ฒˆ์—๋Š” ์กฐํšŒํ•ด์•ผํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ฒ”์œ„๋Š” ์ด๋ฆ„ ์ •๋ณด๋งŒ ์žˆ๋Š” A์—ด ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ ํžŒ B์—ด๊ณผ ์ž”์—ฌ ํœด๊ฐ€์ผ์ด ๊ธฐ๋ก๋œ C์—ด๋„ ์กฐํšŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

๋”ฐ๋ผ์„œ range๋ฅผ ์•„๋ž˜์˜ ๊ฐ’์œผ๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

A${employeeIdNumber.data}:C${employeeIdNumber.data}

 

์‚ฌ๋ฒˆ์œผ๋กœ 001์„ ์ž…๋ ฅํ–ˆ๋‹ค๋ฉด A001:C001์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ํ†ตํ•ด ์ด ๊ฐ’์„ ์ „์†กํ•ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

{
    "statusCode": 200,
    "body": {
        "range": "bot_data!A1:C1",
        "majorDimension": "ROWS",
        "values": [
            [
                "๊น€์‚ฌ์žฅ",
                "1111",
                "13.5"
            ]
        ]
    }
}

โ‘ก โ€œ๋น„๋ฐ€๋ฒˆํ˜ธ ํ™•์ธ ๊ฒฐ๊ณผโ€ ํŒ๋‹จ ๋…ธ๋“œ ์ž‘๋™ ์›๋ฆฌ

HTTP ๋ฉ”์‹œ์ง€ ๋…ธ๋“œ์—์„œ ์ž„์ง์›์˜ ์ด๋ฆ„๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ, ์ž”์—ฌ ํœด๊ฐ€์ผ์„ ๋ชจ๋‘ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค. ์ด์ œ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ๋งž๋Š”์ง€ ๋น„๊ตํ•  ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค.

 

๋ฐ”๋กœ ์•ž HTTP ๋ฉ”์‹œ์ง€ ๋…ธ๋“œ์˜ Key๊ฐ€ โ€œcheckLeftoverVacationsโ€์ด๋ฏ€๋กœ, ์—ฌ๊ธฐ์„œ ์ถœ๋ ฅ๋œ ์„ธ ๊ฐ€์ง€ โ€œvaluesโ€๋Š” ๊ฐ๊ฐ ${checkLeftoverVacations.values[0][0]}, ${checkLeftoverVacations.values[0][1]}, ${checkLeftoverVacations.values[0][2]}๋ผ๋Š” ๋ณ€์ˆ˜๋กœ ์ขŒํ‘œ ํ˜•์‹์„ ์ถ”๊ฐ€ํ•ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์‚ฌ์šฉ์ž๊ฐ€ โ€œ๊ฐœ์ธํ™•์ธ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅโ€์ด๋ผ๋Š” ์ž…๋ ฅ ๋…ธ๋“œ์— ๋„ฃ์€ ๊ฐ’์€ ํ•ด๋‹น ๋…ธ๋“œ์˜ Key์ธ โ€œpersonalPWโ€๋ฅผ ๋”ฐ๋ผ ${personalPW.data}๋ผ๋Š” ๋ณ€์ˆ˜๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

DB์— ์ €์žฅ๋œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ณ€์ˆ˜๋Š” ${checkLeftoverVacations.values[0][1]}์ด๋ฏ€๋กœ, ์ด ๊ฐ’๊ณผ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ${personalPW.data}๊ฐ€ ๋™์ผํ•œ์ง€ ๋น„๊ตํ•˜๋Š” ํŒ๋‹จ ๋…ธ๋“œ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

๋™์ผํ•  ๊ฒฝ์šฐ ์˜ฌ๋ฐ”๋ฅธ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•œ ๊ฒƒ์ด๊ณ , ๋‹ค๋ฅผ ๊ฒฝ์šฐ ํ‹€๋ฆฐ ๊ฒƒ์ด์ฃ .

4. ์ž”์—ฌ ํœด๊ฐ€์ผ ์•ˆ๋‚ด

์ž…๋ ฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ๋งž๋‹ค๋ฉด, ๋‹ค์Œ์œผ๋กœ ๋ฉ”์‹œ์ง€ ๋…ธ๋“œ๋กœ ์—ฐ๊ฒฐํ•ด ์ค๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์œ„ HTTP ๋ฉ”์‹œ์ง€ ๋…ธ๋“œ์—์„œ ๊ฐ€์ ธ์˜จ ์ž„์ง์› ์ด๋ฆ„(${checkLeftoverVacations.values[0][0]})๊ณผ ์ž”์—ฌ ํœด๊ฐ€์ผ(${checkLeftoverVacations.values[0][2]}) ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํœด๊ฐ€๋ฅผ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.

${checkLeftoverVacations.values[0][0]}๋‹˜์˜ ์ž”์—ฌ ํœด๊ฐ€์ผ์€ ${checkLeftoverVacations.values[0][2]}์ผ์ž…๋‹ˆ๋‹ค.
์–ด๋•Œ์š”? ํœด๊ฐ€ ์กฐํšŒ ๋ด‡์ด ์ž‘๋™ํ•˜๋Š” ์›๋ฆฌ๊ฐ€ ์ดํ•ด๊ฐ€ ๋˜์…จ๋‚˜์š”?
HTTP ํ†ต์‹  ๋…ธ๋“œ๋‚˜ ํŒ๋‹จ ๋…ธ๋“œ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์กฐ๊ธˆ ์–ด๋ ต๊ฒŒ ๋Š๊ปด์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ, ์–ด๋– ํ•œ ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์กฐํšŒํ•˜๋Š”์ง€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹ˆ๋ผ๋„ ์‹ค์Šตํ•ด๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์ž์„ธํ•˜๊ฒŒ ์„ค๋ช…ํ•ด ๋“œ๋ ธ์–ด์š”.

์˜ˆ์ œ๋กœ ์‹ค์Šตํ•ด ๋ณด๋‹ค๊ฐ€ ์–ด๋ ค์šด ์ ์ด ์žˆ๋‹ค๋ฉด, ๊นƒํ”Œ์ฑ— ์ƒ๋‹ด์‚ฌ๋ฅผ ํ†ตํ•ด ๋ฌธ์˜ ์ฃผ์„ธ์š” ๐Ÿ’ฌ
โœ… ๊ผญ ํ™•์ธํ•˜์„ธ์š”!
  • ๊ฐ ๋…ธ๋“œ์— ๋Œ€ํ•œ ์„ค๋ช…์€ ๊นƒํ”Œ์ฑ— ์ด์šฉ ๊ฐ€์ด๋“œ์—์„œ๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‹œ๋‚˜๋ฆฌ์˜ค ๋ด‡์˜ ์ž„์ง์› ์ •๋ณด๋Š” ํ—ˆ๊ตฌ์ด๊ธฐ ๋•Œ๋ฌธ์— ์˜ˆ์ œ๋ฅผ ์œ„ํ•ด API ํ‚ค๋ฅผ ๊ณต๊ฐœํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹ค์ œ ๊ฐœ์ธ์ •๋ณด๊ฐ€ ์ €์žฅ๋œ ์„œ๋ฒ„์˜ API ํ‚ค๋Š” ์ ˆ๋Œ€๋กœ ๋…ธ์ถœ๋˜์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•˜์„ธ์š”.
๐Ÿค– ๊ณ ๊ฐ ์ƒ๋‹ด ์ž๋™ํ™”
๊นƒํ”Œ์ฑ—๊ณผ ํ•จ๊ป˜ํ•˜์„ธ์š”!
๊ถ๊ธˆํ•œ ์ ์ด ์žˆ๋‹ค๋ฉด?
์ง€๊ธˆ ๊นƒํ”Œ์ฑ— ์ƒ๋‹ด์‚ฌ๐Ÿ‘จโ€๐Ÿ’ป ์—๊ฒŒ ๋ฌผ์–ด๋ณด์„ธ์š”.
 ๊นƒํ”Œ 
์„œ์šธํŠน๋ณ„์‹œ ์˜๋“ฑํฌ๊ตฌ ์—ฌ์˜๋‚˜๋ฃจ๋กœ4๊ธธ 21 ์ฝ”์Šค์ฝค์‹ ์‚ฌ์˜ฅ 6์ธต