์ง์ ๋ฐ๋ผ์ ํด๊ฐ ์กฐํ ๋ด์ ๋ง๋ค์ด ๋ณด์ธ์. ์๋
ํ์ธ์!
๊ณ ๊ฐ๋ง์กฑ 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์ธต
|
|
|
|
|