giip
SES Proposal
5 min read

CQELSVR ์‹คํ–‰ ๋ชฉ๋ก ๊ฐ€์ด๋“œ

ํŠน์ • ๋…ผ๋ฆฌ ์„œ๋ฒ„(LSSN)์— ๋“ฑ๋ก๋œ CQE(Custom Query Engine) ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ์Šค์ผ€์ค„์„ ์กฐํšŒํ•˜๊ณ , ๊ฐ•์ œ ์‹คํ–‰ยทํ™œ์„ฑํ™” ์ „ํ™˜ยท์‚ญ์ œยท์Šคํฌ๋ฆฝํŠธ ํ™•์ธ๊นŒ์ง€ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.

๐Ÿš€ CQELSVR ์‹คํ–‰ ๋ชฉ๋ก ํŽ˜์ด์ง€๋กœ ์ด๋™ โ†’

๐Ÿ“‹ ๊ฐœ์š”

CQELSVR ์‹คํ–‰ ๋ชฉ๋ก์€ ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ ์„œ๋ฒ„(LSSN)์— ๋“ฑ๋ก๋œ CQE ์Šคํฌ๋ฆฝํŠธ ์Šค์ผ€์ค„(tMgmtScriptList)์„ ์กฐํšŒํ•˜๊ณ  ์ง์ ‘ ์ œ์–ดํ•˜๋Š” ํ™”๋ฉด์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„๋ฅผ ์„ ํƒํ•˜๋ฉด ํ•ด๋‹น ์„œ๋ฒ„์— ๋“ฑ๋ก๋œ ์Šค์ผ€์ค„ ๋ชฉ๋ก์ด ํ‘œ์‹œ๋˜๋ฉฐ, ๊ฐ ํ–‰์—์„œ ๊ฐ•์ œ ์‹คํ–‰ยทํ™œ์„ฑํ™” ์ „ํ™˜ยท์‚ญ์ œยท์Šคํฌ๋ฆฝํŠธ ๋ณธ๋ฌธ ํ™•์ธ์„ ๋ฐ”๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ”„ ์ „์ฒด ํ๋ฆ„ (CQE Flow)

flowchart TD
    A[๊ด€๋ฆฌ์ž: CQERepoPut<br/>์Šคํฌ๋ฆฝํŠธ๋ฅผ repo์— ๋“ฑ๋ก] --> B[tMgmtScript<br/>์Šคํฌ๋ฆฝํŠธ ์ €์žฅ์†Œ]
    B --> C[๊ด€๋ฆฌ์ž: CQEQueuePut<br/>๋Œ€์ƒ ์„œ๋ฒ„์— ์Šค์ผ€์ค„ ํ• ๋‹น]
    C --> D[tMgmtScriptList<br/>lssn๋ณ„ ์Šค์ผ€์ค„]
    D --> E[์—์ด์ „ํŠธ: CQEQueueGet<br/>์ฃผ๊ธฐ์  ํด๋ง]
    E --> F[tMgmtQue<br/>์‹คํ–‰ ํ์—์„œ ms_body ์ˆ˜์‹ ]
    F --> G[์—์ด์ „ํŠธ: ๋กœ์ปฌ์—์„œ<br/>์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰]
    G --> H[KVSPut<br/>๊ฒฐ๊ณผ ๋ณด๊ณ ]
    style A fill:#e1f5fe
    style B fill:#b3e5fc
    style C fill:#e1f5fe
    style D fill:#b3e5fc
    style E fill:#e8f5e9
    style F fill:#c8e6c9
    style G fill:#fff9c4
    style H fill:#ffccbc

๐Ÿ” ํ™”๋ฉด ๊ตฌ์„ฑ

