๋ฌธ์ ํด๊ฒฐ
์์คํ ์ด์ ์ค ๋ฐ์ํ ์ ์๋ ์ฃผ์ ๋ฌธ์ ์ ์์ธ๊ณผ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์๋ดํฉ๋๋ค.
์์ ์ ๋ก๋ ์คํจ
ํ์ผ ํ์ ์ค๋ฅ
| ์ฆ์ | ์์ธ | ํด๊ฒฐ |
|---|---|---|
| โ์ง์ํ์ง ์๋ ํ์ผ ํ์โ | .xls(๊ตฌ๋ฒ์ ), .csv ๋ฑ ์
๋ก๋ | .xlsx ํ์์ผ๋ก ๋ณํ ํ ์ฌ์
๋ก๋ |
| โ์ด ์๊ฐ ๋ง์ง ์์ต๋๋คโ | ๊ฐ์ง๊ฐ 21์ด ๋ฏธ๋ง์ด๊ฑฐ๋ ์์ง๊ฐ 3์ด ๋ฏธ๋ง | ์๋ณธ ์์ ์ ์ด ๊ตฌ์กฐ ํ์ธ โ ํค๋ ํ ์์ด ์ฒซ ํ๋ถํฐ ๋ฐ์ดํฐ |
| โ๋ ์ง๋ฅผ ์ถ์ถํ ์ ์์ต๋๋คโ | ํ์ผ๋ช ์ ๋ ์ง ํจํด ์์ | ํ์ผ๋ช
์ YYYY-MM-DD, YYYYMMDD, YY-MM-DD, YYMMDD ์ค ํ๋ ํฌํจ |
์ธ์ฝ๋ฉ ๋ฌธ์
| ์ฆ์ | ์์ธ | ํด๊ฒฐ |
|---|---|---|
| ์ ํ๋ช /๊ฑฐ๋์ฒ๋ช ์ด ๊นจ์ ธ ๋ณด์ | ์์ ํ์ผ ์ธ์ฝ๋ฉ ๋ถ์ผ์น | Excel์์ .xlsx๋ก ๋ค์ ์ ์ฅ (UTF-8 ๊ธฐ๋ณธ) |
ํน์๋ฌธ์๊ฐ ?๋ก ํ์ | ํ๊ธ ์ธ ํน์๋ฌธ์ ์ธ์ฝ๋ฉ ์์ค | ์๋ณธ ๋ฐ์ดํฐ์์ ํน์๋ฌธ์ ํ์ธ ํ ์์ |
ํ์ผ ํฌ๊ธฐ ์ ํ
๋์ฉ๋ ํ์ผ ์ ๋ก๋ ์ ํ์์์์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
| ํญ๋ชฉ | ์ ํ |
|---|---|
| ํ์ผ ํฌ๊ธฐ | Nginx ์ค์ ์ client_max_body_size ํ์ธ |
| ํ ์ | ์ ํ ์์ (๋ฉ๋ชจ๋ฆฌ ํ์ฉ ๋ฒ์) |
| ๋์ ์ ๋ก๋ | ๊ฐ์ ๋ ์ง ๋์ ์ ๋ก๋ ์ ํ์์ ๋ฎ์ด์ฐ๊ธฐ |
ํ์ค์ฝ๋ ๋งคํ ์ค๋ฅ
์ฝ๋๋งคํ์ด ์ ์ฉ๋์ง ์๋ ๊ฒฝ์ฐ
| ์ฆ์ | ์์ธ | ํด๊ฒฐ |
|---|---|---|
| ์ด์ ์ ๋งคํํ ์ ํ์ธ๋ฐ ์๋ ์ ์ฉ ์ ๋จ | ๊ณต๊ธ๊ตฌ๋ถ(ํญ)์ด ๋ค๋ฆ | ์ฝ๋๋งคํ์ ํญ๋ณ ๋ ๋ฆฝ ๊ด๋ฆฌ โ ํด๋น ํญ์์ ๋งคํ ๋ฑ๋ก |
| ์ ํ๋ช ์ด ๋ฏธ์ธํ๊ฒ ๋ค๋ฆ | ๋์ด์ฐ๊ธฐ, ๊ดํธ, ๊ท๊ฒฉ ํ๊ธฐ ์ฐจ์ด | ์ ํ๋ช ์ ํ ์ผ์น ํ์ โ ์ฝ๋๋งคํ ๋ชฉ๋ก์์ ํ์ธ |
| ๋งคํ์ ๋ฑ๋กํ๋๋ฐ ๋ค๋ฅธ ์ฝ๋๊ฐ ์ ์ฉ๋จ | ๋์ผ ์ ํ์ ์ฌ๋ฌ ๋งคํ ์กด์ฌ | usage_count๊ฐ ๋์ ๋งคํ์ด ์ฐ์ โ ๋ถํ์ํ ๋งคํ ์ญ์ |
ํ์ค์ฝ๋ ์กฐํ ์คํจ
| ์ฆ์ | ์์ธ | ํด๊ฒฐ |
|---|---|---|
| โํ์ค์ฝ๋๋ฅผ ์ฐพ์ ์ ์์ต๋๋คโ | Supabase ๋ง์คํฐ DB์ ๋ฏธ๋ฑ๋ก | MA101 API๋ก KPIS์์ ์ต์ ์ฝ๋ ์กฐํ ํ ๋ง์คํฐ ์ ๋ฐ์ดํธ |
| ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ์์ | ๋ง์คํฐ ๋ฐ์ดํฐ ๋ฏธ์ ์ฌ | ๋ง์คํฐ๋ฐ์ดํฐ ์ฌ์ ๋ก๋ ๋๋ ๋ฐ์ฝ๋/์์ ์์ค ๋๊ธฐํ ํ์ธ |
| ๋ง๋ฃ๋ ํ์ค์ฝ๋ | cancel_date๊ฐ ์ค์ ๋ ์ฝ๋ | MA101๋ก ํ์ ์ฝ๋ ํ์ธ, ํด๋น ์ฝ๋๋ ์ฌ์ฉ ๋ถ๊ฐ |
KPIS API ์ฐ๋ ์คํจ
์ธ์ฆ์ ๊ด๋ จ
| ์ฆ์ | ์์ธ | ํด๊ฒฐ |
|---|---|---|
| ์ ์ก ๋ฒํผ์ด ๋นํ์ฑํ | ์ธ์ฆ์ ๋ง๋ฃ ๋๋ ๋ฏธ๋ฑ๋ก | ๊ด๋ฆฌ์ > ์ธ์ฆ์ ๊ด๋ฆฌ์์ ์ ํจํ .pfx ์
๋ก๋ |
| โ์ธ์ฆ์ ๋น๋ฐ๋ฒํธ๊ฐ ์ฌ๋ฐ๋ฅด์ง ์์ต๋๋คโ | ์ ๋ก๋ ์ ๋น๋ฐ๋ฒํธ ์ค์ ๋ ฅ | ์ธ์ฆ์ ์ญ์ ํ ์ฌ๋ฐ๋ฅธ ๋น๋ฐ๋ฒํธ๋ก ์ฌ์ ๋ก๋ |
| โ์ธ์ฆ์ ์๋ช ์คํจโ | ์ธ์ฆ์ ํ์ผ ์์ ๋๋ ํ์ ์ค๋ฅ | .pfx ํ์ผ ์ ํจ์ฑ ํ์ธ ํ ์ฌ๋ฐ๊ธ |
| SOAP ํธ์ถ ์ 401 ์๋ต | JWT ํ ํฐ ๋ง๋ฃ | ์๋ฒ ์ฌ์์์ผ๋ก ํ ํฐ ์ฌ๋ฐ๊ธ, ๋๋ kpis_jwt_tokens ํ
์ด๋ธ ์ด๊ธฐํ |
์ธ์ฆ์ ๋ง๋ฃ ์๋ฐฉ
์ธ์ฆ์ ๊ฐฑ์ ๊ถ์ฅ ์ผ์ :
| ์์ | ์กฐ์น |
|---|---|
| D-30 | ๊ฐฑ์ ์ธ์ฆ์ ๋ฐ๊ธ ์ ์ฒญ ์์ |
| D-7 | ๊ฐฑ์ ์ธ์ฆ์ ์๋ น ํ์ธ, ํ ์คํธ ํ๊ฒฝ์์ ๊ฒ์ฆ |
| D-1 | ์ด์ ์๋ฒ์ ์ ์ธ์ฆ์ ์ ๋ก๋ ์๋ฃ |
๋คํธ์ํฌ ๊ด๋ จ
| ์ฆ์ | ์์ธ | ํด๊ฒฐ |
|---|---|---|
| โECONNREFUSEDโ ๋๋ ํ์์์ | KPIS ์๋ฒ ์ ๊ฒ ๋๋ ๋คํธ์ํฌ ์ฅ์ | KPIS ๊ณต์ง์ฌํญ ํ์ธ, ์๊ฐ ํ ์ฌ์๋ |
| โENOTFOUNDโ | DNS ํด์ ์คํจ | Oracle Cloud ์๋ฒ์ DNS ์ค์ ํ์ธ |
| API ํธ์ถ์ ๋์ง๋ง ์๋ต์ด ๋น์ด์์ | KPIS ์๋ฒ ๋ถ๋ถ ์ฅ์ | ๋ค๋ฅธ API(MA101 ๋ฑ ์กฐํ)๋ก ์๋ฒ ์ํ ํ์ธ |
| ํน์ API๋ง ์คํจ | IP ํ์ดํธ๋ฆฌ์คํธ ๋ฌธ์ | Oracle Cloud ์๋ฒ์ ๊ณต์ธ IP๊ฐ KPIS์ ๋ฑ๋ก๋์ด ์๋์ง ํ์ธ |
IP ํ์ดํธ๋ฆฌ์คํธ ํ์ธ
KPIS API๋ ๋ฑ๋ก๋ IP์์๋ง ํธ์ถ ๊ฐ๋ฅํฉ๋๋ค.
# Oracle Cloud ์๋ฒ์์ ์ธ๋ถ IP ํ์ธ
curl -s ifconfig.meํ์๋ IP๊ฐ KPIS์ ๋ฑ๋กํ IP์ ์ผ์นํ๋์ง ํ์ธํฉ๋๋ค. ๋ถ์ผ์น ์ KPIS ๊ด๋ฆฌ์์๊ฒ IP ๋ณ๊ฒฝ ์ ์ฒญ์ด ํ์ํฉ๋๋ค.
API ์๋ต ์ฝ๋
| ์๋ต | ์๋ฏธ | ๋์ |
|---|---|---|
| 200 | ์ ์ (๋ฐ์ดํฐ ๋ด์ฉ์ ๋ณ๋ ํ์ธ) | โ |
| 401 | ์ธ์ฆ ์คํจ | API KEY, JWT, ์ธ์ฆ์ ํ์ธ |
| 403 | ๊ถํ ์์ (IP ๋ฏธ๋ฑ๋ก ํฌํจ) | ํ์ดํธ๋ฆฌ์คํธ ํ์ธ |
| 429 | Rate Limit ์ด๊ณผ | ์ ์ ํ ์ฌ์๋ |
| 500 | KPIS ์๋ฒ ์ค๋ฅ | KPIS ๊ด๋ฆฌ์ ๋ฌธ์ |
| 503 | ์๋น์ค ์ผ์ ์ค๋จ | KPIS ์ ๊ฒ ์ผ์ ํ์ธ |
๋ฐ์ก ์ฒ๋ฆฌ ๋์ (DC001~DC007)
MA112 ๊ฒฐ๊ณผ์์ ๋ฐ์ก๋ ๊ฑด์ ์ฝ๋๋ณ ๋์ ๋ฐฉ๋ฒ์ ๋๋ค.
DC001: ํ์ค์ฝ๋ ๋ถ์ผ์น
์์ธ: ์กด์ฌํ์ง ์๊ฑฐ๋ ๋ง๋ฃ๋ ํ์ค์ฝ๋๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
ํด๊ฒฐ ์ ์ฐจ:
- MA101 API๋ก ํด๋น ์ ํ์ ์ฌ๋ฐ๋ฅธ ํ์ค์ฝ๋ ์กฐํ
cancel_date๊ฐ ์ค์ ๋ ์ฝ๋์ธ์ง ํ์ธ- ํ์ค์ฝ๋ ์์ ํ MA113 ๋ฐ์ก์ ์ฒญ
DC002: ๋ฏธ๋ฑ๋ก ๊ฑฐ๋์ฒ
์์ธ: KPIS์ ๋ฑ๋ก๋์ง ์์ ๊ฑฐ๋์ฒ ์ฌ์ ์๋ฒํธ์ ๋๋ค.
ํด๊ฒฐ ์ ์ฐจ:
- MA102 API๋ก ๊ฑฐ๋์ฒ ๋ฑ๋ก์ฌ๋ถ ํ์ธ
- ์ฌ์ ์๋ฑ๋ก๋ฒํธ ์คํ ํ์ธ (10์๋ฆฌ)
- ๋ฏธ๋ฑ๋ก ๊ฑฐ๋์ฒ๋ฉด KPIS ํฌํธ์์ ๊ฑฐ๋์ฒ ๋ฑ๋ก ์ ํ
DC003: ๋ณด๊ณ ๊ธฐ๊ฐ ์ธ ๊ณต๊ธ์ผ์
์์ธ: ๊ณต๊ธ์ผ์๊ฐ ํด๋น ๋ถ๊ธฐ ๋ณด๊ณ ๊ธฐ๊ฐ ๋ฒ์๋ฅผ ๋ฒ์ด๋ฌ์ต๋๋ค.
ํด๊ฒฐ ์ ์ฐจ:
- MA116 API๋ก ํด๋น ๋ถ๊ธฐ์ ๋ณด๊ณ ๊ธฐ๊ฐ ์กฐํ
- ๊ณต๊ธ์ผ์(N์ด)๊ฐ ๋ณด๊ณ ๊ธฐ๊ฐ ๋ด์ธ์ง ํ์ธ
- ๊ธฐ๊ฐ ์ธ ๊ณต๊ธ๊ฑด์ ํด๋น ๋ถ๊ธฐ๋ก ์ด๋ํ์ฌ ์ฌ์ ์ถ
DC004: ์ค๋ณต๋ณด๊ณ
์์ธ: ์ด๋ฏธ ๋ฑ๋ก๋ ๋์ผ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํฉ๋๋ค.
ํด๊ฒฐ ์ ์ฐจ:
- MA112๋ก ๊ธฐ๋ฑ๋ก ๊ฑด์ ์ ์๋ฒํธ ํ์ธ
- ์ฌ์ ์ถ์ด ์๋ ์ ์ (๊ณต๊ธ๊ตฌ๋ถ 4) ๋๋ **์ทจ์(๊ณต๊ธ๊ตฌ๋ถ 5)**๋ก ์ฒ๋ฆฌ
- MA113 ๋ฐ์ก์ ์ฒญ์ ์ฌ์ฉํ์ง ์์
DC004๋ ๋ค๋ฅธ ๋ฐ์ก์ฝ๋์ ๋ฌ๋ฆฌ MA113์ด ์๋ ์ ์ /์ทจ์๋ก ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.
DC005: ์๋/๊ธ์ก ์ค๋ฅ
์์ธ: ๋จ๊ฐ x ์๋ โ ๊ธ์ก ์ ํฉ์ฑ์ด ๋ง์ง ์์ต๋๋ค.
ํด๊ฒฐ ์ ์ฐจ:
- ํด๋น ํ์ ๋จ๊ฐ(P์ด), ์๋(M์ด), ๊ธ์ก(O์ด) ํ์ธ
- ๋จ๊ฐ x ์๋ = ๊ธ์ก (1์ ์ด๋ด ์ค์ฐจ ํ์ฉ) ๊ฒ์ฆ
- ๋ถ์ผ์น ์ ๋จ๊ฐ ๋๋ ์๋ ์์ (๊ธ์ก์ ๋ถ๋ณ)
DC006: ์์ง ๋๋ฝ
์์ธ: ์ผ๋ จ๋ฒํธ๊ตฌ๋ถ(U์ด)์ด 0(๋ถ์ฐฉ)์ธ๋ฐ ์์ง ๋ฐ์ดํฐ๊ฐ ์์ต๋๋ค.
ํด๊ฒฐ ์ ์ฐจ:
- ํด๋น ์ฐ๋ฒ์ ์์ง ๋ฐ์ดํฐ ์กด์ฌ ํ์ธ
- ์์ง ํ์ผ์ด ๋๋ฝ๋์์ผ๋ฉด ์ฌ์ ๋ก๋
- ์ผ๋ จ๋ฒํธ๊ฐ ๋ถํ์ํ ํ๋ชฉ์ด๋ฉด ์ผ๋ จ๋ฒํธ๊ตฌ๋ถ์ 1(์๋ต)๋ก ๋ณ๊ฒฝ
DC007: ์์๊ธฐ๊ด๊ธฐํธ ์ค๋ฅ
์์ธ: ๊ณต๊ธํํ๊ฐ 9(์์๊ธฐ๊ด)์ธ๋ฐ ์์๊ธฐ๊ด๊ธฐํธ๊ฐ ๋๋ฝ๋์๊ฑฐ๋ ํ์์ด ๋ค๋ฆ ๋๋ค.
ํด๊ฒฐ ์ ์ฐจ:
- ๊ณต๊ธํํ(F์ด) = 9 ํ์ธ
- ์์๊ธฐ๊ด๊ธฐํธ(I์ด)๊ฐ 8์๋ฆฌ์ธ์ง ํ์ธ
- ๊ฑด๊ฐ๋ณดํ์ฌ์ฌํ๊ฐ์์์ ์ฌ๋ฐ๋ฅธ ์์๊ธฐ๊ด๊ธฐํธ ์กฐํ ํ ์์
์๋ฒ ์ฅ์ ๋์
์๋ฒ ์ํ ํ์ธ
# PM2 ํ๋ก์ธ์ค ์ํ ํ์ธ
pm2 status
# Express ์๋ฒ ๋ก๊ทธ ํ์ธ
pm2 logs kpis-dsr-api --lines 50
# ์๋ฒ ๋ฆฌ์์ค ํ์ธ
df -h # ๋์คํฌ ์ฉ๋
free -m # ๋ฉ๋ชจ๋ฆฌ์๋ฒ ์ฌ์์
# PM2๋ก ์ฌ์์
pm2 restart kpis-dsr-api
# ์ฌ์์ ํ ์ํ ํ์ธ
pm2 status
curl -s http://localhost:3002/api/healthSupabase ์ฐ๊ฒฐ ์ฅ์
Supabase ์
ํํธ์คํ
์๋ฒ(sb.dvsharp.com)์ ์ ๊ทผ ๋ถ๊ฐํ ๊ฒฝ์ฐ:
# Supabase ์๋ฒ ์๋ต ํ์ธ
curl -s https://sb.dvsharp.com/rest/v1/ -H "apikey: YOUR_ANON_KEY"
# Docker ์ปจํ
์ด๋ ์ํ ํ์ธ (Supabase ์๋ฒ์์)
docker ps๋ก์ปฌ DB (cert_config) ์ฅ์
# local.db ํ์ผ ์กด์ฌ ํ์ธ
ls -lh data/local.db
# ํ์ผ ๊ถํ ํ์ธ
stat data/local.dbNginx ๊ด๋ จ
| ์ฆ์ | ์์ธ | ํด๊ฒฐ |
|---|---|---|
| 502 Bad Gateway | Express ์๋ฒ ๋ค์ด | pm2 restart kpis-dsr-api |
| 504 Gateway Timeout | Express ์๋ต ์ง์ฐ | ๋๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ค์ผ ์ ์์ โ ๋ก๊ทธ ํ์ธ |
| 413 Request Entity Too Large | ์ ๋ก๋ ํ์ผ ํฌ๊ธฐ ์ด๊ณผ | Nginx client_max_body_size ๊ฐ ์ฆ๊ฐ |
Vercel ํ๋ก ํธ์๋ ์ฅ์
| ์ฆ์ | ์์ธ | ํด๊ฒฐ |
|---|---|---|
| ํ๋ฉด์ ๋จ์ง๋ง API ํธ์ถ ์คํจ | Oracle Cloud ์๋ฒ ๋ค์ด ๋๋ Vercel rewrites ๋ฌธ์ | ์๋ฒ ์ํ ํ์ธ, vercel.json rewrites ์ค์ ํ์ธ |
| ๋น๋ ์คํจ | ์ฝ๋ ์ค๋ฅ ๋๋ ํ๊ฒฝ๋ณ์ ๋๋ฝ | Vercel ๋์๋ณด๋์์ ๋น๋ ๋ก๊ทธ ํ์ธ |
๊ณตํต ์ง๋จ ์ ์ฐจ
๋ฌธ์ ๋ฐ์ ์ ์๋ ์์๋ก ์ง๋จํฉ๋๋ค.
- PM2 ์ํ ํ์ธ:
pm2 statusโ ์๋ฒ๊ฐ ์คํ ์ค์ธ์ง ํ์ธ - ์๋ฒ ๋ก๊ทธ ํ์ธ:
pm2 logs kpis-dsr-api --lines 100โ ์๋ฌ ๋ฉ์์ง ํ์ธ - API ์๋ต ํ
์คํธ:
curl http://localhost:3002/api/healthโ ์๋ฒ ์ ์ ๋์ ํ์ธ - Supabase ์ฐ๊ฒฐ: ๋ธ๋ผ์ฐ์ ์์
sb.dvsharp.com์ ๊ทผ ๊ฐ๋ฅ ์ฌ๋ถ - ๋คํธ์ํฌ:
curl -s ifconfig.meโ ์ธ๋ถ IP ํ์ธ, KPIS ์ฐ๊ฒฐ ํ ์คํธ
๋ค์ ๋จ๊ณ
- ๋ฐฐํฌ โ Oracle Cloud/Vercel ๋ฐฐํฌ ์ ์ฐจ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค โ DB ๊ตฌ์กฐ ๋ฐ ๋ฐฑ์
- API ๋ ํผ๋ฐ์ค โ ์๋ํฌ์ธํธ ์์ธ