korean-stats-mcp 1.8.5 → 1.8.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +23 -3
- package/dist/api/client.d.ts +1 -1
- package/dist/api/client.js +1 -1
- package/dist/cache/index.d.ts +23 -3
- package/dist/cache/index.d.ts.map +1 -1
- package/dist/cache/index.js +78 -13
- package/dist/cache/index.js.map +1 -1
- package/dist/config/index.d.ts +1 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +2 -0
- package/dist/config/index.js.map +1 -1
- package/dist/tools/fetchKosisExcel.d.ts.map +1 -1
- package/dist/tools/fetchKosisExcel.js +7 -3
- package/dist/tools/fetchKosisExcel.js.map +1 -1
- package/package.json +7 -5
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
**국가데이터처 KOSIS, 이제 사이트에 들어가지 않습니다.**
|
|
4
4
|
AI 어시스턴트에게 한국어로 물어보면 국가데이터처 공식 수치가 출처와 함께 바로 나옵니다.
|
|
5
5
|
|
|
6
|
+
[](https://www.npmjs.com/package/korean-stats-mcp)
|
|
6
7
|
[](LICENSE)
|
|
7
8
|
[](https://modelcontextprotocol.io/)
|
|
8
9
|
[](https://kosis.kr/openapi/)
|
|
@@ -115,7 +116,7 @@ AI: 2025년 하반기 광진구의 고용률은 61.6%입니다.
|
|
|
115
116
|
2024년 광진구의 65세 이상 고령인구는 ○○,○○○명입니다.
|
|
116
117
|
```
|
|
117
118
|
|
|
118
|
-
전국 **
|
|
119
|
+
전국 **226개 시군구**(자치구·시·군)를 KOSIS 자치구 단위 통계표로 직접 조회합니다. 시군구가 동일 구조로 수록된 **KOSIS 표준 통계표(자치구 코드 라우팅)를 우선** 쓰고, 표준표에 없는 분야만 자치구 통계연보(`.xlsx`)로 보완합니다. `중구`·`남구`처럼 여러 시에 있는 이름도 "부산 중구"처럼 광역시를 같이 말하면 정확히 구분합니다.
|
|
119
120
|
|
|
120
121
|
---
|
|
121
122
|
|
|
@@ -131,7 +132,7 @@ AI: 2025년 하반기 광진구의 고용률은 61.6%입니다.
|
|
|
131
132
|
|
|
132
133
|
## 무엇을 물어볼 수 있나
|
|
133
134
|
|
|
134
|
-
### 통계 키워드 — 92개 + 자연어 별칭
|
|
135
|
+
### 통계 키워드 — 92개 + 자연어 별칭 88개
|
|
135
136
|
|
|
136
137
|
| 분야 | 예시 키워드 |
|
|
137
138
|
|------|------------|
|
|
@@ -285,13 +286,32 @@ AI 앱 설정에 발급받은 키를 넣습니다.
|
|
|
285
286
|
|
|
286
287
|
## 원격 엔드포인트
|
|
287
288
|
|
|
289
|
+
공식 주소는 통합 호스트 경로 하나입니다.
|
|
290
|
+
|
|
288
291
|
- 엔드포인트: `https://mcp.gomdori.app/stats` (14개 도구 전체 동작)
|
|
289
|
-
- 헬스체크: `https://mcp.gomdori.app/stats/health`
|
|
292
|
+
- 헬스체크: `https://mcp.gomdori.app/stats/health` → 배포 중인 버전과 도구 수(`{"status":"ok","name":…,"version":…,"tools":14}`)를 그대로 반환합니다
|
|
293
|
+
- 구 개별 주소 `korean-stats-mcp.fly.dev` 는 통합 호스트로 옮기면서 중단됐습니다. 예전 설정에 남아 있다면 위 주소로 바꿔주세요.
|
|
290
294
|
|
|
291
295
|
---
|
|
292
296
|
|
|
293
297
|
## 변경 이력
|
|
294
298
|
|
|
299
|
+
<details>
|
|
300
|
+
<summary>v1.8 — 프로덕션 정확성 하드닝 + quick_rank·explain_statistic + 통합 호스트 이전</summary>
|
|
301
|
+
|
|
302
|
+
- **잘못된 수치가 정답처럼 나가던 경로 차단** — 인식 못 한 지역명에 전국값을 조용히 반환하던 동작 제거(에러 + 지원 지역 안내로 교체), `청년실업률`·`연봉`처럼 **정의가 다른 지표로의 무단 별칭 치환 제거**(안내 문구로 전환), `다문화인구`·`유소년인구` 같은 복합어가 `인구`에 부분매칭되던 버그 차단
|
|
303
|
+
- **노령화지수 라우팅 교체** — 장래추계 전용 표(`DT_1YL12501E`, 2033~2052년)에서 인구총조사 실측(`DT_1IN2030`)으로. 고령인구비율은 별도 키워드로 분리(지수 ≠ 비율)
|
|
304
|
+
- 인구동향(출생·사망·혼인·이혼) 최근 시점에 **잠정치 안내** 자동 부착, 출처 표기에 통계표 ID + 최종갱신일(`LST_CHN_DE`) 포함
|
|
305
|
+
- **신규 도구 2종** — `quick_rank`(동급 지자체 전수 대비 순위·백분위·평균 격차·순위 변동), `explain_statistic`(통계 정의·작성목적·조사주기 + 보고서 인용 각주). **도구 12개 → 14개**
|
|
306
|
+
- 견고성 — 동일 키 in-flight 요청 병합(캐시 stampede 방지), 체인 도구 동시성 캡 8(17×8=136 동시 KOSIS 호출 방지), vitest 단위 테스트 도입
|
|
307
|
+
- v1.8.1 — 통계설명을 정식 엔드포인트(`statisticsExplData.do`)로 교체 + 자치구 코드 lookup 검증 강화
|
|
308
|
+
- v1.8.2 ~ v1.8.5 — MCP 도구 annotations(read-only·비파괴·멱등·openWorld) 부여, 도구명을 영문 그대로 노출(비-ASCII title이 붙으면 claude.ai 웹이 도구 목록을 인식하지 못함), 과대했던 도구 description 축소
|
|
309
|
+
- v1.8.6: 응답 캐시를 크기 상한 LRU(기본 32MB, `CACHE_MAX_MB`)로 교체. 종전 캐시는 키 1,000개가 차면 저장 단계에서 예외를 던져 KOSIS 응답을 받아 놓고도 요청이 실패했고, 바이트 상한이 없어 통합 호스트에서 프로세스 하나가 RSS 434MB를 차지했다
|
|
310
|
+
- v1.8.7: `fetch_kosis_excel` 복구. KOSIS 가 2026-08-05 다운로드 절차에 `srvcNm` 필드를 요구하도록 바뀌어 xlsx 대신 오류 페이지만 받고 있었다
|
|
311
|
+
- **배포를 통합 호스트로 이전** — 공식 주소 `mcp.gomdori.app/stats` (구 `korean-stats-mcp.fly.dev` 중단)
|
|
312
|
+
|
|
313
|
+
</details>
|
|
314
|
+
|
|
295
315
|
<details>
|
|
296
316
|
<summary>v1.7 — 자치구 데이터 소스 우선순위 재정립 + HTTP 서버 안정화</summary>
|
|
297
317
|
|
package/dist/api/client.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export declare class KosisClient {
|
|
|
17
17
|
/**
|
|
18
18
|
* API 요청 실행 (timeout 15s + 3회 재시도 + 지수 백오프)
|
|
19
19
|
*
|
|
20
|
-
* -
|
|
20
|
+
* - KOSIS cold path 일시 abort 대응
|
|
21
21
|
* - KOSIS 응답 에러(err/errMsg 필드)는 영구 실패 → 즉시 throw, retry 안 함
|
|
22
22
|
* - HTTP 4xx도 영구 실패 → 즉시 throw
|
|
23
23
|
* - 네트워크 오류·타임아웃·5xx만 retry (800ms / 1600ms 백오프)
|
package/dist/api/client.js
CHANGED
|
@@ -25,7 +25,7 @@ export class KosisClient {
|
|
|
25
25
|
/**
|
|
26
26
|
* API 요청 실행 (timeout 15s + 3회 재시도 + 지수 백오프)
|
|
27
27
|
*
|
|
28
|
-
* -
|
|
28
|
+
* - KOSIS cold path 일시 abort 대응
|
|
29
29
|
* - KOSIS 응답 에러(err/errMsg 필드)는 영구 실패 → 즉시 throw, retry 안 함
|
|
30
30
|
* - HTTP 4xx도 영구 실패 → 즉시 throw
|
|
31
31
|
* - 네트워크 오류·타임아웃·5xx만 retry (800ms / 1600ms 백오프)
|
package/dist/cache/index.d.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 캐시 매니저
|
|
3
3
|
* 메모리 캐시를 사용하여 KOSIS API 호출을 최적화
|
|
4
|
+
*
|
|
5
|
+
* 크기 상한이 있는 LRU. node-cache 를 쓰던 시절엔 두 가지가 문제였다.
|
|
6
|
+
* 1) maxKeys 가 차면 set() 이 ECACHEFULL 을 던졌다. KOSIS 응답을 받아 놓고도
|
|
7
|
+
* 그 요청이 실패로 끝나고, 만료로 키가 빠질 때까지 새 요청이 전부 같은 길을 간다.
|
|
8
|
+
* 2) 바이트 상한이 없었다. 통합 호스트(1GB, MCP 5종 동거)에서 stats 한 프로세스가
|
|
9
|
+
* RSS 434MB(피크 576MB)를 차지했다(2026-09-23 실측). 호스트 가용 메모리 34MB.
|
|
10
|
+
* 지금은 가득 차면 오래 안 쓴 항목부터 내보낸다. 던지지 않는다.
|
|
4
11
|
*/
|
|
5
|
-
import NodeCache from 'node-cache';
|
|
6
12
|
declare const TTL: {
|
|
7
13
|
readonly STATISTICS_LIST: number;
|
|
8
14
|
readonly STATISTICS_DATA: number;
|
|
@@ -12,13 +18,22 @@ declare const TTL: {
|
|
|
12
18
|
readonly EMPTY_RESULT: 60;
|
|
13
19
|
};
|
|
14
20
|
declare class CacheManager {
|
|
21
|
+
private readonly maxKeys;
|
|
22
|
+
private readonly maxSize;
|
|
15
23
|
private cache;
|
|
24
|
+
private totalSize;
|
|
25
|
+
private hits;
|
|
26
|
+
private misses;
|
|
16
27
|
private inflight;
|
|
17
|
-
constructor();
|
|
28
|
+
constructor(maxKeys?: number, maxSize?: number);
|
|
18
29
|
/**
|
|
19
30
|
* 캐시 키 생성
|
|
20
31
|
*/
|
|
21
32
|
private generateKey;
|
|
33
|
+
private remove;
|
|
34
|
+
private read;
|
|
35
|
+
private write;
|
|
36
|
+
private sweepExpired;
|
|
22
37
|
/**
|
|
23
38
|
* 캐시에서 데이터 조회 또는 fetcher 실행
|
|
24
39
|
*/
|
|
@@ -46,7 +61,12 @@ declare class CacheManager {
|
|
|
46
61
|
/**
|
|
47
62
|
* 캐시 통계
|
|
48
63
|
*/
|
|
49
|
-
getStats():
|
|
64
|
+
getStats(): {
|
|
65
|
+
keys: number;
|
|
66
|
+
size: number;
|
|
67
|
+
hits: number;
|
|
68
|
+
misses: number;
|
|
69
|
+
};
|
|
50
70
|
/**
|
|
51
71
|
* 캐시 초기화
|
|
52
72
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,QAAA,MAAM,GAAG;;;;;;;CAQC,CAAC;AAkBX,cAAM,YAAY;IAWd,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAV1B,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAK;IAGnB,OAAO,CAAC,QAAQ,CAAuC;gBAGpC,OAAO,GAAE,MAA6B,EACtC,OAAO,GAAE,MAA6B;IAMzD;;OAEG;IACH,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,IAAI;IAiBZ,OAAO,CAAC,KAAK;IAmBb,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACG,UAAU,CAAC,CAAC,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,CAAC,CAAC;IAmCb;;OAEG;IACG,iBAAiB,CAAC,CAAC,EACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,CAAC,CAAC;IAIb;;OAEG;IACG,iBAAiB,CAAC,CAAC,EACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,CAAC,CAAC;IAIb;;OAEG;IACG,gBAAgB,CAAC,CAAC,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,CAAC,CAAC;IAIb;;OAEG;IACG,cAAc,CAAC,CAAC,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,CAAC,CAAC;IAIb;;OAEG;IACG,YAAY,CAAC,CAAC,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,CAAC,CAAC;IAIb;;OAEG;IACH,QAAQ;;;;;;IAIR;;OAEG;IACH,KAAK;CAIN;AAKD,wBAAgB,eAAe,IAAI,YAAY,CAK9C;AAED,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC"}
|
package/dist/cache/index.js
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 캐시 매니저
|
|
3
3
|
* 메모리 캐시를 사용하여 KOSIS API 호출을 최적화
|
|
4
|
+
*
|
|
5
|
+
* 크기 상한이 있는 LRU. node-cache 를 쓰던 시절엔 두 가지가 문제였다.
|
|
6
|
+
* 1) maxKeys 가 차면 set() 이 ECACHEFULL 을 던졌다. KOSIS 응답을 받아 놓고도
|
|
7
|
+
* 그 요청이 실패로 끝나고, 만료로 키가 빠질 때까지 새 요청이 전부 같은 길을 간다.
|
|
8
|
+
* 2) 바이트 상한이 없었다. 통합 호스트(1GB, MCP 5종 동거)에서 stats 한 프로세스가
|
|
9
|
+
* RSS 434MB(피크 576MB)를 차지했다(2026-09-23 실측). 호스트 가용 메모리 34MB.
|
|
10
|
+
* 지금은 가득 차면 오래 안 쓴 항목부터 내보낸다. 던지지 않는다.
|
|
4
11
|
*/
|
|
5
|
-
import NodeCache from 'node-cache';
|
|
6
12
|
import { config } from '../config/index.js';
|
|
7
13
|
// 캐시 TTL 설정 (초 단위)
|
|
8
14
|
const TTL = {
|
|
@@ -14,18 +20,31 @@ const TTL = {
|
|
|
14
20
|
// 빈 결과: KOSIS 일시 장애로 0건이 왔을 때 6시간 고착되지 않도록 짧게
|
|
15
21
|
EMPTY_RESULT: 60,
|
|
16
22
|
};
|
|
23
|
+
/** 크기 추정: 캐시 미스(네트워크 왕복 뒤)에만 한 번 계산한다 */
|
|
24
|
+
function estimateSize(value) {
|
|
25
|
+
try {
|
|
26
|
+
return JSON.stringify(value)?.length ?? 0;
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return Number.POSITIVE_INFINITY; // 직렬화 불가(순환 참조 등)는 캐시하지 않는다
|
|
30
|
+
}
|
|
31
|
+
}
|
|
17
32
|
class CacheManager {
|
|
18
|
-
|
|
33
|
+
maxKeys;
|
|
34
|
+
maxSize;
|
|
35
|
+
// Map 삽입 순서 = LRU 순서. 조회 적중 시 지웠다 다시 넣어 맨 뒤로 보낸다.
|
|
36
|
+
cache = new Map();
|
|
37
|
+
totalSize = 0;
|
|
38
|
+
hits = 0;
|
|
39
|
+
misses = 0;
|
|
19
40
|
// 동일 키 동시 요청 dedup — chain 도구가 같은 (지표×지역)을 병렬 호출할 때
|
|
20
41
|
// 캐시 미스 stampede로 KOSIS 중복 호출되는 것을 방지 (promise 공유)
|
|
21
42
|
inflight = new Map();
|
|
22
|
-
constructor() {
|
|
23
|
-
this.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
useClones: false, // 성능을 위해 복제 비활성화
|
|
28
|
-
});
|
|
43
|
+
constructor(maxKeys = config.cache.maxKeys, maxSize = config.cache.maxSize) {
|
|
44
|
+
this.maxKeys = maxKeys;
|
|
45
|
+
this.maxSize = maxSize;
|
|
46
|
+
// 만료 항목은 조회 때도 지우지만, 다시 안 불리는 키가 메모리에 남지 않게 10분마다 쓸어낸다
|
|
47
|
+
setInterval(() => this.sweepExpired(), 10 * 60 * 1000).unref();
|
|
29
48
|
}
|
|
30
49
|
/**
|
|
31
50
|
* 캐시 키 생성
|
|
@@ -37,13 +56,58 @@ class CacheManager {
|
|
|
37
56
|
.join('&');
|
|
38
57
|
return `${prefix}:${sortedParams}`;
|
|
39
58
|
}
|
|
59
|
+
remove(key, entry) {
|
|
60
|
+
this.cache.delete(key);
|
|
61
|
+
this.totalSize -= entry.size;
|
|
62
|
+
}
|
|
63
|
+
read(key) {
|
|
64
|
+
const entry = this.cache.get(key);
|
|
65
|
+
if (!entry) {
|
|
66
|
+
this.misses++;
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
if (Date.now() >= entry.expiresAt) {
|
|
70
|
+
this.remove(key, entry);
|
|
71
|
+
this.misses++;
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
74
|
+
this.cache.delete(key);
|
|
75
|
+
this.cache.set(key, entry);
|
|
76
|
+
this.hits++;
|
|
77
|
+
return entry.value;
|
|
78
|
+
}
|
|
79
|
+
write(key, value, ttlSeconds) {
|
|
80
|
+
const size = estimateSize(value);
|
|
81
|
+
// 한 건이 예산의 1/8 을 넘으면 캐시하지 않는다. 큰 표 하나가 나머지를 통째로 밀어내는 것 방지
|
|
82
|
+
if (size > this.maxSize / 8)
|
|
83
|
+
return;
|
|
84
|
+
const previous = this.cache.get(key);
|
|
85
|
+
if (previous)
|
|
86
|
+
this.remove(key, previous);
|
|
87
|
+
for (const [oldestKey, oldest] of this.cache) {
|
|
88
|
+
if (this.cache.size < this.maxKeys && this.totalSize + size <= this.maxSize)
|
|
89
|
+
break;
|
|
90
|
+
this.remove(oldestKey, oldest);
|
|
91
|
+
}
|
|
92
|
+
// TTL 0 은 node-cache 시절처럼 "만료 없음"으로 둔다 (CACHE_TTL_HOURS=0)
|
|
93
|
+
const expiresAt = ttlSeconds > 0 ? Date.now() + ttlSeconds * 1000 : Number.POSITIVE_INFINITY;
|
|
94
|
+
this.cache.set(key, { value, expiresAt, size });
|
|
95
|
+
this.totalSize += size;
|
|
96
|
+
}
|
|
97
|
+
sweepExpired() {
|
|
98
|
+
const now = Date.now();
|
|
99
|
+
for (const [key, entry] of this.cache) {
|
|
100
|
+
if (now >= entry.expiresAt)
|
|
101
|
+
this.remove(key, entry);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
40
104
|
/**
|
|
41
105
|
* 캐시에서 데이터 조회 또는 fetcher 실행
|
|
42
106
|
*/
|
|
43
107
|
async getOrFetch(prefix, params, fetcher, ttl) {
|
|
44
108
|
const key = this.generateKey(prefix, params);
|
|
45
109
|
// 캐시에서 조회
|
|
46
|
-
const cached = this.
|
|
110
|
+
const cached = this.read(key);
|
|
47
111
|
if (cached !== undefined) {
|
|
48
112
|
return cached;
|
|
49
113
|
}
|
|
@@ -57,7 +121,7 @@ class CacheManager {
|
|
|
57
121
|
const data = await fetcher();
|
|
58
122
|
// 빈 배열은 일시 장애일 수 있음 — 짧은 TTL로만 캐시 (장기 고착 방지)
|
|
59
123
|
const isEmpty = Array.isArray(data) && data.length === 0;
|
|
60
|
-
this.
|
|
124
|
+
this.write(key, data, isEmpty ? TTL.EMPTY_RESULT : (ttl ?? config.cache.ttlHours * 60 * 60));
|
|
61
125
|
return data;
|
|
62
126
|
}
|
|
63
127
|
finally {
|
|
@@ -101,13 +165,14 @@ class CacheManager {
|
|
|
101
165
|
* 캐시 통계
|
|
102
166
|
*/
|
|
103
167
|
getStats() {
|
|
104
|
-
return this.cache.
|
|
168
|
+
return { keys: this.cache.size, size: this.totalSize, hits: this.hits, misses: this.misses };
|
|
105
169
|
}
|
|
106
170
|
/**
|
|
107
171
|
* 캐시 초기화
|
|
108
172
|
*/
|
|
109
173
|
flush() {
|
|
110
|
-
this.cache.
|
|
174
|
+
this.cache.clear();
|
|
175
|
+
this.totalSize = 0;
|
|
111
176
|
}
|
|
112
177
|
}
|
|
113
178
|
// 싱글톤 인스턴스
|
package/dist/cache/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"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"}
|
package/dist/config/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAEvB,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAEvB,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDT,CAAC;AAGX,wBAAgB,cAAc,IAAI,IAAI,CAMrC;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,MAAM,CAAC,SAAS,CAAC;AACrD,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,MAAM,CAAC,WAAW,CAAC"}
|
package/dist/config/index.js
CHANGED
|
@@ -17,6 +17,8 @@ export const config = {
|
|
|
17
17
|
cache: {
|
|
18
18
|
ttlHours: parseInt(process.env.CACHE_TTL_HOURS || '6', 10),
|
|
19
19
|
maxKeys: 1000,
|
|
20
|
+
// 캐시 총량 상한 (JSON 직렬화 길이 기준). 파싱된 행 배열의 힙 점유는 약 2배라 32MB ≈ 힙 64MB
|
|
21
|
+
maxSize: (parseInt(process.env.CACHE_MAX_MB || '32', 10) || 32) * 1024 * 1024,
|
|
20
22
|
},
|
|
21
23
|
// 로그 레벨
|
|
22
24
|
logLevel: process.env.LOG_LEVEL || 'info',
|
package/dist/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAEvB,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,eAAe;IACf,KAAK,EAAE;QACL,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE;QACvC,OAAO,EAAE,0BAA0B;QACnC,SAAS,EAAE;YACT,cAAc,EAAE,oBAAoB;YACpC,cAAc,EAAE,oBAAoB;YACpC,aAAa,EAAE,mCAAmC;YAClD,gBAAgB,EAAE,sBAAsB;YACxC,uEAAuE;YACvE,YAAY,EAAE,wBAAwB;SACvC;KACF;IAED,QAAQ;IACR,KAAK,EAAE;QACL,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,EAAE,EAAE,CAAC;QAC1D,OAAO,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAEvB,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,eAAe;IACf,KAAK,EAAE;QACL,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE;QACvC,OAAO,EAAE,0BAA0B;QACnC,SAAS,EAAE;YACT,cAAc,EAAE,oBAAoB;YACpC,cAAc,EAAE,oBAAoB;YACpC,aAAa,EAAE,mCAAmC;YAClD,gBAAgB,EAAE,sBAAsB;YACxC,uEAAuE;YACvE,YAAY,EAAE,wBAAwB;SACvC;KACF;IAED,QAAQ;IACR,KAAK,EAAE;QACL,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,EAAE,EAAE,CAAC;QAC1D,OAAO,EAAE,IAAI;QACb,iEAAiE;QACjE,OAAO,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;KAC9E;IAED,QAAQ;IACR,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM;IAEzC,qBAAqB;IACrB,SAAS,EAAE;QACT,SAAS,EAAE,UAAU;QACrB,SAAS,EAAE,UAAU;QACrB,WAAW,EAAE,aAAa;QAC1B,WAAW,EAAE,aAAa;QAC1B,eAAe,EAAE,mBAAmB;QACpC,eAAe,EAAE,UAAU;QAC3B,aAAa,EAAE,QAAQ;QACvB,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,MAAM;QACjB,YAAY,EAAE,OAAO;QACrB,YAAY,EAAE,OAAO;QACrB,SAAS,EAAE,UAAU;KACb;IAEV,QAAQ;IACR,WAAW,EAAE;QACX,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,YAAY;QACf,EAAE,EAAE,KAAK;KACD;CACF,CAAC;AAEX,YAAY;AACZ,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchKosisExcel.d.ts","sourceRoot":"","sources":["../../src/tools/fetchKosisExcel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA0CxB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCjC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,WAAW,CAAC,CAAC;AAErF,UAAU,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;
|
|
1
|
+
{"version":3,"file":"fetchKosisExcel.d.ts","sourceRoot":"","sources":["../../src/tools/fetchKosisExcel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA0CxB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCjC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,WAAW,CAAC,CAAC;AAErF,UAAU,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAuKD,wBAAsB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA0K5F"}
|
|
@@ -31,10 +31,10 @@ const KOSIS_BASE = `${KOSIS_HOST}/nsibsHtmlSvc/fileView/FileStbl`;
|
|
|
31
31
|
/**
|
|
32
32
|
* KOSIS stat.kosis.kr 콜드 호출 안정화 wrapper
|
|
33
33
|
*
|
|
34
|
-
*
|
|
34
|
+
* KOSIS 콜드 path에서 첫 호출이 timeout/ECONNRESET 으로 자주 실패한다.
|
|
35
35
|
* KOSIS는 멱등 GET·세션 쿠키 기반 POST라 재시도 안전 (POST 부작용 없음 — 다운로드만).
|
|
36
36
|
*
|
|
37
|
-
* - timeout: 15s (
|
|
37
|
+
* - timeout: 15s (cold path 여유)
|
|
38
38
|
* - attempts: 3 (지수 백오프 800ms / 1600ms — 추가 대기 상한 ~2.4s)
|
|
39
39
|
*/
|
|
40
40
|
async function fetchWithRetry(url, init, attempts = 3) {
|
|
@@ -203,10 +203,11 @@ async function fetchDownloadInfo(orgId, tblId, fileSn, cookie) {
|
|
|
203
203
|
const path = json.resultMap?.dwldFilePath ?? json.dwldFilePath;
|
|
204
204
|
const name = json.resultMap?.dwldFileNm ?? json.dwldFileNm;
|
|
205
205
|
const size = json.resultMap?.dwldFileSize ?? json.dwldFileSize;
|
|
206
|
+
const srvcNm = json.resultMap?.srvcNm ?? json.srvcNm;
|
|
206
207
|
if (!path || !name) {
|
|
207
208
|
throw new Error(`fileItmDownload.do 응답 누락: ${JSON.stringify(json).slice(0, 300)}`);
|
|
208
209
|
}
|
|
209
|
-
return { dwldFilePath: path, dwldFileNm: name, dwldFileSize: size };
|
|
210
|
+
return { dwldFilePath: path, dwldFileNm: name, dwldFileSize: size, srvcNm };
|
|
210
211
|
}
|
|
211
212
|
/** 3단계: dwldServerFile.do POST → 실제 xlsx 바이너리 */
|
|
212
213
|
async function downloadFile(orgId, tblId, fileSn, info, cookie) {
|
|
@@ -219,6 +220,9 @@ async function downloadFile(orgId, tblId, fileSn, info, cookie) {
|
|
|
219
220
|
fileSvc: '',
|
|
220
221
|
file_path: info.dwldFilePath,
|
|
221
222
|
file_name: info.dwldFileNm,
|
|
223
|
+
// KOSIS 가 2026-08-05 "웹취약수정"으로 dwldServerFile.do 에 srvcNm(2단계 응답값)을 요구한다.
|
|
224
|
+
// 빠지면 xlsx 대신 eGovFrame 오류 페이지(2,392B)를 준다(2026-09-23 실측: 넣으면 140,110B xlsx).
|
|
225
|
+
srvcNm: info.srvcNm ?? '',
|
|
222
226
|
});
|
|
223
227
|
const res = await fetchWithRetry(url, {
|
|
224
228
|
method: 'POST',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchKosisExcel.js","sourceRoot":"","sources":["../../src/tools/fetchKosisExcel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,mEAAmE;AACnE,kCAAkC;AAClC,KAAK,UAAU,UAAU;IACvB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAe,CAAC,CAAC;QAC1C,OAAO,GAAG,CAAC,KAA0C,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AACD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,MAAM,UAAU,GAAG,uBAAuB,CAAC;AAC3C,MAAM,UAAU,GAAG,GAAG,UAAU,iCAAiC,CAAC;AAElE;;;;;;;;GAQG;AACH,KAAK,UAAU,cAAc,CAAC,GAAW,EAAE,IAAiB,EAAE,QAAQ,GAAG,CAAC;IACxE,IAAI,OAAgB,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE;gBACtB,GAAG,IAAI;gBACP,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;aACnC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,CAAC;YACZ,IAAI,CAAC,GAAG,QAAQ,GAAG,CAAC;gBAAE,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IACD,MAAM,OAAO,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE;;;;;;;;;;+CAUgC;IAC7C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,kFAAkF,CAAC;QAC/F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;QAChG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;QAClG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;QAClG,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,EAAE;aACV,QAAQ,CAAC,+DAA+D,CAAC;QAC5E,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,6EAA6E,CAAC;QAC1F,QAAQ,EAAE,CAAC;aACR,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CAAC,+CAA+C,CAAC;KAC7D,CAAC;CACH,CAAC;AAuBF;;;GAGG;AACH,SAAS,cAAc,CAAC,GAAa;IACnC,MAAM,EAAE,GACL,GAAG,CAAC,OAAwD,CAAC,YAAY,EAAE,EAAE;WAC3E,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7E,OAAO,EAAE;SACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SAClC,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,sCAAsC;AACtC,KAAK,UAAU,cAAc,CAAC,KAAa,EAAE,KAAa;IACxD,MAAM,GAAG,GAAG,GAAG,UAAU,8BAA8B,kBAAkB,CAAC,KAAK,CAAC,cAAc,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;IAC1H,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE;QACpC,OAAO,EAAE;YACP,YAAY,EAAE,6BAA6B;YAC3C,QAAQ,EAAE,WAAW;SACtB;KACF,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACnE,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;AACjE,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,kCAAkC;IAClC,MAAM,IAAI,GAAG,8BAA8B,CAAC;IAC5C,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAC/E,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QAC3B,+CAA+C;QAC/C,MAAM,IAAI,GAAG,KAAK;aACf,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC;aACzC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;aACxB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;aACvB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;aACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;aACrB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;aACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;aACtB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;aACtB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,IAAI,EAAE,CAAC;QACV,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,kCAAkC;IAClC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,EAAE,GAAG,kDAAkD,CAAC;QAC9D,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACpC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9B,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,SAAS;YAC3B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,gEAAgE;AAChE,KAAK,UAAU,iBAAiB,CAC9B,KAAa,EACb,KAAa,EACb,MAAc,EACd,MAAc;IAEd,MAAM,GAAG,GAAG,GAAG,UAAU,qBAAqB,CAAC;IAC/C,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC;QAC/B,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACvB,SAAS,EAAE,EAAE;KACd,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE;QACpC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,YAAY,EAAE,6BAA6B;YAC3C,QAAQ,EAAE,MAAM;YAChB,cAAc,EAAE,mCAAmC;YACnD,QAAQ,EAAE,kBAAkB;YAC5B,kBAAkB,EAAE,gBAAgB;SACrC;QACD,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;KACtB,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAK7B,CAAC;IACF,sFAAsF;IACtF,mCAAmC;IACnC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;IAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC;IAC/D,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AACtE,CAAC;AAED,iDAAiD;AACjD,KAAK,UAAU,YAAY,CACzB,KAAa,EACb,KAAa,EACb,MAAc,EACd,IAAkD,EAClD,MAAc;IAEd,MAAM,GAAG,GAAG,GAAG,UAAU,oBAAoB,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC;QAC/B,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACvB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,IAAI,CAAC,YAAY;QAC5B,SAAS,EAAE,IAAI,CAAC,UAAU;KAC3B,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE;QACpC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,YAAY,EAAE,6BAA6B;YAC3C,QAAQ,EAAE,MAAM;YAChB,cAAc,EAAE,mCAAmC;YACnD,QAAQ,EAAE,8BAA8B;SACzC;QACD,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;KACtB,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACrE,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAA2B;IAC/D,IAAI,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC;IACnC,IAAI,CAAC;QACH,0BAA0B;QAC1B,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACxB,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACxB,IAAI,eAAe,GAAa,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAErD,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAChF,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,KAAK,IAAI,EAAE;oBAClB,KAAK,EAAE,KAAK,IAAI,EAAE;oBAClB,KAAK,EAAE,QAAQ,KAAK,CAAC,YAAY,kEAAkE;iBACpG,CAAC;YACJ,CAAC;YACD,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;YACvB,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;YACvB,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,IAAI,EAAE;gBAClB,KAAK,EAAE,KAAK,IAAI,EAAE;gBAClB,KAAK,EAAE,iDAAiD;aACzD,CAAC;QACJ,CAAC;QAED,oEAAoE;QACpE,IAAI,MAA0B,CAAC;QAC/B,IAAI,IAAwB,CAAC;QAC7B,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBACnD,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;gBACpB,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;gBAChB,WAAW,GAAG,SAAS,CAAC;gBACxB,MAAM;YACR,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvD,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAAE,SAAS;gBACvC,MAAM,CAAC,CAAC;YACV,CAAC;QACH,CAAC;QACD,KAAK,GAAG,WAAW,CAAC;QACpB,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACrB,yCAAyC;YACzC,MAAM,EAAE,GAAG,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;YACpC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK;gBACL,KAAK;gBACL,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE;;aAE5D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;;;mCAIM,KAAK,kBAAkB,KAAK;;;4DAGH;aACrD,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAElC,oDAAoD;QACpD,mDAAmD;QACnD,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACzD,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9D,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;gBACrB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK;oBACL,KAAK;oBACL,KAAK;oBACL,KAAK,EAAE,mBAAmB,KAAK,CAAC,OAAO,kBAAkB,KAAK,CAAC,YAAY,IAAI,SAAS,KAAK,EAAE,SAAS,KAAK,CAAC,MAAM,kCAAkC;iBACvJ,CAAC;YACJ,CAAC;YACD,eAAe,GAAG,QAAQ,CAAC;QAC7B,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;YACvC,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,QAAQ,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,SAAS;aACpF,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,eAAe,CAAC,CAAC;QAElE,gBAAgB;QAChB,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;QAE5E,cAAc;QACd,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAE3E,+BAA+B;QAC/B,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;YAC5C,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3D,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACjD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK;gBACL,KAAK;gBACL,MAAM,EAAE,eAAe;gBACvB,QAAQ,EAAE,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU;gBAC9C,QAAQ,EAAE,EAAE,CAAC,UAAU;gBACvB,KAAK,EAAE,gBAAgB,EAAE,CAAC,UAAU,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;aACnE,CAAC;QACJ,CAAC;QAED,iDAAiD;QACjD,MAAM,KAAK,GAAG,MAAM,UAAU,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK;gBACL,KAAK;gBACL,MAAM,EAAE,eAAe;gBACvB,QAAQ,EAAE,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU;gBAC9C,QAAQ,EAAE,EAAE,CAAC,UAAU;gBACvB,KAAK,EAAE,8HAA8H;aACtI,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;QAE/B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK;gBACL,KAAK;gBACL,MAAM,EAAE,eAAe;gBACvB,QAAQ,EAAE,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU;gBAC9C,QAAQ,EAAE,EAAE,CAAC,UAAU;gBACvB,KAAK,EAAE,iBAAiB,MAAM,CAAC,KAAK,IAAI,QAAQ,UAAU,MAAM,CAAC,IAAI,IAAI,GAAG,GAAG;aAChF,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK;YACL,KAAK;YACL,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU;YAC9C,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,EAAE,CAAC,UAAU;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAsB,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;SACtE,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;YACxB,MAAM,EAAE,eAAe;YACvB,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;SAClD,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"fetchKosisExcel.js","sourceRoot":"","sources":["../../src/tools/fetchKosisExcel.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "korean-stats-mcp",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.7",
|
|
4
4
|
"description": "한국 국가데이터처 KOSIS OpenAPI 기반 MCP 서버 - 92개 키워드 + 자연어 별칭/오타 정규화 + 17개 시도/자치구 230+ 라우팅 + 시계열 추세 + 전국 순위(quick_rank) + 출처 각주 생성(explain_statistic) + 체인 도구 3종(지역 브리핑·다지역 비교·정책 영역) + 자치구 정밀 OpenAPI 라우팅 15종 통계표.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -43,7 +43,6 @@
|
|
|
43
43
|
"dotenv": "^16.4.5",
|
|
44
44
|
"express": "^4.22.2",
|
|
45
45
|
"kordoc": "^2.8.0",
|
|
46
|
-
"node-cache": "^5.1.2",
|
|
47
46
|
"zod": "^3.23.8"
|
|
48
47
|
},
|
|
49
48
|
"devDependencies": {
|
|
@@ -52,11 +51,10 @@
|
|
|
52
51
|
"@types/node": "^20.11.0",
|
|
53
52
|
"@typescript-eslint/eslint-plugin": "^6.19.0",
|
|
54
53
|
"@typescript-eslint/parser": "^6.19.0",
|
|
55
|
-
"@vercel/node": "^3.0.0",
|
|
56
54
|
"eslint": "^8.56.0",
|
|
57
55
|
"prettier": "^3.2.4",
|
|
58
56
|
"typescript": "^5.3.3",
|
|
59
|
-
"vitest": "^
|
|
57
|
+
"vitest": "^4.1.11"
|
|
60
58
|
},
|
|
61
59
|
"engines": {
|
|
62
60
|
"node": ">=20.0.0"
|
|
@@ -68,7 +66,11 @@
|
|
|
68
66
|
"fast-uri@<=3.1.1": "^3.1.2",
|
|
69
67
|
"ajv@>=7.0.0 <8.18.0": "^8.18.0",
|
|
70
68
|
"qs@>=6.7.0 <=6.14.1": "^6.14.2",
|
|
71
|
-
"protobufjs@<=7.5.7": "^7.5.8"
|
|
69
|
+
"protobufjs@<=7.5.7": "^7.5.8",
|
|
70
|
+
"qs@>=6.15.0 <6.16.0": "^6.16.0",
|
|
71
|
+
"minimatch@>=9.0.0 <9.0.7": "^9.0.7",
|
|
72
|
+
"adm-zip@<0.6.1": "^0.6.1",
|
|
73
|
+
"sharp@>=0.34.0 <0.35.4": "^0.35.4"
|
|
72
74
|
}
|
|
73
75
|
}
|
|
74
76
|
}
|