1. ์„œ๋ฒ„ ์„ ํƒ

  • LSSN ์ž…๋ ฅ: ์ƒ๋‹จ ์ž…๋ ฅ์ฐฝ์— ๋…ผ๋ฆฌ ์„œ๋ฒ„ ID(LSSN)๋ฅผ ์ง์ ‘ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  • ์„œ๋ฒ„ ์„ ํƒ ๋ฒ„ํŠผ: ํด๋ฆญํ•˜๋ฉด ํ˜„์žฌ ํ”„๋กœ์ ํŠธ(csn)์— ๋“ฑ๋ก๋œ ์„œ๋ฒ„ ๋ชฉ๋ก์ด ํŒ์—…์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์›ํ•˜๋Š” ์„œ๋ฒ„๋ฅผ ์„ ํƒํ•˜๋ฉด LSSN ํ•„๋“œ์— ์ž๋™ ์ž…๋ ฅ๋ฉ๋‹ˆ๋‹ค.
  • ์„ธ์…˜ ๊ธฐ์–ต: ํ•œ ๋ฒˆ ์„ ํƒํ•œ LSSN์€ ๋ธŒ๋ผ์šฐ์ € sessionStorage์— ์ €์žฅ๋˜์–ด ์ƒˆ๋กœ๊ณ ์นจ ํ›„์—๋„ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

2. ์‹คํ–‰ ๋ชฉ๋ก ์กฐํšŒ

  • Run ๋ฒ„ํŠผ: LSSN์„ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ ์„ ํƒํ•œ ํ›„ ํด๋ฆญํ•˜๋ฉด ํ•ด๋‹น ์„œ๋ฒ„์˜ ์Šค์ผ€์ค„ ๋ชฉ๋ก์ด ํ•˜๋‹จ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • ํŽ˜์ด์ง€ ์ด๋™: Prev / Next ๋ฒ„ํŠผ์œผ๋กœ ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. Offset ์ž…๋ ฅ์ฐฝ์— ์ˆซ์ž๋ฅผ ์ง์ ‘ ์ž…๋ ฅํ•˜๊ณ  Run์„ ๋ˆŒ๋Ÿฌ ํŠน์ • ์˜คํ”„์…‹์œผ๋กœ ์ด๋™ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. (์„œ๋ฒ„๋Š” ํ•œ ๋ฒˆ์— ์ตœ๋Œ€ 25๊ฑด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.)

3. ํ–‰๋ณ„ ๋™์ž‘

๋ชฉ๋ก์˜ ๊ฐ ํ–‰(์Šค์ผ€์ค„ = mslsn 1๊ฑด)์—์„œ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ฐ•์ œ ์‹คํ–‰: ์Šค์ผ€์ค„ ์ฃผ๊ธฐ์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ์ฆ‰์‹œ 1ํšŒ ์‹คํ–‰ ํ์— ๋„ฃ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ๋Œ€๊ธฐ ์ค‘์ธ ํ๊ฐ€ ์žˆ์œผ๋ฉด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.
    • ์ด ๋™์ž‘์˜ ์‹ค์ฒด๋Š” tMgmtQue ํ…Œ์ด๋ธ”์— ์‹คํ–‰๊ฑด 1๊ฑด์„ ๋„ฃ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๋Š” ์ด ํ๋ฅผ ํด๋งํ•ด์„œ ๊ฐ€์ ธ๊ฐ‘๋‹ˆ๋‹ค.
    • 1ํšŒ์„ฑ(repeat=1) ์Šค์ผ€์ค„์ด๋ผ๋ฉด ๊ฐ•์ œ ์‹คํ–‰ ์‹œ active ๊ฐ€ 0์œผ๋กœ ๋‚ด๋ ค๊ฐ‘๋‹ˆ๋‹ค. ์ด๋Š” "์ด ์Šค์ผ€์ค„์„ ๋‹ค์Œ ์ฃผ๊ธฐ์— ๋‹ค์‹œ ์ž๋™ ๋“ฑ๋กํ•˜์ง€ ๋ง๋ผ"๋Š” ๋œป์ผ ๋ฟ์ด๋ฉฐ, ์ด๋ฏธ ํ์— ๋“ค์–ด๊ฐ„ ์‹คํ–‰๊ฑด์€ ๊ทธ๋Œ€๋กœ ์ •์ƒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. active=0 ์„ ๋ณด๊ณ  ์‹คํ–‰์ด ์ทจ์†Œ๋œ ๊ฒƒ์œผ๋กœ ์˜คํ•ดํ•˜์ง€ ๋งˆ์„ธ์š”.
  • ํ™œ์„ฑํ™” ์ „ํ™˜: ํ•ด๋‹น ์Šค์ผ€์ค„์˜ ํ™œ์„ฑ(Active) ์ƒํƒœ๋ฅผ ์ผœ๊ธฐ/๋„๊ธฐ๋กœ ํ† ๊ธ€ํ•ฉ๋‹ˆ๋‹ค.
  • ์‚ญ์ œ: ํ•ด๋‹น ์Šค์ผ€์ค„(mslsn)์„ ๋ชฉ๋ก์—์„œ ์˜๊ตฌํžˆ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค(๋‹จ์ˆœ ์ทจ์†Œ๊ฐ€ ์•„๋‹ˆ๋ผ ์žฌ๋“ฑ๋ก์ด ํ•„์š”ํ•œ ์‚ญ์ œ์ž…๋‹ˆ๋‹ค).
  • ์Šคํฌ๋ฆฝํŠธ ๋ณด๊ธฐ: ํ–‰์˜ ์‹คํ–‰ ID(mssn)๋ฅผ ํด๋ฆญํ•˜๋ฉด ํ•ด๋‹น ์Šคํฌ๋ฆฝํŠธ์˜ ๋ณธ๋ฌธ์ด ํ•˜๋‹จ(๋˜๋Š” ํŒ์—…) ํŒจ๋„์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

