giip
SES Proposal
4 min read

API ๋ ˆํผ๋Ÿฐ์Šค ๊ฐœ์š” (v1.2)

GIIP ํ”Œ๋žซํผ์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž์›์„ ์ œ์–ดํ•˜๊ณ  ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•œ ๊ณตํ†ต API ๊ทœ๊ฒฉ๊ณผ ์ธ์ฆ ๋ฐฉ์‹์„ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“‹ ๊ฐœ์š”

GIIP API๋Š” RESTful ์•„ํ‚คํ…์ฒ˜ ์›์น™์„ ๋”ฐ๋ฅด๋ฉฐ, JSON ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  API๋Š” ๋ณด์•ˆ์„ ์œ„ํ•ด HTTPS ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์œ ํšจํ•œ Access Key์™€ Secret Key๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ์•ผ ์ •์ƒ์ ์ธ ๊ธฐ๋Šฅ ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ” ์ธ์ฆ (Authentication)

๋ชจ๋“  API ์š”์ฒญ ํ—ค๋”์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ธ์ฆ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Header KeyDescription
x-giip-akGIIP ๊ด€๋ฆฌ์ž๋กœ๋ถ€ํ„ฐ ๋ฐœ๊ธ‰๋ฐ›์€ Access Key
x-giip-skGIIP ๊ด€๋ฆฌ์ž๋กœ๋ถ€ํ„ฐ ๋ฐœ๊ธ‰๋ฐ›์€ Secret Key

[!IMPORTANT] Secret Key๋Š” ์™ธ๋ถ€๋กœ ์œ ์ถœ๋˜์–ด์„œ๋Š” ์•ˆ ๋˜๋ฉฐ, ํด๋ผ์ด์–ธํŠธ ์ธก ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(JS) ์ฝ”๋“œ ๋“ฑ์— ์ง์ ‘ ๋…ธ์ถœ๋˜์ง€ ์•Š๋„๋ก ์„œ๋ฒ„ ์ธก์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

AK/SK ๊ณตํ†ต ์šฉ์–ด ์ •์˜

GIIP ์ „์ฒด์—์„œ ์“ฐ์ด๋Š” ์ธ์ฆ ์ •๋ณด๋Š” ์‹ค์ฒด ๊ธฐ์ค€์œผ๋กœ ๋‹ค์Œ 3๊ฐ€์ง€๋กœ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(2026-08-20, ์ด์Šˆยทํƒœ์Šคํฌ API์—์„œ์˜ ์ฝ”๋“œ ํ™•์ธ+๋ผ์ด๋ธŒ ์‹ค์ธก ๊ธฐ์ค€).

