[{"data":1,"prerenderedAt":733},["ShallowReactive",2],{"content-/2026-06-22-korea-chip-exports-dram-module-ssd":3,"all-pages-for-dir":731,"og-image-/2026-06-22-korea-chip-exports-dram-module-ssd":732},{"id":4,"title":5,"body":6,"category":714,"description":715,"extension":716,"meta":717,"navigation":288,"ogImage":718,"path":719,"project_name":714,"published":720,"publishedAt":721,"seo":722,"stem":723,"tags":724,"todo":718,"unpublished":720,"updatedAt":718,"__hash__":730},"pages/2026-06/2026-06-22/korea-chip-exports-dram-module-ssd.md","韓国 メモリ品目別輸出に DRAM モジュールと SSD を追加 — Chrome 拡張機能で関税庁 tradedata.go.kr を直接叩く",{"type":7,"value":8,"toc":701},"minimark",[9,14,40,44,55,95,102,106,119,130,139,149,167,171,174,180,211,214,258,262,451,457,460,463,592,606,615,618,624,638,641,644,668,671,697],[10,11,13],"h1",{"id":12},"韓国-メモリ品目別輸出に-dram-モジュールと-ssd-を追加","韓国 メモリ品目別輸出に DRAM モジュールと SSD を追加",[15,16,17,18,22,23,26,27,31,32,35,36,39],"p",{},"韓国関税庁の ",[19,20,21],"code",{},"tradedata.go.kr"," から品目別月次輸出を取り、",[19,24,25],{},"/memory-makers/korea-chip-exports"," の「品目別の内訳」セクションを ",[28,29,30],"strong",{},"5 品目構成","に拡張した。新規追加分は ",[28,33,34],{},"DRAM モジュール（HSK 8473.30.4060 디램 모듈、DIMM/RDIMM/UDIMM 系の完成品）"," と ",[28,37,38],{},"SSD（HSK 8523.51 솔리드 스테이트 비휘발성 기억장치）","。期間は既存3品目（DRAM・NAND・MCP）と揃えて 2018-01〜2026-05 の 101 ヶ月。",[41,42,43],"h2",{"id":43},"なぜ追加したか",[15,45,46,47,50,51,54],{},"既存 3 品目はチップ単体（HS 8542.32 系）に揃えていた。MCP には HBM が含まれるので「HBM の出荷強度」は MCP で代理できるが、HBM が積まれていく",[28,48,49],{},"先","（DDR5 RDIMM などのモジュール製品）と、QLC NAND が回って完成する ",[28,52,53],{},"SSD"," の動きは、別の HS 区分で見ないと取れない。",[56,57,58,77],"ul",{},[59,60,61,64,65,68,69,72,73,76],"li",{},[28,62,63],{},"DRAM モジュール（HS 8473.30.4060）",": AI サーバの DDR5 RDIMM・MRDIMM、データセンタ向けの大容量モジュールが乗ってくる枠。最新月 2026-05 で輸出 ",[19,66,67],{},"$7.19B","（YoY +318.5%）、重量基準単価 ",[19,70,71],{},"$45,568/kg","。MCP（HBM 含む）",[19,74,75],{},"$9.62B"," に並ぶ規模で、しかも単価ベースで急騰している。",[59,78,79,82,83,86,87,90,91,94],{},[28,80,81],{},"SSD（HS 8523.51）",": QLC NAND の応用先として PC・データセンタ向け SSD が積み上がる枠。2026-05 で ",[19,84,85],{},"$3.97B","（YoY +338.5%）、単価 ",[19,88,89],{},"$22,383/kg","。チップ単体の NAND（",[19,92,93],{},"$1.72B","）より完成品 SSD のほうが大きい。",[15,96,97,98,101],{},"どちらも HS 8542（IC）の外側で、",[28,99,100],{},"MOTIE が毎月1日に発表する「半導체」輸出には含まれない","。なので「韓国半導体輸出」の総額（最上段の MOTIE チャート）と二重カウントにはならず、別カテゴリの動きとして読める。",[41,103,105],{"id":104},"tradedatagokr-を叩くのが地獄だった","tradedata.go.kr を叩くのが地獄だった",[15,107,108,109,118],{},"最初は ",[110,111,117],"a",{"href":112,"target":113,"rel":114},"https://eurekapu.com/","_blank",[115,116],"noopener","noreferrer","agent-browser"," 経由で照会していたが、CDP タイムアウト（os error 10060）が頻発した。Bot 検出ではなく単に CDP の不安定さで、長時間セッションを保てない。",[15,120,121,122,125,126,129],{},"Chrome 拡張機能（content script）として組み込めば、ブラウザのタブの中で ",[19,123,124],{},"fetch"," を直接叩くだけで済む。Cookie・JSESSIONID は ",[19,127,128],{},"credentials: 'include'"," で勝手に乗るし、CDP を経由しないので落ちない。",[131,132,134,135,138],"h3",{"id":133},"拡張機能の構成chrome-extension-tradedata-kr","拡張機能の構成（",[19,136,137],{},"chrome-extension-tradedata-kr/","）",[140,141,146],"pre",{"className":142,"code":144,"language":145},[143],"language-text","chrome-extension-tradedata-kr/\n├── manifest.json          # v3、host_permissions: tradedata.go.kr\n├── content.js             # retrieveTrade.do を fetch で叩く\n├── background.js          # chrome.downloads で JSON 保存\n├── popup.html / popup.js  # HSK + 期間入力 UI\n└── scripts/import_to_ts.mjs  # JSON → ChipItemExportPoint[] スニペット生成\n","text",[19,147,144],{"__ignoreMap":148},"",[15,150,151,152,155,156,158,159,162,163,166],{},"参考にしたのは ",[19,153,154],{},"chrome-extension-x/bookmark-exporter.js","（X GraphQL API を CSRF トークン + ",[19,157,128],{}," で叩く構造）と ",[19,160,161],{},"chrome-extension-kofyin/","（Koyfin テーブル DOM 抽出 + ",[19,164,165],{},"chrome.downloads.download"," で Downloads サブフォルダ保存）。",[131,168,170],{"id":169},"関税庁-api-の仕様devtools-で-1-回叩いて確定","関税庁 API の仕様（DevTools で 1 回叩いて確定）",[15,172,173],{},"通常 Chrome の DevTools で 1 回 UI 経由の照会を走らせて Network パネルから拾った:",[140,175,178],{"className":176,"code":177,"language":145},[143],"POST https://tradedata.go.kr/cts/hmpg/retrieveTrade.do\nContent-Type: application/x-www-form-urlencoded; charset=UTF-8\nX-Requested-With: XMLHttpRequest\nisajax: true\n\ntradeKind=ETS_MNK_1020000A       # 품목별\n&priodKind=MON                    # 월별\n&priodFr=202401%20                # 末尾スペース必須\n&priodTo=202406%20\n&statsBase=acptDd                 # 수리일基準\n&ttwgTpcd=1                       # 1=Kg, 1000=톤\n&showPagingLine=100\n&hsSgnGrpCol=HS10_SGN             # 10桁単位（6桁なら HS6_SGN）\n&hsSgnWhrCol=HS10_SGN\n&hsSgn=8542321010\n",[19,179,177],{"__ignoreMap":148},[15,181,182,183,186,187,190,191,194,195,198,199,202,203,206,207,210],{},"レスポンスは JSON で、",[19,184,185],{},"items[]"," の各行に ",[19,188,189],{},"priodTitle: \"2024.01\"","・",[19,192,193],{},"expTtwg: \"         128,871\"","（kg・左パディング+カンマ）・",[19,196,197],{},"expUsdAmt: \"       1,407,209\"","（千USD）・",[19,200,201],{},"cmtrBlncAmt","（무역수지）・",[19,204,205],{},"korePrlstNm","（品目名）。先頭は ",[19,208,209],{},"priodTitle: \"총계\""," の総計行で、これは除外する。",[15,212,213],{},"注意点を 3 つ:",[215,216,217,227,236],"ol",{},[59,218,219,222,223,226],{},[28,220,221],{},"품목별は最大 5 年制限",": 月別照会で 60 ヶ月を超えると ",[19,224,225],{},"cf_alertMessage"," で弾かれる。2018-01〜2026-05 は 101 ヶ月なので、2 バッチに分けて叩く（2018-01〜2022-12 と 2023-01〜2026-05）。",[59,228,229,235],{},[28,230,231,234],{},[19,232,233],{},"searchresult: \"FAIL\""," でも items は来る",": 「잠시 후 다시 시도해 주십시오」（しばらくしてから再試行してください）の警告メッセージが付いてくるが、items 配列にはちゃんとデータが入っている。FAIL を厳格チェックすると取りこぼすので、items の長さで判定するほうが安全。",[59,237,238,241,242,245,246,249,250,253,254,257],{},[28,239,240],{},"HSK の桁数選択",": 10 桁で照会したい品目（既存 3 品目）と、6 桁レベルでまとめたい品目（SSD = 852351）を混在させるなら、",[19,243,244],{},"hsSgnGrpCol"," をリクエストごとに切り替える。",[19,247,248],{},"8523510000","（10 桁）では 0 件、",[19,251,252],{},"852351","（6 桁・",[19,255,256],{},"HS6_SGN","）で 7 件＝韓国 HSK 体系で 8523.51 配下にサブコードがある構造になっている。",[131,259,261],{"id":260},"content-script-本体抜粋","content script 本体（抜粋）",[140,263,267],{"className":264,"code":265,"language":266,"meta":148,"style":148},"language-js shiki shiki-themes vitesse-light vitesse-light","const ENDPOINT = \"/cts/hmpg/retrieveTrade.do\";\nconst MAX_MONTHS_PER_BATCH = 60;\n\nconst fetchBatch = async (hs, hsGrp, fromYm, toYm) => {\n  const body = new URLSearchParams({\n    tradeKind: \"ETS_MNK_1020000A\",\n    priodKind: \"MON\",\n    priodFr: `${fromYm} `,\n    priodTo: `${toYm} `,\n    statsBase: \"acptDd\",\n    ttwgTpcd: \"1\",\n    showPagingLine: \"100\",\n    sortColumn: \"\",\n    sortOrder: \"\",\n    hsSgnGrpCol: hsGrp,\n    hsSgnWhrCol: hsGrp,\n    hsSgn: hs,\n  });\n  const res = await fetch(ENDPOINT, {\n    method: \"POST\",\n    credentials: \"include\",\n    headers: {\n      \"Content-Type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n      \"X-Requested-With\": \"XMLHttpRequest\",\n      \"isajax\": \"true\",\n    },\n    body: body.toString(),\n  });\n  return await res.json();\n};\n","js",[19,268,269,277,283,290,296,302,308,314,320,326,332,338,344,350,356,362,368,374,380,386,392,398,404,410,416,422,428,434,439,445],{"__ignoreMap":148},[270,271,274],"span",{"class":272,"line":273},"line",1,[270,275,276],{},"const ENDPOINT = \"/cts/hmpg/retrieveTrade.do\";\n",[270,278,280],{"class":272,"line":279},2,[270,281,282],{},"const MAX_MONTHS_PER_BATCH = 60;\n",[270,284,286],{"class":272,"line":285},3,[270,287,289],{"emptyLinePlaceholder":288},true,"\n",[270,291,293],{"class":272,"line":292},4,[270,294,295],{},"const fetchBatch = async (hs, hsGrp, fromYm, toYm) => {\n",[270,297,299],{"class":272,"line":298},5,[270,300,301],{},"  const body = new URLSearchParams({\n",[270,303,305],{"class":272,"line":304},6,[270,306,307],{},"    tradeKind: \"ETS_MNK_1020000A\",\n",[270,309,311],{"class":272,"line":310},7,[270,312,313],{},"    priodKind: \"MON\",\n",[270,315,317],{"class":272,"line":316},8,[270,318,319],{},"    priodFr: `${fromYm} `,\n",[270,321,323],{"class":272,"line":322},9,[270,324,325],{},"    priodTo: `${toYm} `,\n",[270,327,329],{"class":272,"line":328},10,[270,330,331],{},"    statsBase: \"acptDd\",\n",[270,333,335],{"class":272,"line":334},11,[270,336,337],{},"    ttwgTpcd: \"1\",\n",[270,339,341],{"class":272,"line":340},12,[270,342,343],{},"    showPagingLine: \"100\",\n",[270,345,347],{"class":272,"line":346},13,[270,348,349],{},"    sortColumn: \"\",\n",[270,351,353],{"class":272,"line":352},14,[270,354,355],{},"    sortOrder: \"\",\n",[270,357,359],{"class":272,"line":358},15,[270,360,361],{},"    hsSgnGrpCol: hsGrp,\n",[270,363,365],{"class":272,"line":364},16,[270,366,367],{},"    hsSgnWhrCol: hsGrp,\n",[270,369,371],{"class":272,"line":370},17,[270,372,373],{},"    hsSgn: hs,\n",[270,375,377],{"class":272,"line":376},18,[270,378,379],{},"  });\n",[270,381,383],{"class":272,"line":382},19,[270,384,385],{},"  const res = await fetch(ENDPOINT, {\n",[270,387,389],{"class":272,"line":388},20,[270,390,391],{},"    method: \"POST\",\n",[270,393,395],{"class":272,"line":394},21,[270,396,397],{},"    credentials: \"include\",\n",[270,399,401],{"class":272,"line":400},22,[270,402,403],{},"    headers: {\n",[270,405,407],{"class":272,"line":406},23,[270,408,409],{},"      \"Content-Type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n",[270,411,413],{"class":272,"line":412},24,[270,414,415],{},"      \"X-Requested-With\": \"XMLHttpRequest\",\n",[270,417,419],{"class":272,"line":418},25,[270,420,421],{},"      \"isajax\": \"true\",\n",[270,423,425],{"class":272,"line":424},26,[270,426,427],{},"    },\n",[270,429,431],{"class":272,"line":430},27,[270,432,433],{},"    body: body.toString(),\n",[270,435,437],{"class":272,"line":436},28,[270,438,379],{},[270,440,442],{"class":272,"line":441},29,[270,443,444],{},"  return await res.json();\n",[270,446,448],{"class":272,"line":447},30,[270,449,450],{},"};\n",[15,452,453,454,456],{},"Cookie ヘッダは何も指定していないが、",[19,455,128],{}," でブラウザの JSESSIONID がそのまま乗る。これが拡張機能を使う最大のメリットで、CSRF トークンを別取得する必要もない。",[41,458,459],{"id":459},"データの所感",[15,461,462],{},"2026-05 時点のサマリ（YoY は前年同月比）:",[464,465,466,488],"table",{},[467,468,469],"thead",{},[470,471,472,476,479,482,485],"tr",{},[473,474,475],"th",{},"品目",[473,477,478],{},"HSK",[473,480,481],{},"2026-05 輸出",[473,483,484],{},"YoY",[473,486,487],{},"単価 ($/kg)",[489,490,491,509,525,541,567],"tbody",{},[470,492,493,497,500,503,506],{},[494,495,496],"td",{},"DRAM",[494,498,499],{},"8542.32.1010",[494,501,502],{},"$11.43B",[494,504,505],{},"+409.0%",[494,507,508],{},"$77,531",[470,510,511,514,517,519,522],{},[494,512,513],{},"NAND",[494,515,516],{},"8542.32.1030",[494,518,93],{},[494,520,521],{},"+207.0%",[494,523,524],{},"$56,832",[470,526,527,530,533,535,538],{},[494,528,529],{},"MCP（HBM 含む）",[494,531,532],{},"8542.32.3000",[494,534,75],{},[494,536,537],{},"+140.1%",[494,539,540],{},"$83,798",[470,542,543,548,553,557,562],{},[494,544,545],{},[28,546,547],{},"DRAM モジュール",[494,549,550],{},[28,551,552],{},"8473.30.4060",[494,554,555],{},[28,556,67],{},[494,558,559],{},[28,560,561],{},"+318.5%",[494,563,564],{},[28,565,566],{},"$45,568",[470,568,569,573,578,582,587],{},[494,570,571],{},[28,572,53],{},[494,574,575],{},[28,576,577],{},"8523.51",[494,579,580],{},[28,581,85],{},[494,583,584],{},[28,585,586],{},"+338.5%",[494,588,589],{},[28,590,591],{},"$22,383",[15,593,594,595,598,599,601,602,605],{},"DRAM モジュールの伸びが MCP に並ぶ規模になっているのが目を引く。HBM 単体（MCP）が +140% の中で、その HBM が積まれた完成モジュールが +318% で抜き、しかも単価が 2024-01 の約 ",[19,596,597],{},"$6,065/kg"," から 2026-05 の ",[19,600,71],{}," まで ",[28,603,604],{},"7.5 倍","になっている。データセンタ向け DDR5 RDIMM の単価が完成品レベルで急騰しているのが見える。",[15,607,608,609,611,612,614],{},"SSD は +338% で金額の絶対水準は SK Hynix/Samsung の NAND ビジネスのうち完成品側にあたる。チップ単体の NAND（",[19,610,93],{},"）より完成品 SSD（",[19,613,85],{},"）が大きいのは、Solidigm 買収後のデータセンタ SSD（Solidigm/SK hynix ブランド）と Samsung の PM9D3a 系がデータセンタ向けに本格出荷されている時期に当たる。",[41,616,617],{"id":617},"テストの調整",[15,619,620,623],{},[19,621,622],{},"tests/korea-chip-item-exports.test.ts"," を 5 品目構成に拡張した。",[56,625,626,629,632,635],{},[59,627,628],{},"「3 品目（dram/nand/mcp）が揃っている」→ 「5 品目（dram/nand/mcp/dram_module/ssd）が揃っている」",[59,630,631],{},"HSK コードの検証に 2 行追加（8473.30.4060 と 8523.51）",[59,633,634],{},"「HS 8542 全体は品目別 3 系列の合計を全月で上回る」テストは、DRAM モジュール・SSD が HS 8542 の外側にあるため、3 系列限定で集計するように修正",[59,636,637],{},"「3 品目合計が MOTIE 半導体輸出合計の 35〜95% に収まる」テストは旧 3 品目で残す（DRAM モジュール・SSD は MOTIE「半導체」に含まれないため、合計対象から外す）",[15,639,640],{},"33 tests 全部 pass。",[41,642,643],{"id":643},"次に伸ばせる方向",[56,645,646,652,658],{},[59,647,648,651],{},[28,649,650],{},"8473.30 配下の他コード",": 8473.30.4060 以外の記憶モジュール系コード（8473.30.4020 等）を取って分解すると、DIMM 種別ごとの動きが見えるかもしれない",[59,653,654,657],{},[28,655,656],{},"8523 配下",": 8523.51 が SSD だが、8523.52 の SD カード等も同じ枠で叩ける",[59,659,660,663,664,667],{},[28,661,662],{},"国別 + 品目別",": tradeKind を ",[19,665,666],{},"ETS_MNK_1020000E","（품목별 + 국가별）に変えれば、輸出先別に DRAM モジュール・SSD を出せる。HBM が乗ったモジュールが米国・中国・台湾のどこに流れているかが見えるはず。これは次の取り組み",[41,669,670],{"id":670},"関連",[56,672,673,679,685,691],{},[59,674,675,676],{},"ページ: ",[110,677,678],{"href":25},"韓国 半導体月次輸出の推移",[59,680,681,682],{},"計画書: ",[19,683,684],{},"memo/2026-06-22/chrome-extension-tradedata-kr-plan.md",[59,686,687,688],{},"拡張機能リポジトリ: ",[19,689,690],{},"C:/Users/numbe/Git_repo/chrome-extension-tradedata-kr/",[59,692,693,694],{},"取得済み生 JSON: ",[19,695,696],{},"memo/2026-06-22/tradedata-raw.json",[698,699,700],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":148,"searchDepth":279,"depth":279,"links":702},[703,704,710,711,712,713],{"id":43,"depth":279,"text":43},{"id":104,"depth":279,"text":105,"children":705},[706,708,709],{"id":133,"depth":285,"text":707},"拡張機能の構成（chrome-extension-tradedata-kr/）",{"id":169,"depth":285,"text":170},{"id":260,"depth":285,"text":261},{"id":459,"depth":279,"text":459},{"id":617,"depth":279,"text":617},{"id":643,"depth":279,"text":643},{"id":670,"depth":279,"text":670},"memory-makers","agent-browser 経由だと CDP タイムアウトが頻発する関税庁 tradedata.go.kr の品目別輸出データを、Chrome 拡張機能（content script）の fetch でブラウザのセッション ID をそのまま使って取得する設計。DRAM モジュール（HS 8473.30.4060 디램 모듈）と SSD（HS 8523.51 솔리드 스테이트 비휘발성 기억장치）の月次データ 2018-01〜2026-05 を取り込み、/memory-makers/korea-chip-exports に 5 品目構成として描画する。","md",{},null,"/2026-06-22-korea-chip-exports-dram-module-ssd",false,"2026-06-22T00:00:00.000Z",{"title":5,"description":715},"2026-06/2026-06-22/korea-chip-exports-dram-module-ssd",[725,726,727,496,53,728,729],"半導体","韓国","輸出統計","HBM","Chrome拡張","aEz8WPNd0fPf3T35OE_x32CDYQ4qx4Tkgid5YHdddiw",[],"https://log.eurekapu.com/og/blog/2026-06-22-korea-chip-exports-dram-module-ssd.png?v=2026-06-22T00%3A00%3A00.000Z&title=%E9%9F%93%E5%9B%BD%20%E3%83%A1%E3%83%A2%E3%83%AA%E5%93%81%E7%9B%AE%E5%88%A5%E8%BC%B8%E5%87%BA%E3%81%AB%20DRAM%20%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%A8%20SSD%20%E3%82%92%E8%BF%BD%E5%8A%A0%20%E2%80%94%20Chrome%20%E6%8B%A1%E5%BC%B5%E6%A9%9F%E8%83%BD%E3%81%A7%E9%96%A2%E7%A8%8E%E5%BA%81%20tradedata.go.kr%20%E3%82%92%E7%9B%B4%E6%8E%A5%E5%8F%A9%E3%81%8F&author=Kei%20Komatsu&sig=c062541dc8227da3",1782176333738]