[{"data":1,"prerenderedAt":396},["ShallowReactive",2],{"content-/memory-makers-nanya-dram-charts":3,"all-pages-for-dir":394,"og-image-/memory-makers-nanya-dram-charts":395},{"id":4,"title":5,"body":6,"category":374,"description":375,"extension":376,"meta":377,"navigation":378,"ogImage":379,"path":380,"project_name":381,"published":382,"publishedAt":383,"seo":384,"stem":385,"tags":386,"todo":379,"unpublished":382,"updatedAt":379,"__hash__":393},"pages/2026-06/2026-06-23/memory-makers-nanya-dram-charts.md","memory-makers に南亞科技を追加し、DRAM チャートのトーンを揃え直した日",{"type":7,"value":8,"toc":362},"minimark",[9,14,23,30,34,50,61,65,72,75,111,114,118,136,151,172,179,183,186,198,201,227,247,251,262,276,279,313,316,356],[10,11,13],"h2",{"id":12},"きっかけ南亞科技の数量ではなく値段だけで稼いだ四半期","きっかけ：南亞科技の「数量ではなく値段だけで稼いだ四半期」",[15,16,17,18,22],"p",{},"きっかけは外で見かけた1行だった。\n「南亞科技の1-3月期は売上が前年同期比+582.9%、粗利益率は67.9%まで跳ね、平均販売価格は前期比+70%なのにビット出荷はむしろ微減」。\n数量が動いていないのに ASP（平均販売価格）だけで稼ぎ切る四半期というのは絵として強い。\nこれは ",[19,20,21],"code",{},"/memory-makers/"," 配下に持ってきたい、と思った。",[15,24,25,26,29],{},"最初に「Powerchip（力晶, PSMC）が ",[19,27,28],{},"/memory-makers/makers"," に入っていない気がする」と Claude Code に伝えたが、調べさせたら既に登録済みだった。\nリスト上の横棒を社名と勘違いしていただけだったので謝って、本題の南亞科技に切り替えた。",[10,31,33],{"id":32},"やってみたら-ir-の出し方がやや特殊だった","やってみたら IR の出し方がやや特殊だった",[15,35,36,37,41,42,45,46,49],{},"「ASP と Bit 出荷量を四半期で取れるか」を Claude Code に調べさせたら、南亞科技は公式 IR で開示はしている、ただし",[38,39,40],"strong",{},"レンジ表記","で出している、ということが分かった。\nMicron のように ",[19,43,44],{},"+18.5%"," という具体的な数値ではなく、",[19,47,48],{},"ASP 季增超過 70 位數百分比 / Bit Shipment 季減中個位數百分比"," のような書き方だ。\n「>+70%」「mid-single digit 減」というニュアンスを言葉で投げてくる。",[15,51,52,53,56,57,60],{},"最初は makers.ts の ",[19,54,55],{},"overview"," 末尾に文章で説明文を追記してもらった。\nところが表示確認のスクショを見たら、自分が欲しかったのは「数字の記述」ではなく「",[38,58,59],{},"チャート","」だった、と気付いた。\n売上の方は月次でグラフになっているのに、この ASP / Bit Shipment は文章で並んでいるだけだ。違和感が残った。",[10,62,64],{"id":63},"中央値で勝手に数値化をやめてir-の記号をそのまま見せる","「中央値で勝手に数値化」をやめて、IR の記号をそのまま見せる",[15,66,67,68,71],{},"最初に Claude Code が出してきた案は、レンジ表記を",[38,69,70],{},"中央値で数値化してプロット","するものだった。\nたとえば「>+70%」なら「+75%」と仮置きしてバーを伸ばす、という発想。\nグラフは描けるが、これは南亞科技が言っていない数字を画面に書くことになる。\nそこで「+75 とは言ってないじゃないですか。記号でいいです」と方針を切り替えた。",[15,73,74],{},"ここからチャート側のリファクタが始まる。",[76,77,78,86,104],"ul",{},[79,80,81,82,85],"li",{},"まず ",[19,83,84],{},"GroupedBarChart"," に「ラベルだけ外から上書きできる optional な prop」を追加してもらった。後方互換は維持。",[79,87,88,89,92,93,92,96,99,100,103],{},"バーの長さを描くための中央値は裏で持っておくが、画面に見せる文字は ",[19,90,91],{},">+70%"," ",[19,94,95],{},"+mid",[19,97,98],{},"-low 20s"," のような",[38,101,102],{},"IR 原文の記号","にする。",[79,105,106,107,110],{},"小さなバーでもラベルが消えないように、",[19,108,109],{},"valueLabels"," を渡したときは「短いバーはラベル省略」のしきい値を無視する分岐を入れる。",[15,112,113],{},"これで「+75 と勝手に書く」問題は消えた。",[10,115,117],{"id":116},"棒-折れ線-個別コンポーネントに切り出し","棒 → 折れ線 → 個別コンポーネントに切り出し",[15,119,120,121,124,125,128,129,131,132,135],{},"ここでもう一段方針が変わった。\nQoQ の変化率を棒で並べていたが、ASP と Bit 出荷の",[38,122,123],{},"並走関係","（ASP は跳ね、Bit は横ばい）を見たいので、棒 → 折れ線に切り替えた。\n",[19,126,127],{},"SegmentLineChart"," 側にも ",[19,130,109],{}," 上書きを足して、",[19,133,134],{},"[maker].vue"," を差し替え。",[15,137,138,139,142,143,146,147,150],{},"ここまで来てから、ようやく「配置がそもそも変だ」と気付いた。\n最初は ",[19,140,141],{},"showSignalsLayers"," セクション直後（ページ下のシグナル群の中）に置いていたが、これは ASP / Bit 出荷量という",[38,144,145],{},"売上の分解","情報だ。\n四半期売上高チャートの真下に置いた方が、読み手の思考に沿う。\n配置を ",[19,148,149],{},"QuarterlyRevenueChart"," の直下に移植した。",[15,152,153,154,156,157,159,160,163,164,167,168,171],{},"そのうえで Claude Code は ",[19,155,127],{}," を直接書き換えようとしたが、他ページからも使われているコンポーネントなので壊したくない。\n",[19,158,149],{}," のトンマナ（",[19,161,162],{},"#fafafa"," の背景パネル、年境の 4px dashed ",[19,165,166],{},"#A6A6A6"," 縦線、年ラベル）を踏襲した Nanya 専用の折れ線コンポーネント ",[19,169,170],{},"NanyaAspBitChart.vue"," を新規で切り出させた。",[15,173,174,175,178],{},"結果、",[19,176,177],{},"/memory-makers/nanya"," の売上セクションの直下に、ASP / Bit 出荷量の QoQ 変化率を IR 原文記号付きで折れ線2系列で描くチャートが収まった。\n売上が跳ねている隣で「数量はほぼ横ばい・ASP だけ突き抜ける」線が並ぶ。絵として読みやすい。",[10,180,182],{"id":181},"ついでに-dram-4社比較などのトンマナ揃ってない問題も片付ける","ついでに DRAM 4社比較などの「トンマナ揃ってない問題」も片付ける",[15,184,185],{},"Nanya のチャートが綺麗に収まったのを見て、ユーザーから次の指摘が来た。\n「他の箇所、たとえば DRAM 4社の市販機売上比較などのチャートも、ここは全部トーンとマナーが合ってないじゃないですか」。",[15,187,188,189,191,192,194,195,197],{},"確かに、",[19,190,21],{}," 配下のチャートは段階的に作ってきたので、コンポーネントごとに座標系・余白・凡例位置・フォントが微妙にズレていた。\n横串でリファクタすることにして、まずサブエージェントに全ページのチャートを監査させた。\n監査結果を見て、基準は ",[19,193,149],{},"（1200 座標系・背景パネル ",[19,196,162],{},"・年境縦点線・凡例上部・共通フォントファミリ）と決めた。",[15,199,200],{},"そこから 4 ステップで進めた。",[76,202,203,209,215,221],{},[79,204,205,208],{},[38,206,207],{},"Step 1: QuarterlyEpsChart"," — もともと基準に近かった。凡例（最新Q=マゼンタ / 黒字=濃グレー / 赤字=薄グレー）と年境縦点線を足して終了。",[79,210,211,214],{},[38,212,213],{},"Step 2: SegmentLineChart"," — 内部だけ書き直し、外向きの prop は据え置き。他ページから呼ばれているので壊さない。",[79,216,217,220],{},[38,218,219],{},"Step 3: GroupedBarChart"," — 1200 座標系・背景パネル・凡例位置・フォントを基準側に寄せる。",[79,222,223,226],{},[38,224,225],{},"Step 4: StackedBarChart"," — Step 3 と同じ要領で書き直し。再起動を 1 回に減らすため Step 3 と連続して反映。",[15,228,229,230,233,234,233,237,233,240,233,243,246],{},"memo/2026-06-23/ にステップごとのスクショ（",[19,231,232],{},"step1-eps-chart-aligned.png"," / ",[19,235,236],{},"step2-segmentlinechart-skhynix-margin.png",[19,238,239],{},"step3-groupedbar-skhynix-signals.png",[19,241,242],{},"step3-groupedbar-nanya-dram-compare.png",[19,244,245],{},"step4-stackedbar-dram-fab-capacity.png","）が残っている。\n監査 → 共通基準を1枚決める → ステップごとに合わせる、という順序がよかった。「全部いっぺんに直す」と必ずどこかが壊れる。",[10,248,250],{"id":249},"詰まりどころhmr-と-dev-サーバーの-503","詰まりどころ：HMR と dev サーバーの 503",[15,252,253,254,257,258,261],{},"途中で何度か HMR が反映されない場面があり、",[19,255,256],{},"SSR HTML には新セクションが出ているのに画面が古いまま","という挙動になった。\n最初は Chrome 側のキャッシュを疑ってハードリロードしたが直らず、結局 port 3000 の Nuxt CLI プロセスだけを kill して dev サーバーを立て直したら反映された。\nStep 3/4 を一気に反映したときは dev サーバーが一時的に 503 を返して、これも立て直しで復帰。\nチャートコンポーネントを連続して書き換えるときは、",[19,259,260],{},".nuxt/dist"," の再生成が間に合わないことがあるという感触を得た。",[15,263,264,267,268,271,272,275],{},[19,265,266],{},"taskkill //IM node.exe //F"," は Claude Code 自体が落ちるので絶対使わず、ポート単位で ",[19,269,270],{},"Get-NetTCPConnection -LocalPort 3000"," から PID を出して ",[19,273,274],{},"Stop-Process"," する手順を守った。",[10,277,278],{"id":278},"学び",[76,280,281,287,299,307],{},[79,282,283,286],{},[38,284,285],{},"「文章で説明 → チャート」「中央値で数値化 → IR 原文記号」のような方針反転は、画面を見てから初めて気付ける","。最初から正解は出てこない。スクショで見て違和感を拾うのが一番早い。",[79,288,289,292,293,295,296,298],{},[38,290,291],{},"共通コンポーネントを直接書き換えたい誘惑に勝つ","。",[19,294,127],{}," は他ページからも使われているので、Nanya 専用の折れ線は別ファイル（",[19,297,170],{},"）に切り出した。後方互換を保つ判断は正しかった。",[79,300,301,292,304,306],{},[38,302,303],{},"横串リファクタは「基準を 1 つ決める → サブエージェントで全ページ監査 → ステップごとに反映」",[19,305,149],{}," を基準に置けたのが効いた。基準が無いと「どれに合わせるのか」で迷子になる。",[79,308,309,312],{},[38,310,311],{},"「会社が言っていない数字を画面に書かない」","。レンジ表記を中央値で勝手に確定させるのは、技術的にはチャートが描けるが情報の解像度を勝手に上げてしまう。IR 原文の記号をそのまま出す方が誠実だ。",[10,314,315],{"id":315},"触ったファイル",[76,317,318,324,333,339,345,350],{},[79,319,320,323],{},[19,321,322],{},"apps/web/app/components/memory-makers/NanyaAspBitChart.vue","（新規）",[79,325,326,329,330,332],{},[19,327,328],{},"apps/web/app/components/memory-makers/GroupedBarChart.vue","（トンマナ統一・",[19,331,109],{}," 上書き対応）",[79,334,335,338],{},[19,336,337],{},"apps/web/app/components/memory-makers/QuarterlyEpsChart.vue","（凡例＋年境縦点線）",[79,340,341,344],{},[19,342,343],{},"apps/web/app/components/memory-makers/SegmentLineChart.vue","（基準に寄せて書き直し）",[79,346,347,344],{},[19,348,349],{},"apps/web/app/components/memory-makers/StackedBarChart.vue",[79,351,352,355],{},[19,353,354],{},"apps/web/app/pages/memory-makers/[maker].vue","（Nanya セクションを売上チャート直下に移植・新コンポーネント import）",[15,357,358,359,361],{},"南亞科技の個別ページは ",[19,360,177],{}," で見られる。",{"title":363,"searchDepth":364,"depth":364,"links":365},"",2,[366,367,368,369,370,371,372,373],{"id":12,"depth":364,"text":13},{"id":32,"depth":364,"text":33},{"id":63,"depth":364,"text":64},{"id":116,"depth":364,"text":117},{"id":181,"depth":364,"text":182},{"id":249,"depth":364,"text":250},{"id":278,"depth":364,"text":278},{"id":315,"depth":364,"text":315},"dev","/memory-makers/nanya の個別ページに ASP / Bit 出荷の折れ線チャートを差し込みつつ、DRAM 4社比較や EPS など他チャートのトンマナを QuarterlyRevenueChart に寄せて統一した記録。","md",{},true,null,"/memory-makers-nanya-dram-charts","mdx-playground",false,"2026-06-23T00:00:00.000Z",{"title":5,"description":375},"2026-06/2026-06-23/memory-makers-nanya-dram-charts",[387,388,389,390,391,59,392],"memory-makers","Nanya","DRAM","Vue","SVG","トンマナ統一","A2pPQiFc6A05DbIfX9ND8OG1awkq_1SMbQ9KTveEV3o",[],"https://log.eurekapu.com/og/blog/memory-makers-nanya-dram-charts.png?v=2026-06-23T00%3A00%3A00.000Z&title=memory-makers%20%E3%81%AB%E5%8D%97%E4%BA%9E%E7%A7%91%E6%8A%80%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%80%81DRAM%20%E3%83%81%E3%83%A3%E3%83%BC%E3%83%88%E3%81%AE%E3%83%88%E3%83%BC%E3%83%B3%E3%82%92%E6%8F%83%E3%81%88%E7%9B%B4%E3%81%97%E3%81%9F%E6%97%A5&author=Kei%20Komatsu&sig=687cb92a2d6d72e5",1782364625766]