์ข…๋ฅ˜์‹ค์ฒด(ํ…Œ์ด๋ธ”/์ปฌ๋Ÿผ)๋ฐœ๊ธ‰ ๋‹จ์œ„๊ถŒํ•œ ๋ฒ”์œ„
ํ”„๋กœ์ ํŠธ SKtSecretKey.SKeyํ”„๋กœ์ ํŠธ(csn)๋‹น๊ทธ csn๋งŒ. ํ˜ธ์ถœ์ž ๊ฐœ์ธ์€ ํŠน์ •๋˜์ง€ ์•Š๋Š” ๊ณต์œ  ํ‚ค
์‚ฌ์šฉ์ž ๊ณ ์ • ํ‚คtCorpUser.uSecretKey์‚ฌ์šฉ์ž(usn)๋‹น๊ทธ ์‚ฌ์šฉ์ž ๋ณธ์ธ์ด ์†ํ•œ csn(๊ด€๋ฆฌ์ž ๊ถŒํ•œ์ด๋ฉด ์ „์ฒด csn)
๋กœ๊ทธ์ธ ์„ธ์…˜ AKtUserLogin.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 ๋ช…์„ธ๋Š” ๋‹ค์Œ ๊ฐœ๋ณ„ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  1. ์„œ๋ฒ„ ๊ด€๋ฆฌ API: ์ธํ”„๋ผ ์ž์‚ฐ ์กฐํšŒ ๋ฐ ๋ช…๋ น ์‹คํ–‰
  2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค API: DB ์„ฑ๋Šฅ ๋ฐ ์ฟผ๋ฆฌ ํ†ต๊ณ„
  3. ์ด์Šˆ ๊ด€๋ฆฌ API: ์žฅ์•  ์•Œ๋žŒ ๋ฐ ์ƒํƒœ ์—…๋ฐ์ดํŠธ
  4. ๋น„์šฉ ๋ถ„์„ API: ํด๋ผ์šฐ๋“œ ์‚ฌ์šฉ๋Ÿ‰ ๋ฐ ๋น„์šฉ ์˜ˆ์ธก
  5. ํ”„๋กœ์ ํŠธ/์œ ์ € API: ๊ถŒํ•œ ๋ฐ ์กฐ์ง ๊ด€๋ฆฌ
  6. ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ์ดํ„ฐ ์กฐํšŒ API: ์‹ค์‹œ๊ฐ„ CPU/MEM/Disk ๋ฉ”ํŠธ๋ฆญ, ์„ฑ๋Šฅ ์ด๋ ฅ, ํ”„๋กœ์„ธ์Šค ๋ชฉ๋ก
  7. ๋„คํŠธ์›Œํฌ ๋ณด์•ˆ ์ •์ฑ… API: ๋ฐฉํ™”๋ฒฝ ๋ฃฐ ์กฐํšŒ, IP ํ—ˆ์šฉ/์ฐจ๋‹จ, ๋ณด์•ˆ ์ •์ฑ… ์ผ๊ด„ ๋ฐฐํฌ
  8. ๋„คํŠธ์›Œํฌ ํ† ํด๋กœ์ง€(Net3D) API: ์ธํ”„๋ผ ์—ฐ๊ฒฐ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ยท์ „์†ก ๊ทœ๊ฒฉ (netinv, netstat, db_connections)
  9. ์‹œ์Šคํ…œ ๊ด€๋ฆฌ API: ์›๊ฒฉ ๋ช…๋ น ์‹คํ–‰, ์—์ด์ „ํŠธ ์ œ์–ด, ์„œ๋ฒ„ ํƒœ๊ทธ ๊ด€๋ฆฌ
  10. KVS(ํ‚ค-๊ฐ’ ์ €์žฅ์†Œ) API: factor ๋ฐ์ดํ„ฐ ์กฐํšŒ (KVSFactorLast, KVSFactorList)
  11. Vercel ๊ด€๋ฆฌ API: Vercel ์„ค์ • ๊ด€๋ฆฌ ๋ฐ ๋ฐฐํฌ ์ด๋ ฅ ์กฐํšŒ
  12. GitHub Actions ๊ด€๋ฆฌ API: GitHub ์ €์žฅ์†Œ ์—ฐ๋™ ๋ฐ ์›Œํฌํ”Œ๋กœ์šฐ ์ด๋ ฅ ์กฐํšŒ
  13. ์ด๋ฉ”์ผ ์„œ๋ฒ„ ๊ด€๋ฆฌ API: SMTP ์„œ๋ฒ„ ์„ค์ • ๋ฐ ํ…Œ์ŠคํŠธ ๋ฐœ์†ก (๊ด€๋ฆฌ์ž ์ „์šฉ)
  14. Sk3 (๊ณ ์„ฑ๋Šฅ ๋กœ๊น…) API: ์—์ด์ „ํŠธ ์ „์†ก ์—๋Ÿฌ ๊ฐ์ง€ ๋ฐ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์ฆ์„ ์œ„ํ•œ High-fidelity ๋กœ๊น… ๋ธŒ๋ฆฟ์ง€
  15. ๊ณตํ†ต ์‘๋‹ต ๊ฐ’ ๋ฐ ๊ฒฐ๊ณผ ์ฝ”๋“œ ๊ฐ€์ด๋“œ (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 ํ•„๋“œ ๋ˆ„๋ฝํผ ๋ฐ์ดํ„ฐ ํ˜•์‹๊ณผ ํ•„์ˆ˜ ํ•„๋“œ๋ฅผ ๊ทœ๊ฒฉ์— ๋งž๊ฒŒ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

๊ด€๋ จ ๋ฌธ์„œ:


๋ฒ„์ „: 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์˜ ๊ฐœ๋ณ„ ๋ฌธ์„œ์—์„œ ํ™•์ธํ•˜๋„๋ก ์•ˆ๋‚ด(์„ธ ๋ฌธ์„œ ๊ฐ„ ๋ถˆ์ผ์น˜ ํ•ด์†Œ).