4. ์ƒ์„ธ ํŽ˜์ด์ง€ ์ด๋™

  • Machine Detail ๋ฒ„ํŠผ: ์„ ํƒ๋œ LSSN์˜ ์ƒ์„ธ ํŽ˜์ด์ง€(/lsvrdetail)๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  • Add Queue ๋ฒ„ํŠผ: /ko/cqeQueuePut ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜์—ฌ ์ด ์„œ๋ฒ„์— ์ƒˆ ์Šค์ผ€์ค„์„ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ์ž‘์ผ์‹œ์˜ ํƒ€์ž„์กด ๊ทœ์•ฝ์€ CQE ํ ๋“ฑ๋ก ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๐Ÿ“Š ๋ชฉ๋ก ์—ด ์„ค๋ช…

์—ด์„ค๋ช…
msName๋“ฑ๋ก๋œ ์Šคํฌ๋ฆฝํŠธ ์ด๋ฆ„
mssn์Šคํฌ๋ฆฝํŠธ ๊ณ ์œ  ID. ํด๋ฆญํ•˜๋ฉด ์Šคํฌ๋ฆฝํŠธ ๋ณธ๋ฌธ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
mslsn์ด ์Šค์ผ€์ค„(์„œ๋ฒ„-์Šคํฌ๋ฆฝํŠธ ํ• ๋‹น) ๊ณ ์œ  ID. ๊ฐ•์ œ ์‹คํ–‰/ํ™œ์„ฑํ™” ์ „ํ™˜/์‚ญ์ œ ๋Œ€์ƒ์ž…๋‹ˆ๋‹ค.
lssn์ด ์Šค์ผ€์ค„์ด ๋“ฑ๋ก๋œ ๋…ผ๋ฆฌ ์„œ๋ฒ„ ID
active์ฃผ๊ธฐ ์Šค์ผ€์ค„์˜ ์ž๋™ ์žฌ๋“ฑ๋ก ์—ฌ๋ถ€(1=์ผœ์ง/0=๊บผ์ง). ์ด ๊ฐ’์ด 0์ด์–ด๋„ ์ด๋ฏธ ํ์— ๋“ค์–ด๊ฐ„ ์‹คํ–‰๊ฑด์˜ ์‹คํ–‰ ์—ฌ๋ถ€์™€๋Š” ๋ฌด๊ด€ํ•ฉ๋‹ˆ๋‹ค. 1ํšŒ์„ฑ(repeat=1) ์Šค์ผ€์ค„์€ ๊ฐ•์ œ ์‹คํ–‰ ์‹œ ์ด ๊ฐ’์ด 0์œผ๋กœ ๋‚ด๋ ค๊ฐ€๋Š” ๊ฒƒ์ด ์ •์ƒ์ž…๋‹ˆ๋‹ค.
repeat๋ฐ˜๋ณต ์‹คํ–‰ ์—ฌ๋ถ€/๋ฐฉ์‹(1=1ํšŒ์„ฑ)
interval๋ฐ˜๋ณต ์ฃผ๊ธฐ(๋ถ„)
q_flag์‹คํ–‰ ํ ๋Œ€๊ธฐ์ค‘ ํ‘œ์‹œ(1=tMgmtQue์— ๋Œ€๊ธฐ์ค‘). ์—์ด์ „ํŠธ๊ฐ€ ํ๋ฅผ ๊ฐ€์ ธ๊ฐ€๋ฉด 0์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค. ์ฆ‰ q_flag=1์€ "์•„์ง ์•ˆ ๊ฐ€์ ธ๊ฐ", 0์€ "๊ฐ€์ ธ๊ฐ”๊ฑฐ๋‚˜ ๋Œ€๊ธฐ๊ฑด ์—†์Œ"์ž…๋‹ˆ๋‹ค.
lastdate๋งˆ์ง€๋ง‰ ์‹คํ–‰(ํ ์ ์žฌ) ์‹œ๊ฐ. UTC ๊ธฐ์ค€์œผ๋กœ ์ €์žฅยทํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค(๋กœ์ปฌ ์‹œ๊ฐ๊ณผ ์‹œ์ฐจ๋งŒํผ ๋‹ฌ๋ผ ๋ณด์ด๋Š” ๊ฒƒ์ด ์ •์ƒ).
regdate์ด ์Šค์ผ€์ค„์ด ๋“ฑ๋ก๋œ ์‹œ๊ฐ

