giip
SES Proposal
3 min read

ํ”„๋กœ์ ํŠธ ๋ฐ ์„œ๋น„์Šค ๊ด€๋ฆฌ API ๊ฐ€์ด๋“œ (v1.2)

GIIP ํ”Œ๋žซํผ ๋‚ด์˜ ์กฐ์ง(ํ”„๋กœ์ ํŠธ)๊ณผ ์„œ๋น„์Šค ๊ทธ๋ฃน์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ API ๋ช…์„ธ์ž…๋‹ˆ๋‹ค.

๐Ÿ”Œ ํ”„๋กœ์ ํŠธ ๋ชฉ๋ก ๊ธฐ๋Šฅ ํŽ˜์ด์ง€๋กœ ์ด๋™ โ†’ ยท ๐Ÿ‘ฅ ์‚ฌ์šฉ์ž ๋ชฉ๋ก ๊ธฐ๋Šฅ ํŽ˜์ด์ง€๋กœ ์ด๋™ โ†’

๐Ÿ“‹ ๊ฐœ์š”

ํ”„๋กœ์ ํŠธ(๊ณ ๊ฐ) ๋ฐ ์„œ๋น„์Šค ๊ทธ๋ฃน API๋Š” GIIP ์ธํ”„๋ผ๋ฅผ ๋…ผ๋ฆฌ์  ๋‹จ์œ„๋กœ ๊ตฌ๋ถ„ํ•˜๊ณ  ๊ถŒํ•œ์„ ์ œ์–ดํ•˜๋Š” ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ” ์ธ์ฆ ๋ฐ ๋ณด์•ˆ

  • Header: ๊ณตํ†ต ์ธ์ฆ ํ—ค๋” ํ•„์ˆ˜
  • ๊ถŒํ•œ: ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ/์‚ญ์ œ๋Š” ๋†’์€ ๋“ฑ๊ธ‰์˜ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์ด ์š”๊ตฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“ก API ์ƒ์„ธ

1. ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ

ํ”„๋กœ์ ํŠธ ๋ชฉ๋ก ์กฐํšŒ (PrjList)

  • ๋ช…๋ น: text=PrjList
  • ์„ค๋ช…: ํ˜„์žฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ(๊ณ ๊ฐ) ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐ˜ํ™˜์˜ˆ์‹œ: [{"csn":44, "cname":"Acme Corp"}, ...]

ํ”„๋กœ์ ํŠธ ์‹ ๊ทœ ๋“ฑ๋ก (PrjPut)

  • ๋ช…๋ น: text=PrjPut <cCode>, '<cName>'
  • ํŒŒ๋ผ๋ฏธํ„ฐ:
    • cCode: ํ”„๋กœ์ ํŠธ ์˜๋ฌธ ์ฝ”๋“œ (Unique)
    • cName: ํ”„๋กœ์ ํŠธ ํ‘œ์‹œ ๋ช…์นญ
  • ์˜ˆ์‹œ: text=PrjPut GIIP_DEV, 'GIIP ๊ฐœ๋ฐœํŒ€'

ํ”„๋กœ์ ํŠธ ์‚ญ์ œ (PrjDel)

  • ๋ช…๋ น: text=PrjDel <CSN>
  • ์˜ˆ์‹œ: text=PrjDel 44

2. ์„œ๋น„์Šค ๊ทธ๋ฃน(Project Group) ๊ด€๋ฆฌ

์„œ๋น„์Šค ๋ชฉ๋ก ์กฐํšŒ (PrjGrpList)

  • ๋ช…๋ น: text=PrjGrpList <CSN>
  • ์„ค๋ช…: ํŠน์ • ํ”„๋กœ์ ํŠธ ํ•˜์œ„์˜ ์„œ๋น„์Šค ๊ทธ๋ฃน(cgCode ๊ธฐ๋ฐ˜) ๋ชฉ๋ก์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๋“ฑ๋ก/์ˆ˜์ • (PrjGrpPut)

  • ๋ช…๋ น: text=PrjGrpPut '<CgCode>', <cSn>, '<cgName>', '<cgDesc>'
  • ์˜ˆ์‹œ: text=PrjGrpPut 'WEB', 44, 'Web Service', 'Primary web application group'

3. ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ (Project User Management)

