API ๋ ํผ๋ฐ์ค ๊ฐ์ (v1.2)
GIIP ํ๋ซํผ์ ๋ง์ดํฌ๋ก์๋น์ค ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์์ ์ ์ดํ๊ณ ๋ชจ๋ํฐ๋งํ๊ธฐ ์ํ ๊ณตํต API ๊ท๊ฒฉ๊ณผ ์ธ์ฆ ๋ฐฉ์์ ์๋ดํฉ๋๋ค.
๐ ๊ฐ์
GIIP API๋ RESTful ์ํคํ ์ฒ ์์น์ ๋ฐ๋ฅด๋ฉฐ, JSON ํ์์ ์ฌ์ฉํ์ฌ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ์๋ต์ ๋ฐํํฉ๋๋ค. ๋ชจ๋ API๋ ๋ณด์์ ์ํด HTTPS ํ๋กํ ์ฝ์ ํตํด์๋ง ์ ๊ทผ ๊ฐ๋ฅํ๋ฉฐ, ์ ํจํ Access Key์ Secret Key๋ฅผ ์ฌ์ฉํ์ฌ์ผ ์ ์์ ์ธ ๊ธฐ๋ฅ ํธ์ถ์ด ๊ฐ๋ฅํฉ๋๋ค.
๐ ์ธ์ฆ (Authentication)
๋ชจ๋ API ์์ฒญ ํค๋์๋ ๋ค์๊ณผ ๊ฐ์ ์ธ์ฆ ์ ๋ณด๊ฐ ํฌํจ๋์ด์ผ ํฉ๋๋ค.
| Header Key | Description |
|---|---|
| x-giip-ak | GIIP ๊ด๋ฆฌ์๋ก๋ถํฐ ๋ฐ๊ธ๋ฐ์ Access Key |
| x-giip-sk | GIIP ๊ด๋ฆฌ์๋ก๋ถํฐ ๋ฐ๊ธ๋ฐ์ Secret Key |
[!IMPORTANT] Secret Key๋ ์ธ๋ถ๋ก ์ ์ถ๋์ด์๋ ์ ๋๋ฉฐ, ํด๋ผ์ด์ธํธ ์ธก ์๋ฐ์คํฌ๋ฆฝํธ(JS) ์ฝ๋ ๋ฑ์ ์ง์ ๋ ธ์ถ๋์ง ์๋๋ก ์๋ฒ ์ธก์์ ์์ ํ๊ฒ ๊ด๋ฆฌํด์ผ ํฉ๋๋ค.
AK/SK ๊ณตํต ์ฉ์ด ์ ์
GIIP ์ ์ฒด์์ ์ฐ์ด๋ ์ธ์ฆ ์ ๋ณด๋ ์ค์ฒด ๊ธฐ์ค์ผ๋ก ๋ค์ 3๊ฐ์ง๋ก ์ ๋ฆฌํ ์ ์์ต๋๋ค(2026-08-20, ์ด์ยทํ์คํฌ API์์์ ์ฝ๋ ํ์ธ+๋ผ์ด๋ธ ์ค์ธก ๊ธฐ์ค).
| ์ข ๋ฅ | ์ค์ฒด(ํ ์ด๋ธ/์ปฌ๋ผ) | ๋ฐ๊ธ ๋จ์ | ๊ถํ ๋ฒ์ |
|---|---|---|---|
| ํ๋ก์ ํธ SK | tSecretKey.SKey | ํ๋ก์ ํธ(csn)๋น | ๊ทธ csn๋ง. ํธ์ถ์ ๊ฐ์ธ์ ํน์ ๋์ง ์๋ ๊ณต์ ํค |
| ์ฌ์ฉ์ ๊ณ ์ ํค | tCorpUser.uSecretKey | ์ฌ์ฉ์(usn)๋น | ๊ทธ ์ฌ์ฉ์ ๋ณธ์ธ์ด ์ํ csn(๊ด๋ฆฌ์ ๊ถํ์ด๋ฉด ์ ์ฒด csn) |
| ๋ก๊ทธ์ธ ์ธ์ AK | tUserLogin.AccToken | ๋ก๊ทธ์ธ๋ง๋ค ์ ๊ท ๋ฐ๊ธ, 24์๊ฐ ํ ๋ง๋ฃ | ๋ก๊ทธ์ธ ์ฌ์ฉ์ ๋ณธ์ธ๊ณผ ๋์ผ ๊ถํ |
โ ๏ธ ์๋ํฌ์ธํธ๋ง๋ค ์ค์ ํค๋ ์ด๋ฆยท์ ๋ฌ ๋ฐฉ์์ด ๋ค๋ฆ ๋๋ค. ์ ํ์
x-giip-ak/x-giip-skํค๋๋ ์ฌ๋ฌ API ๊ทธ๋ฃน์์ ์ฐ์ด๋ ์ผ๋ฐ์ ์ธ ๊ด๋ก์ด์ง๋ง, ์ด์ ๊ด๋ฆฌ API(/api/giipIssues,/api/giipIssueComments)์ CatQuest API๋x-api-keyํค๋ ํ๋(๋๋Authorization: Bearer)์ AK/SK ์ค ํ๋๋ฅผ ๋ด์ ์ ๋ฌํ๋ ๋ฐฉ์์ด๋ฉฐ,x-giip-ak/x-giip-sk๋ผ๋ ๊ฐ๋ณ ํค๋ ์ด๋ฆ์ ์ฌ์ฉํ์ง ์์ต๋๋ค(์ค์ธก ํ์ธ, 2026-08-20). ์ค์ ๋ก ํธ์ถํ๊ธฐ ์ ์๋ ๋ฐ๋์ ํด๋น API์ ๊ฐ๋ณ ๋ฌธ์(์ด์ยทํ์คํฌ API, CatQuest ๋ฐ์ดํฐ API ๋ฑ)์์ ํค๋ ์ด๋ฆ๊ณผ ์ ๋ฌ ๋ฐฉ์์ ํ์ธํ์ธ์. ์ด ํ์ด์ง์ ํ๋ "GIIP ์ ์ฒด ์ธ์ฆ ์ ๋ณด์ ์ข ๋ฅ"๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ด๋ฉฐ, "๋ชจ๋ API๊ฐ ๋์ผํ ํค๋ ์ด๋ฆ์ ์ด๋ค"๋ ๋ป์ด ์๋๋๋ค.
๐ก ๊ณตํต ์๋ต ํฌ๋งท (Response Format)
GIIP์ ๋ชจ๋ API๋ ์ผ๊ด๋ ์๋ต ํฌ๋งท์ ์ ๊ณตํ์ฌ ํด๋ผ์ด์ธํธ ์ธก์ ์ฒ๋ฆฌ๋ฅผ ์ฉ์ดํ๊ฒ ํฉ๋๋ค.
{
"RstVal": 0,
"RstMsg": "Success",
"Data": { ... }
}
- RstVal: ์ฑ๊ณต ์ฌ๋ถ (0: ์ฑ๊ณต, ๊ทธ ์ธ: ์๋ฌ)
- RstMsg: ์ฑ๊ณต ๋ฉ์์ง (์๋ฌ ๋ฐ์ ์ ์์ธ ์์ธ ๋ฌธ๊ตฌ ํฌํจ)
- Data: ์์ฒญ์ ์ฑ๊ณตํ์ ๊ฒฝ์ฐ ๋ฐํ๋๋ ๋ฐ์ดํฐ ๋ณธ๋ฌธ
๐ ์์ฒญ ํ์
๋ชจ๋ API ์์ฒญ์ Azure Function ํธ์ถ ๊ท๊ฒฉ์ ๋ฐ๋ผ application/x-www-form-urlencoded๋ก POSTํฉ๋๋ค.
์ฃผ์ ํผ ๋ฐ์ดํฐ
| ํ๋ | ์ค๋ช |
|---|---|
| text | ์คํํ๊ณ ์ ํ๋ ๋ช ๋ น ๋ฌธ์์ด |
| user_id | ํธ์ถํ๋ ์ฌ์ฉ์ ID |
| token | ์ธ์ ํ ํฐ |
| usertoken | ์ค์ ์ฐ๋์ ์ฌ์ฉ๋๋ ์ธ์ ํ ํฐ |
๐ API ๊ทธ๋ฃน๋ณ ๊ฐ์ด๋
๋ถ์ผ๋ณ ์์ธ API ๋ช ์ธ๋ ๋ค์ ๊ฐ๋ณ ๊ฐ์ด๋๋ฅผ ์ฐธ์กฐํ์ธ์.
- ์๋ฒ ๊ด๋ฆฌ API: ์ธํ๋ผ ์์ฐ ์กฐํ ๋ฐ ๋ช ๋ น ์คํ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค API: DB ์ฑ๋ฅ ๋ฐ ์ฟผ๋ฆฌ ํต๊ณ
- ์ด์ ๊ด๋ฆฌ API: ์ฅ์ ์๋ ๋ฐ ์ํ ์ ๋ฐ์ดํธ
- ๋น์ฉ ๋ถ์ API: ํด๋ผ์ฐ๋ ์ฌ์ฉ๋ ๋ฐ ๋น์ฉ ์์ธก
- ํ๋ก์ ํธ/์ ์ API: ๊ถํ ๋ฐ ์กฐ์ง ๊ด๋ฆฌ
- ๋ชจ๋ํฐ๋ง ๋ฐ์ดํฐ ์กฐํ API: ์ค์๊ฐ CPU/MEM/Disk ๋ฉํธ๋ฆญ, ์ฑ๋ฅ ์ด๋ ฅ, ํ๋ก์ธ์ค ๋ชฉ๋ก
- ๋คํธ์ํฌ ๋ณด์ ์ ์ฑ API: ๋ฐฉํ๋ฒฝ ๋ฃฐ ์กฐํ, IP ํ์ฉ/์ฐจ๋จ, ๋ณด์ ์ ์ฑ ์ผ๊ด ๋ฐฐํฌ
- ๋คํธ์ํฌ ํ ํด๋ก์ง(Net3D) API: ์ธํ๋ผ ์ฐ๊ฒฐ ๋ฐ์ดํฐ ์์งยท์ ์ก ๊ท๊ฒฉ (netinv, netstat, db_connections)
- ์์คํ ๊ด๋ฆฌ API: ์๊ฒฉ ๋ช ๋ น ์คํ, ์์ด์ ํธ ์ ์ด, ์๋ฒ ํ๊ทธ ๊ด๋ฆฌ
- KVS(ํค-๊ฐ ์ ์ฅ์) API: factor ๋ฐ์ดํฐ ์กฐํ (KVSFactorLast, KVSFactorList)
- Vercel ๊ด๋ฆฌ API: Vercel ์ค์ ๊ด๋ฆฌ ๋ฐ ๋ฐฐํฌ ์ด๋ ฅ ์กฐํ
- GitHub Actions ๊ด๋ฆฌ API: GitHub ์ ์ฅ์ ์ฐ๋ ๋ฐ ์ํฌํ๋ก์ฐ ์ด๋ ฅ ์กฐํ
- ์ด๋ฉ์ผ ์๋ฒ ๊ด๋ฆฌ API: SMTP ์๋ฒ ์ค์ ๋ฐ ํ ์คํธ ๋ฐ์ก (๊ด๋ฆฌ์ ์ ์ฉ)
- Sk3 (๊ณ ์ฑ๋ฅ ๋ก๊น ) API: ์์ด์ ํธ ์ ์ก ์๋ฌ ๊ฐ์ง ๋ฐ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฆ์ ์ํ High-fidelity ๋ก๊น ๋ธ๋ฆฟ์ง
- ๊ณตํต ์๋ต ๊ฐ ๋ฐ ๊ฒฐ๊ณผ ์ฝ๋ ๊ฐ์ด๋ (RstVal): tDefRst ํ ์ด๋ธ ๊ธฐ๋ฐ์ ํ์ค ๊ฒฐ๊ณผ ์ฝ๋ ์๋ด
๐ ๏ธ ๊ณตํต ์ค๋ฅ ์ฝ๋
- 401 Unauthorized: ์ธ์ฆ ์ ๋ณด๊ฐ ์ ํจํ์ง ์๊ฑฐ๋ ๋ง๋ฃ๋ ๊ฒฝ์ฐ
- 403 Forbidden: ํด๋น API๋ฅผ ํธ์ถํ ๊ถํ์ด ์๋ ๊ฒฝ์ฐ (IP ๊ธฐ๋ฐ ์ ๊ทผ ํต์ ํฌํจ)
- 429 Too Many Requests: ์์ฒญ ๋น๋ ์ ํ(Rate Limit) ์ด๊ณผ
- 500 Internal Server Error: ์๋ฒ ๋ด๋ถ ์ค๋ฅ ๋ฐ ์ผ์์ ์ธ ์ฅ์ ๋ฐ์
๐ ๊ฐ๋ฐ์ ์ฐธ๊ณ ์ฌํญ
- ์๋ํฌ์ธํธ ํธ์ถ๋ถ:
src/lib/lsvrUtils.ts - ์ธ์
๊ด๋ฆฌ:
sessionStorage์user_id,token,csn,cname๋ฑ ์ฐธ์กฐ - ๋ชจ๋ ์ฐ๋์ HTTPS๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ํฉ๋๋ค.
๐ง ๋ฌธ์ ํด๊ฒฐ
| ์ฆ์ | ์์ธ | ํด๊ฒฐ |
|---|---|---|
| 401 Unauthorized๊ฐ ๋ฐํ๋๋ค | Access Key/Secret Key๊ฐ ๋ง๋ฃ๋์๊ฑฐ๋ ์ ํจํ์ง ์์ | x-giip-ak/x-giip-sk ํค๋ ๊ฐ์ ์ฌํ์ธํ๊ณ , ํ์ ์ ๊ด๋ฆฌ์์๊ฒ ํค ์ฌ๋ฐ๊ธ์ ์์ฒญํฉ๋๋ค |
| 403 Forbidden์ด ๋ฐํ๋๋ค | ํด๋น API ํธ์ถ ๊ถํ์ด ์๊ฑฐ๋ IP ๊ธฐ๋ฐ ์ ๊ทผ ํต์ ์ ๋งํ | ๊ณ์ ๊ถํ๊ณผ ํ์ฉ IP ์ฌ๋ถ๋ฅผ ํ์ธํฉ๋๋ค |
์๋ต์ RstVal์ด 0์ด ์๋๋ฐ ์์ธ์ ๋ชจ๋ฅด๊ฒ ๋ค | ํ์ค ๊ฒฐ๊ณผ ์ฝ๋์ ์๋ฏธ๋ฅผ ํ์ธํ์ง ์์ | RstMsg๋ฅผ ํ์ธํ๊ณ API ๊ฒฐ๊ณผ ์ฝ๋ ๊ฐ์ด๋์์ ํด๋น ์ฝ๋๋ฅผ ์กฐํํฉ๋๋ค |
์์ฒญ์ด ์ฒ๋ฆฌ๋์ง ์๊ฑฐ๋ text ๋ช
๋ น์ด ๋ฌด์๋๋ค | ์์ฒญ์ด application/x-www-form-urlencoded ํ์์ด ์๋๊ฑฐ๋ text/user_id/token ํ๋ ๋๋ฝ | ํผ ๋ฐ์ดํฐ ํ์๊ณผ ํ์ ํ๋๋ฅผ ๊ท๊ฒฉ์ ๋ง๊ฒ ์ ์กํฉ๋๋ค |
๊ด๋ จ ๋ฌธ์:
- ์ด์ยทํ์คํฌ API(AK/SK ๋ชจ๋ ์ง์ํ๋ ์ค์ ์์, 401 ์์ธ ์์ธ ๋ถ๋ฅ)
- CatQuest ๋ฐ์ดํฐ API(์ฝ๊ธฐ ์ ์ฉ ์ค์ ์์)
๋ฒ์ : 1.3 ์ต์ข ์ ๋ฐ์ดํธ: 2026-08-20 ๋งํฌ๋ค์ด ์๋ณธ: giipv3/public/help/api-reference.ko.md
v1.3 ๋ณ๊ฒฝ ์ด๋ ฅ (2026-08-20, giip #1280): "AK/SK ๊ณตํต ์ฉ์ด ์ ์" ์ ์ ์ถ๊ฐํด ํ๋ก์ ํธ SK/์ฌ์ฉ์ ๊ณ ์ ํค/๋ก๊ทธ์ธ ์ธ์ AK 3์ข ๋ฅ๋ฅผ ๋ฐ๊ธ ํ ์ด๋ธ ๊ธฐ์ค์ผ๋ก ์ ๋ฆฌ. ์ด์ ๊ด๋ฆฌ APIยทCatQuest API๋ ์ด ํ์ด์ง์
x-giip-ak/x-giip-skํค๋ ๊ด๋ก๊ฐ ์๋๋ผx-api-keyํค๋ ํ๋๋ฅผ ์ด๋ค๋ ์ ์ ๋ช ์ํ๊ณ , ์ค์ ํค๋ ์ด๋ฆ์ ๊ฐ API์ ๊ฐ๋ณ ๋ฌธ์์์ ํ์ธํ๋๋ก ์๋ด(์ธ ๋ฌธ์ ๊ฐ ๋ถ์ผ์น ํด์).