์‹คํ–‰ ํ›„ ์ƒํƒœ ์ „์ด

๊ฐ•์ œ ์‹คํ–‰ ๋˜๋Š” ์ฃผ๊ธฐ ์‹คํ–‰์œผ๋กœ ์—์ด์ „ํŠธ๊ฐ€ ํ๋ฅผ ๊ฐ€์ ธ๊ฐ€๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ’์ด ๋ฐ”๋€๋‹ˆ๋‹ค.

๋Œ€์ƒ๋ณ€ํ™”
tMgmtQue.send_flag1 ๋กœ ์ „ํ™˜(์—์ด์ „ํŠธ๊ฐ€ ์ˆ˜๋ นํ•จ)
q_flag1 โ†’ 0 ์œผ๋กœ ๋ณต๊ท€(๋Œ€๊ธฐ๊ฑด ํ•ด์†Œ)
lastdate์‹คํ–‰(ํ ์ ์žฌ) ์‹œ๊ฐ์œผ๋กœ ๊ฐฑ์‹ 
active์ž๋™์œผ๋กœ ๋ณต๊ตฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

โš ๏ธ 1ํšŒ์„ฑ ์Šค์ผ€์ค„์„ ๊ฐ•์ œ ์‹คํ–‰ํ•œ ๋’ค์—๋„ ์ฃผ๊ธฐ ๋ฐ˜๋ณต์„ ๊ณ„์†ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ์‹คํ–‰์ด ๋๋‚œ ํ›„ [ํ™œ์„ฑํ™” ์ „ํ™˜]์œผ๋กœ active ๋ฅผ ๋‹ค์‹œ ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์ด ์•Œ์•„์„œ ๋˜๋Œ๋ ค ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