ํ”„๋กœ์ ํŠธ(CSN)์— ์†ํ•œ ์‚ฌ์šฉ์ž๋ฅผ ์กฐํšŒยท์ดˆ๋Œ€ยท๊ถŒํ•œ๋ณ€๊ฒฝยท์ œ๊ฑฐํ•˜๋Š” API์ž…๋‹ˆ๋‹ค. ์›น UI๋Š” ์œ ์ € ๋ชฉ๋ก ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

ํ”„๋กœ์ ํŠธ ์‚ฌ์šฉ์ž ๋ชฉ๋ก ์กฐํšŒ (UserList)

  • ๋ช…๋ น: text=UserList csn
  • jsondata: {"csn": 44}
  • ์„ค๋ช…: ํ˜ธ์ถœ์ž๊ฐ€ ์†ํ•œ ํ”„๋กœ์ ํŠธ(csn)์˜ ๋ฉค๋ฒ„ ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ํ˜ธ์ถœ์ž๊ฐ€ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ ๋ฉค๋ฒ„๊ฐ€ ์•„๋‹ˆ๋ฉด ์˜ค๋ฅ˜ ์—†์ด ๋นˆ ๋ชฉ๋ก(0๊ฑด)์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐ˜ํ™˜ ์ปฌ๋Ÿผ: usn, uloginid, uname, uemail, uregdt, isPay, uPerCorp(๊ถŒํ•œ: 1=Member, 49=Owner)

์‚ฌ์šฉ์ž ์ดˆ๋Œ€/๋งคํ•‘ (PrjUserMap)

  • ๋ช…๋ น: text=PrjUserMap csn uloginid
  • jsondata: {"csn": 44, "uloginid": "user@example.com"}
  • ์„ค๋ช…: ์ด๋ฏธ GIIP ๊ณ„์ •์ด ์กด์žฌํ•˜๋Š” ์‚ฌ์šฉ์ž(uloginid=๋กœ๊ทธ์ธID, ๋ณดํ†ต ์ด๋ฉ”์ผ)๋ฅผ ํ”„๋กœ์ ํŠธ ๋ฉค๋ฒ„๋กœ ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค. ์‹ ๊ทœ ๋ฉค๋ฒ„์˜ ๊ถŒํ•œ์€ ํ•ญ์ƒ 1(Member)๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  • โš ๏ธ ์ฃผ์˜: uloginid์— ํ•ด๋‹นํ•˜๋Š” GIIP ๊ณ„์ •์ด ์•„์ง ์—†์œผ๋ฉด ๋งคํ•‘์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค(retcode 304). userlist ํŽ˜์ด์ง€์˜ "์ดˆ๋Œ€" ๋ฒ„ํŠผ์€ ์ด API ํ˜ธ์ถœ๊ณผ ์ดˆ๋Œ€ ์ด๋ฉ”์ผ ๋ฐœ์†ก์„ ํ•จ๊ป˜ ์ˆ˜ํ–‰ํ•˜๋˜, ์ด API ์‹คํŒจ๋Š” ํ™”๋ฉด์— ๋…ธ์ถœํ•˜์ง€ ์•Š๊ณ  ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค โ€” ๋Œ€์ƒ์ž๊ฐ€ ๊ฐ€์ž… ์ „์ด๋ฉด ์ด๋ฉ”์ผ๋งŒ ๋ฐœ์†ก๋˜๊ณ , ์‹ค์ œ ๋ฉค๋ฒ„ ๋งคํ•‘์€ ๋Œ€์ƒ์ž๊ฐ€ ๊ฐ€์ž…ํ•œ ๋’ค ์ด API๋ฅผ ๋‹ค์‹œ ํ˜ธ์ถœํ•ด์•ผ ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
  • ๋ฐ˜ํ™˜: retcode โ€” 200(์„ฑ๊ณต), 201(๋ฏธ์ธ์ฆ), 301(ํ˜ธ์ถœ์ž๊ฐ€ ํ•ด๋‹น csn ๋ฉค๋ฒ„ ์•„๋‹˜), 304(๋Œ€์ƒ ๊ณ„์ • ์—†์Œ), 305(์ด๋ฏธ ๋ฉค๋ฒ„)

