韓国 メモリ品目別輸出に DRAM モジュールと SSD を追加
韓国関税庁の tradedata.go.kr から品目別月次輸出を取り、/memory-makers/korea-chip-exports の「品目別の内訳」セクションを 5 品目構成に拡張した。新規追加分は DRAM モジュール(HSK 8473.30.4060 디램 모듈、DIMM/RDIMM/UDIMM 系の完成品) と SSD(HSK 8523.51 솔리드 스테이트 비휘발성 기억장치)。期間は既存3品目(DRAM・NAND・MCP)と揃えて 2018-01〜2026-05 の 101 ヶ月。
なぜ追加したか
既存 3 品目はチップ単体(HS 8542.32 系)に揃えていた。MCP には HBM が含まれるので「HBM の出荷強度」は MCP で代理できるが、HBM が積まれていく先(DDR5 RDIMM などのモジュール製品)と、QLC NAND が回って完成する SSD の動きは、別の HS 区分で見ないと取れない。
- DRAM モジュール(HS 8473.30.4060): AI サーバの DDR5 RDIMM・MRDIMM、データセンタ向けの大容量モジュールが乗ってくる枠。最新月 2026-05 で輸出
$7.19B(YoY +318.5%)、重量基準単価$45,568/kg。MCP(HBM 含む)$9.62Bに並ぶ規模で、しかも単価ベースで急騰している。 - SSD(HS 8523.51): QLC NAND の応用先として PC・データセンタ向け SSD が積み上がる枠。2026-05 で
$3.97B(YoY +338.5%)、単価$22,383/kg。チップ単体の NAND($1.72B)より完成品 SSD のほうが大きい。
どちらも HS 8542(IC)の外側で、MOTIE が毎月1日に発表する「半導체」輸出には含まれない。なので「韓国半導体輸出」の総額(最上段の MOTIE チャート)と二重カウントにはならず、別カテゴリの動きとして読める。
tradedata.go.kr を叩くのが地獄だった
最初は agent-browser 経由で照会していたが、CDP タイムアウト(os error 10060)が頻発した。Bot 検出ではなく単に CDP の不安定さで、長時間セッションを保てない。
Chrome 拡張機能(content script)として組み込めば、ブラウザのタブの中で fetch を直接叩くだけで済む。Cookie・JSESSIONID は credentials: 'include' で勝手に乗るし、CDP を経由しないので落ちない。
拡張機能の構成(chrome-extension-tradedata-kr/)
chrome-extension-tradedata-kr/
├── manifest.json # v3、host_permissions: tradedata.go.kr
├── content.js # retrieveTrade.do を fetch で叩く
├── background.js # chrome.downloads で JSON 保存
├── popup.html / popup.js # HSK + 期間入力 UI
└── scripts/import_to_ts.mjs # JSON → ChipItemExportPoint[] スニペット生成
参考にしたのは chrome-extension-x/bookmark-exporter.js(X GraphQL API を CSRF トークン + credentials: 'include' で叩く構造)と chrome-extension-kofyin/(Koyfin テーブル DOM 抽出 + chrome.downloads.download で Downloads サブフォルダ保存)。
関税庁 API の仕様(DevTools で 1 回叩いて確定)
通常 Chrome の DevTools で 1 回 UI 経由の照会を走らせて Network パネルから拾った:
POST https://tradedata.go.kr/cts/hmpg/retrieveTrade.do
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
isajax: true
tradeKind=ETS_MNK_1020000A # 품목별
&priodKind=MON # 월별
&priodFr=202401%20 # 末尾スペース必須
&priodTo=202406%20
&statsBase=acptDd # 수리일基準
&ttwgTpcd=1 # 1=Kg, 1000=톤
&showPagingLine=100
&hsSgnGrpCol=HS10_SGN # 10桁単位(6桁なら HS6_SGN)
&hsSgnWhrCol=HS10_SGN
&hsSgn=8542321010
レスポンスは JSON で、items[] の各行に priodTitle: "2024.01"・expTtwg: " 128,871"(kg・左パディング+カンマ)・expUsdAmt: " 1,407,209"(千USD)・cmtrBlncAmt(무역수지)・korePrlstNm(品目名)。先頭は priodTitle: "총계" の総計行で、これは除外する。
注意点を 3 つ:
- 품목별は最大 5 年制限: 月別照会で 60 ヶ月を超えると
cf_alertMessageで弾かれる。2018-01〜2026-05 は 101 ヶ月なので、2 バッチに分けて叩く(2018-01〜2022-12 と 2023-01〜2026-05)。 searchresult: "FAIL"でも items は来る: 「잠시 후 다시 시도해 주십시오」(しばらくしてから再試行してください)の警告メッセージが付いてくるが、items 配列にはちゃんとデータが入っている。FAIL を厳格チェックすると取りこぼすので、items の長さで判定するほうが安全。- HSK の桁数選択: 10 桁で照会したい品目(既存 3 品目)と、6 桁レベルでまとめたい品目(SSD = 852351)を混在させるなら、
hsSgnGrpColをリクエストごとに切り替える。8523510000(10 桁)では 0 件、852351(6 桁・HS6_SGN)で 7 件=韓国 HSK 体系で 8523.51 配下にサブコードがある構造になっている。
content script 本体(抜粋)
const ENDPOINT = "/cts/hmpg/retrieveTrade.do";
const MAX_MONTHS_PER_BATCH = 60;
const fetchBatch = async (hs, hsGrp, fromYm, toYm) => {
const body = new URLSearchParams({
tradeKind: "ETS_MNK_1020000A",
priodKind: "MON",
priodFr: `${fromYm} `,
priodTo: `${toYm} `,
statsBase: "acptDd",
ttwgTpcd: "1",
showPagingLine: "100",
sortColumn: "",
sortOrder: "",
hsSgnGrpCol: hsGrp,
hsSgnWhrCol: hsGrp,
hsSgn: hs,
});
const res = await fetch(ENDPOINT, {
method: "POST",
credentials: "include",
headers: {
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
"X-Requested-With": "XMLHttpRequest",
"isajax": "true",
},
body: body.toString(),
});
return await res.json();
};
Cookie ヘッダは何も指定していないが、credentials: 'include' でブラウザの JSESSIONID がそのまま乗る。これが拡張機能を使う最大のメリットで、CSRF トークンを別取得する必要もない。
データの所感
2026-05 時点のサマリ(YoY は前年同月比):
| 品目 | HSK | 2026-05 輸出 | YoY | 単価 ($/kg) |
|---|---|---|---|---|
| DRAM | 8542.32.1010 | $11.43B | +409.0% | $77,531 |
| NAND | 8542.32.1030 | $1.72B | +207.0% | $56,832 |
| MCP(HBM 含む) | 8542.32.3000 | $9.62B | +140.1% | $83,798 |
| DRAM モジュール | 8473.30.4060 | $7.19B | +318.5% | $45,568 |
| SSD | 8523.51 | $3.97B | +338.5% | $22,383 |
DRAM モジュールの伸びが MCP に並ぶ規模になっているのが目を引く。HBM 単体(MCP)が +140% の中で、その HBM が積まれた完成モジュールが +318% で抜き、しかも単価が 2024-01 の約 $6,065/kg から 2026-05 の $45,568/kg まで 7.5 倍になっている。データセンタ向け DDR5 RDIMM の単価が完成品レベルで急騰しているのが見える。
SSD は +338% で金額の絶対水準は SK Hynix/Samsung の NAND ビジネスのうち完成品側にあたる。チップ単体の NAND($1.72B)より完成品 SSD($3.97B)が大きいのは、Solidigm 買収後のデータセンタ SSD(Solidigm/SK hynix ブランド)と Samsung の PM9D3a 系がデータセンタ向けに本格出荷されている時期に当たる。
テストの調整
tests/korea-chip-item-exports.test.ts を 5 品目構成に拡張した。
- 「3 品目(dram/nand/mcp)が揃っている」→ 「5 品目(dram/nand/mcp/dram_module/ssd)が揃っている」
- HSK コードの検証に 2 行追加(8473.30.4060 と 8523.51)
- 「HS 8542 全体は品目別 3 系列の合計を全月で上回る」テストは、DRAM モジュール・SSD が HS 8542 の外側にあるため、3 系列限定で集計するように修正
- 「3 品目合計が MOTIE 半導体輸出合計の 35〜95% に収まる」テストは旧 3 品目で残す(DRAM モジュール・SSD は MOTIE「半導체」に含まれないため、合計対象から外す)
33 tests 全部 pass。
次に伸ばせる方向
- 8473.30 配下の他コード: 8473.30.4060 以外の記憶モジュール系コード(8473.30.4020 等)を取って分解すると、DIMM 種別ごとの動きが見えるかもしれない
- 8523 配下: 8523.51 が SSD だが、8523.52 の SD カード等も同じ枠で叩ける
- 国別 + 品目別: tradeKind を
ETS_MNK_1020000E(품목별 + 국가별)に変えれば、輸出先別に DRAM モジュール・SSD を出せる。HBM が乗ったモジュールが米国・中国・台湾のどこに流れているかが見えるはず。これは次の取り組み
関連
- ページ: 韓国 半導体月次輸出の推移
- 計画書:
memo/2026-06-22/chrome-extension-tradedata-kr-plan.md - 拡張機能リポジトリ:
C:/Users/numbe/Git_repo/chrome-extension-tradedata-kr/ - 取得済み生 JSON:
memo/2026-06-22/tradedata-raw.json