โš™๏ธ ์š”๊ตฌ์‚ฌํ•ญ

  • **๋กœ๊ทธ์ธ ์„ธ์…˜(CSN)**์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์„ธ์…˜์ด ์—†์œผ๋ฉด ์„œ๋ฒ„ ๋ชฉ๋ก์„ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • ์กฐํšŒํ•˜๋ ค๋Š” LSSN์ด ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์— ๋“ฑ๋ก๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์Šค์ผ€์ค„์— ๋Œ€ํ•œ ๊ฐ•์ œ ์‹คํ–‰/ํ™œ์„ฑํ™” ์ „ํ™˜์€ ํ•ด๋‹น ์Šค์ผ€์ค„์˜ ์†Œ์œ ์ž์ด๊ฑฐ๋‚˜ ๋ณ„๋„ ๊ถŒํ•œ(๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ๊ตฌ๋งค ๋“ฑ)์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

API ์ฐธ์กฐ

์ด ๊ธฐ๋Šฅ์˜ API ์ƒ์„ธ ์‚ฌ์–‘์€ ๋ณ„๋„ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๐Ÿ“˜ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ API ๋ ˆํผ๋Ÿฐ์Šค

๋ฌธ์ œ ํ•ด๊ฒฐ

์ฆ์ƒ์›์ธํ•ด๊ฒฐ
์„œ๋ฒ„ ์„ ํƒ ํŒ์—…์— ๋ชฉ๋ก์ด ๋น„์–ด ์žˆ์Œํ˜„์žฌ ์„ ํƒ๋œ ํ”„๋กœ์ ํŠธ(csn)์— ๋“ฑ๋ก๋œ ์„œ๋ฒ„๊ฐ€ ์—†์Œ์ƒ๋‹จ์—์„œ ์˜ฌ๋ฐ”๋ฅธ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ–ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
๊ฐ•์ œ ์‹คํ–‰์ด ์•„๋ฌด ๋ฐ˜์‘ ์—†์ด ์‹คํŒจํ•จ์ด๋ฏธ ๋Œ€๊ธฐ ์ค‘์ธ ํ๊ฐ€ ์žˆ๊ฑฐ๋‚˜(์ค‘๋ณต ์‹คํ–‰ ๋ฐฉ์ง€), ์ด ์Šค์ผ€์ค„์— ๋Œ€ํ•œ ๊ถŒํ•œ์ด ์—†์Œ์ž ์‹œ ํ›„ ๋‹ค์‹œ ์‹œ๋„ํ•˜๊ฑฐ๋‚˜, ์Šค์ผ€์ค„ ์†Œ์œ ์ž์—๊ฒŒ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
์‚ญ์ œ ํ›„์—๋„ ๋ชฉ๋ก์— ๋‚จ์•„ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž„์‚ญ์ œ๋Š” ์„ฑ๊ณตํ–ˆ์ง€๋งŒ ํ™”๋ฉด์ด ์•„์ง ์ƒˆ๋กœ๊ณ ์นจ๋˜์ง€ ์•Š์ŒRun์„ ๋‹ค์‹œ ๋ˆŒ๋Ÿฌ ์ตœ์‹  ๋ชฉ๋ก์„ ๋‹ค์‹œ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.
ํ™œ์„ฑํ™”๋ฅผ ์ผฐ๋Š”๋ฐ๋„ ์‹คํ–‰๋˜์ง€ ์•Š์Œํ™œ์„ฑํ™”๋Š” ์˜ˆ์•ฝ ์Šค์ผ€์ค„๋งŒ ์žฌ๊ฐœ์‹œํ‚ค๋ฉฐ ์ฆ‰์‹œ ์‹คํ–‰์€ ์•„๋‹˜์ฆ‰์‹œ ์‹คํ–‰์ด ํ•„์š”ํ•˜๋ฉด ๊ฐ•์ œ ์‹คํ–‰์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
๊ฐ•์ œ์‹คํ–‰ ํ›„ q_flag=1 ์ธ๋ฐ active=0 ์ด๋ผ ์‹คํ–‰ ์•ˆ ๋  ๊ฒƒ ๊ฐ™๋‹ค1ํšŒ์„ฑ ์Šค์ผ€์ค„์€ ๊ฐ•์ œ์‹คํ–‰ ์‹œ active ๊ฐ€ 0์œผ๋กœ ๋‚ด๋ ค๊ฐ€๋Š” ๊ฒƒ์ด ์ •์ƒ๊ทธ๋Œ€๋กœ ๋‘๋ฉด ๋‹ค์Œ ์—์ด์ „ํŠธ ํด๋ง์— ์‹คํ–‰๋œ๋‹ค. ์ดํ›„์—๋„ ์ฃผ๊ธฐ ๋ฐ˜๋ณต์„ ์›ํ•˜๋ฉด [ํ™œ์„ฑํ™” ์ „ํ™˜]์œผ๋กœ ๋‹ค์‹œ ์ผ ๋‹ค
ํ๊ฐ€ ๋Œ€๊ธฐ์ค‘(q_flag=1)์ธ๋ฐ ๋ช‡ ๋ถ„์ด ์ง€๋‚˜๋„ ์•ˆ ๊ฐ€์ ธ๊ฐ„๋‹ค์Šค์ผ€์ค„์˜ lastdate/์‹œ์ž‘์ผ์‹œ๊ฐ€ ๋ฏธ๋ž˜ ์‹œ๊ฐ์œผ๋กœ ์ €์žฅ๋ผ ์žˆ์œผ๋ฉด ํ”ฝ์—… ํ›„๋ณด ์ •๋ ฌ์—์„œ ์˜๊ตฌํžˆ ๋ฐ€๋ฆฐ๋‹ค(๋กœ์ปฌ์‹œ๊ฐ์„ UTC DB์— ๊ทธ๋Œ€๋กœ ์ €์žฅํ•œ ๊ฒฝ์šฐ)ํ•ด๋‹น ์Šค์ผ€์ค„์˜ ์‹œ์ž‘์ผ์‹œ๋ฅผ ํ™•์ธํ•˜๊ณ , ๋ฏธ๋ž˜๋กœ ์žกํ˜€ ์žˆ์œผ๋ฉด ๋‹ค์‹œ ๋“ฑ๋กํ•œ๋‹ค. ์žฌ๋ฐœ ์‹œ giip ์ด์Šˆ๋กœ ๋ณด๊ณ 