์‚ฌ์šฉ์ž ๊ถŒํ•œ ๋ณ€๊ฒฝ (PrjUserPer)

  • ๋ช…๋ น: text=PrjUserPer csn uloginid uper
  • jsondata: {"csn": 44, "uloginid": "user@example.com", "uper": 49}
  • ์„ค๋ช…: ํ”„๋กœ์ ํŠธ ๋ฉค๋ฒ„์˜ ๊ถŒํ•œ์„ Member(1) โ†” Owner(49)๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ํ˜ธ์ถœ์ž๊ฐ€ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์˜ Owner(49)์—ฌ์•ผ ํ•˜๋ฉฐ, ์ž๊ธฐ ์ž์‹ ์˜ ๊ถŒํ•œ์€ ์ด API๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • uper ํ—ˆ์šฉ๊ฐ’: 1(Member) ๋˜๋Š” 49(Owner)๋งŒ ํ—ˆ์šฉ๋˜๋ฉฐ, ๊ทธ ์™ธ ๊ฐ’์€ ๊ฑฐ๋ถ€๋ฉ๋‹ˆ๋‹ค.
  • ๋ฐ˜ํ™˜: RstVal/RstMsg โ€” 200(์„ฑ๊ณต), 401(๋ฏธ์ธ์ฆ), 403(๊ถŒํ•œ ๋ถ€์กฑ/Owner ์•„๋‹˜/์ž๊ธฐ ์ž์‹  ๋Œ€์ƒ/ํ—ˆ์šฉ๋˜์ง€ ์•Š์€ uper ๊ฐ’), 404(๋Œ€์ƒ ์—†์Œ ๋˜๋Š” ๋น„๋ฉค๋ฒ„)

์‚ฌ์šฉ์ž ์ œ๊ฑฐ (PrjUserDel)

  • ๋ช…๋ น: text=PrjUserDel csn uloginid
  • jsondata: {"csn": 44, "uloginid": "user@example.com"}
  • ์„ค๋ช…: ํ”„๋กœ์ ํŠธ ๋ฉค๋ฒ„์‹ญ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ์‚ญ์ œ ์ฆ‰์‹œ ํ•ด๋‹น ์‚ฌ์šฉ์ž๋Š” ํ”„๋กœ์ ํŠธ์˜ ๋ชจ๋“  ์ž์‚ฐ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์žƒ์Šต๋‹ˆ๋‹ค.
  • ๋ฐ˜ํ™˜: RstVal/RstMsg โ€” 200(์„ฑ๊ณต), 201(๋ฏธ์ธ์ฆ), 301(ํ˜ธ์ถœ์ž๊ฐ€ ํ•ด๋‹น csn ๋ฉค๋ฒ„ ์•„๋‹˜), 304(๋Œ€์ƒ์ด ํ”„๋กœ์ ํŠธ ๋ฉค๋ฒ„ ์•„๋‹˜)

๐Ÿ›ก๏ธ Sk3(๊ณ ์„ฑ๋Šฅ ๋กœ๊น…) ํ™œ์šฉ

์‹ ๊ทœ ํ”„๋กœ์ ํŠธ ๋“ฑ๋ก์ด๋‚˜ ์„œ๋น„์Šค ๊ทธ๋ฃน ์ˆ˜์ •๊ณผ ๊ฐ™์ด ์ธํ”„๋ผ ์ „๋ฐ˜์˜ ๊ตฌ์กฐ์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ๊ด€๋ฆฌ ์ž‘์—… ์‹œ, ์ž‘์—…์˜ ์ •ํ•ฉ์„ฑ ํ™•๋ณด์™€ ์ƒ์„ธํ•œ ๊ฐ์‚ฌ ๋กœ๊ทธ(Audit Log)๋ฅผ ์œ„ํ•ด giipApiSk3 ์—”๋“œํฌ์ธํŠธ๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

  • ์—”๋“œํฌ์ธํŠธ: https://giipfaw.azurewebsites.net/api/giipApiSk3
  • ์žฅ์ : ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์‹คํŒจ ์‹œ ํ˜ธ์ถœ์ž์˜ ์ƒ์„ธ ํ™˜๊ฒฝ ์ •๋ณด(IP, UA)์™€ StackTrace๋ฅผ ์ฆ‰์‹œ ๊ธฐ๋กํ•˜์—ฌ ์„ค์ • ์˜ค๋ฅ˜๋‚˜ ๊ถŒํ•œ ์ด์Šˆ๋ฅผ ์‹ ์†ํ•˜๊ฒŒ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ™œ์šฉ ํŒ: text ๋ช…๋ น๊ณผ jsondata์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ์น˜ํ™˜ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ ๋ณต์žกํ•œ ์„œ๋น„์Šค ๊ทธ๋ฃน ์„ค๋ช…์ด๋‚˜ ํ•œ๊ธ€ ๋ช…์นญ ๋“ฑ์„ ์œ ์‹ค ์—†์ด ์•ˆ์ „ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜์‹ญ์‹œ์˜ค.

๐Ÿ”ง ๋ฌธ์ œ ํ•ด๊ฒฐ

์ฆ์ƒ์›์ธํ•ด๊ฒฐ
์š”์ฒญ์ด ์ธ์ฆ ์˜ค๋ฅ˜๋กœ ๊ฑฐ๋ถ€๋œ๋‹ค๊ณตํ†ต ์ธ์ฆ ํ—ค๋”(x-giip-ak/x-giip-sk)๊ฐ€ ๋ˆ„๋ฝ๋จ๋ชจ๋“  ์š”์ฒญ์— ๋‘ ์ธ์ฆ ํ—ค๋”๋ฅผ ํฌํ•จํ–ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค
PrjPut ํ˜ธ์ถœ์ด ์‹คํŒจํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š๋Š”๋‹คtext ๋ช…๋ น ์‹œ๊ทธ๋‹ˆ์ฒ˜(PrjPut <cCode>, '<cName>')๊ฐ€ ๋งž์ง€ ์•Š์ŒcCode(Unique)์™€ ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ผ cName ํ˜•์‹์„ ์ •ํ™•ํžˆ ๋งž์ถฐ ๋‹ค์‹œ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
PrjDel ์‘๋‹ต์˜ RstVal์ด 0์ด ์•„๋‹ˆ๋‹ค์ž˜๋ชป๋œ CSN์„ ์ง€์ •ํ–ˆ๊ฑฐ๋‚˜ ์‚ญ์ œ ๊ถŒํ•œ์ด ๋ถ€์กฑํ•จ์˜ฌ๋ฐ”๋ฅธ CSN์„ ํ™•์ธํ•˜๊ณ , ํ”„๋กœ์ ํŠธ ์‚ญ์ œ์— ํ•„์š”ํ•œ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค
PrjGrpPut์˜ ํ•œ๊ธ€/ํŠน์ˆ˜๋ฌธ์ž ๋ช…์นญ์ด ๊นจ์ง„๋‹คtext ๋ฌธ์ž์—ด์—์„œ ํŠน์ˆ˜๋ฌธ์ž๊ฐ€ ์ด์Šค์ผ€์ดํ”„๋˜์ง€ ์•Š์ŒgiipApiSk3์—์„œ jsondata ํŒŒ๋ผ๋ฏธํ„ฐ ์น˜ํ™˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด ๋ช…์นญ์„ ์œ ์‹ค ์—†์ด ์ „์†กํ•ฉ๋‹ˆ๋‹ค
PrjUserMap ํ˜ธ์ถœ ํ›„์—๋„ ์‚ฌ์šฉ์ž ๋ชฉ๋ก์— ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค๋Œ€์ƒ uloginid์˜ GIIP ๊ณ„์ •์ด ์•„์ง ์—†์–ด ๋งคํ•‘์ด ์‹คํŒจํ•จ(์ดˆ๋Œ€ ๋ฉ”์ผ๋งŒ ๋ฐœ์†ก๋จ)๋Œ€์ƒ์ž๊ฐ€ ๋จผ์ € GIIP์— ๊ฐ€์ž…ํ•œ ๋’ค ๋‹ค์‹œ PrjUserMap์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
PrjUserPer ํ˜ธ์ถœ์ด 403์œผ๋กœ ๊ฑฐ๋ถ€๋œ๋‹คํ˜ธ์ถœ์ž๊ฐ€ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ Owner(49)๊ฐ€ ์•„๋‹ˆ๊ฑฐ๋‚˜, ์ž๊ธฐ ์ž์‹ ์„ ๋Œ€์ƒ์œผ๋กœ ์ง€์ •ํ•จOwner ๊ณ„์ •์œผ๋กœ ํ˜ธ์ถœํ•˜๊ณ , ๋Œ€์ƒ์€ ์ž๊ธฐ ์ž์‹ ์ด ์•„๋‹Œ ๋‹ค๋ฅธ ๋ฉค๋ฒ„๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค

๋ฒ„์ „: 1.4 ์ตœ์ข… ์—…๋ฐ์ดํŠธ: 2026-07-26 ์†Œ์Šค ํŒŒ์ผ: giipv3/public/help/api-project-user.ko.md


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