๐Ÿ”Œ CQE API (์ž๋™ํ™”์šฉ)

์œ„ UI ๋™์ž‘์€ ๋‹ค์Œ CQE API ๋ฒ„๋ธŒ(byAK/bySk ๋””์ŠคํŒจ์ฒ˜)์— ๋Œ€์‘ํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ์€ text(๋ฒ„๋ธŒ+ํŒŒ๋ผ๋ฏธํ„ฐ ์ด๋ฆ„), jsondata(๊ฐ’), token์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๋‹จ, ๋ชฉ๋ก ์กฐํšŒ(CQELsvrRunList)๋งŒ์€ ์˜ˆ์™ธ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ text ๋ฌธ์ž์—ด์— ์ง์ ‘ ํฌํ•จํ•ด ๋ณด๋ƒ…๋‹ˆ๋‹ค(jsondata ๋ฏธ์‚ฌ์šฉ).

  • CQELsvrRunList lssn <lssn> <offset> โ€” ํ•ด๋‹น LSSN์— ๋“ฑ๋ก๋œ ์Šค์ผ€์ค„ ๋ชฉ๋ก ์กฐํšŒ. ์„œ๋ฒ„์ธก์—์„œ ์˜คํ”„์…‹ ๊ธฐ์ค€ ์ตœ๋Œ€ 25๊ฑด์„ ๋ฐ˜ํ™˜(๊ณ ์ •, ์š”์ฒญ์œผ๋กœ ์กฐ์ ˆ ๋ถˆ๊ฐ€). ์‘๋‹ต ์ปฌ๋Ÿผ์€ ์œ„ "๋ชฉ๋ก ์—ด ์„ค๋ช…" ํ‘œ์™€ ๋™์ผ.
  • LSVRList csn โ€” ํ•ด๋‹น csn(ํ”„๋กœ์ ํŠธ)์— ๋“ฑ๋ก๋œ ๋…ผ๋ฆฌ ์„œ๋ฒ„ ๋ชฉ๋ก ์กฐํšŒ(์„œ๋ฒ„ ์„ ํƒ ํŒ์—…์— ์‚ฌ์šฉ).
  • CQERunForce mslsn โ€” ์Šค์ผ€์ค„๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ์ฆ‰์‹œ 1ํšŒ ์‹คํ–‰ ํ(tMgmtQue)์— ์ ์žฌ. 1ํšŒ์„ฑ(repeat=1) ์Šค์ผ€์ค„์€ ์ด๋•Œ active ๊ฐ€ 0์œผ๋กœ ๋‚ด๋ ค๊ฐ€์ง€๋งŒ, ์ ์žฌ๋œ ์‹คํ–‰๊ฑด์€ ๊ทธ๋Œ€๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์‘๋‹ต RstVal: 200=์„ฑ๊ณต, 300=๊ถŒํ•œ ์—†์Œ, 302=์ด๋ฏธ ๋Œ€๊ธฐ ์ค‘(์ถฉ๋Œ), 610=๊ถŒํ•œ ๋ถ€์กฑ ๋˜๋Š” ์ž”์—ฌ ๊ฐ€์Šค ๋ถ€์กฑ.
  • CQERunActvate mslsn โ€” ํ•ด๋‹น ์Šค์ผ€์ค„์˜ active ๊ฐ’์„ 1โ†”0์œผ๋กœ ํ† ๊ธ€. ์‘๋‹ต RstVal์€ CQERunForce์™€ ๋™์ผํ•œ ์ฒด๊ณ„(200/300/302/610).
  • CQEQueueDel mslsn โ€” ํ•ด๋‹น ์Šค์ผ€์ค„์„ ์˜๊ตฌ ์‚ญ์ œ(๋‹จ์ˆœ ์ทจ์†Œ๊ฐ€ ์•„๋‹˜, ์žฌ๋“ฑ๋ก ํ•„์š”). ์‘๋‹ต RstVal: 200=์„ฑ๊ณต, 403=๊ถŒํ•œ ์—†์Œ, 404=๋Œ€์ƒ ์—†์Œ.
  • CQERepoScript mssn โ€” ํ•ด๋‹น ์Šคํฌ๋ฆฝํŠธ(mssn)์˜ ๋ณธ๋ฌธ(msBody)์„ ์กฐํšŒ.

๊ถŒํ•œ ๋ชจ๋ธ: ์ด ํŽ˜์ด์ง€์˜ API๋Š” giip-issue ์Šคํ‚ฌ์˜ x-api-key(SK) ๋ฐฉ์‹์ด ์•„๋‹ˆ๋ผ, ๋กœ๊ทธ์ธ ์„ธ์…˜์˜ user_id+token ๊ฐ’์„ ํ•จ๊ป˜ ์ „์†กํ•˜๋Š” ์„ธ์…˜ ํ† ํฐ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์ธ์ ‘ ๊ธฐ๋Šฅ(์Šคํฌ๋ฆฝํŠธ ๋“ฑ๋ก/์„œ๋ฒ„ ์ผ๊ด„ ๋ฐฐํฌ) ์ „์ฒด ์‚ฌ์–‘: CQE ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์Šคํฌ๋ฆฝํŠธ ๊ด€๋ฆฌ ๊ฐ€์ด๋“œ์˜ "๐Ÿ”Œ CQE API (์ž๋™ํ™”์šฉ)" ์ ˆ, giipdb docs/30_Specs/CQE_SPECIFICATION.md.


๋ฒ„์ „: 1.2 ์ตœ์ข… ์—…๋ฐ์ดํŠธ: 2026-09-15 ์†Œ์Šค ํŒŒ์ผ: giipv3/public/help/cqelsvrRunList.ko.md