#
749
2026/6/8
今日のトレンド

AIセキュリティとTSRX言語

どうも、おはようございます。マイクです。
時刻は朝7時を少し回ったところ、今日は2026年6月9日、火曜日です。
ここからの時間は「zenncast」、きょうもZennに上がっているトレンド記事の中から、気になるテーマをピックアップしてご紹介していきます。通勤・通学中のあなたも、おうちでゆっくりしているあなたも、よかったら最後までお付き合いください。

今日はお便りはお休みということで、そのぶんガッツリ記事の紹介に時間を使っていきましょう。

さて、きょう紹介する記事は全部で5本です。
AI時代のセキュリティ、フロントの新しいテンプレート言語、GoのGC、生成系レコメンド、そしてAIとウォーターフォール開発という、なかなか濃いラインナップになっています。

まず1本目。
タイトルは「バイブコーディングが怖いので、全PJにSemgrep + gitleaksの自動セキュリティスキャンを仕込んだ話」。
いまAIにコードを書いてもらったり、レビューしてもらったりするのが当たり前になっていますが、その一方で「自分で気づかない危ない実装」が混ざるリスクも増えてますよね。この記事の筆者は、そこをかなり真面目に対策していて、個人開発プロジェクト全部に、Semgrepとgitleaksを仕込みました、というお話です。構成がおもしろくて、まずはpre-commitフックで、コミットするときに自動スキャン。さらにGitHub ActionsでもpushやPRのタイミングで再チェックする二段構え。Semgrepは言語に合わせてルールを自動で選んでくれる設定を使って、gitleaksはシークレット検出の誤検知を避けるために、lockファイルなんかをallowlistして運用しながらチューニングしていく方針。実際に危険な`shell=True`のコードとか、Slackトークンがきちんと検出されるかも検証しています。ポイントは、「動くコード」と「安全なコード」は別物だよね、という視点。AIがいるからこそ、人間の目だけに頼らない自動チェックの仕組みを最初からテンプレに組み込んでおくのが大事だよ、というメッセージが印象的でした。AIと一緒に開発している人ほど、聞き捨てならない内容じゃないかなと思います。

。.。.。.。.

続いて2本目。
タイトルは「TypeScript拡張『TSRX』を触ってみて、JSXと比べて考えたこと」。
TSRXというのは、元Reactコアエンジニアが作っている、TypeScriptのスーパーセット言語で、.tsrxファイルからReactやVue、Solidなど、いろんなフレームワーク向けのコードに変換できるテンプレート言語なんですね。おもしろいのが、returnの中のテンプレートに、ifとかfor、tryみたいな「文」をそのまま書けるという点。それから、HTML要素やブロックごとに独自スコープを持つので、スコープ漏れも防げる。結果として、表示とロジックを近いところにまとめつつ、JSXでよくある「ここには条件分岐書けないんだよな」とか、「hooksをループの中に入れちゃダメ」みたいな制約を、コンパイラ側が引き受けてくれるイメージです。一方で、Reactのルールって、ある意味「書き方のガイド」でもあるので、TSRXみたいに自由度が上がると、その分チーム内の設計やコーディング規約をちゃんと決めないと、書き方バラバラになりそうだよね、という指摘もされています。まだ仕様も流動的で、これからどう転ぶかわからないんですが、「エージェント時代」を見据えたコロケーション重視のアプローチとして、今のうちに触っておくと発想が広がりそうなツールだな、という印象でした。

。.。.。.。.

3本目の記事。
タイトルは「GoランタイムにおけるGCのタイミングを知っておこう」。
GoってGCが自動で動くから、つい「メモリ周りはお任せでいいや」と思いがちなんですが、コンテナ環境だとそれがOOM、メモリ不足につながることもありますよ、という実践的な話です。記事では、512MiB上限のコンテナで大きめのバイトスライスをどんどん確保していく例を使って、「ループの合間でGCが走ってくれそうなのに、実は走らないでOOMになる」という、直感とズレた挙動を丁寧に解説しています。そのうえで、GCが走る主なきっかけを4つ整理していて、1つ目がLive heapと環境変数GOGCから計算されるターゲットヒープ量に達したとき。GOGCを下げるとGC頻度は上がるけど、そのぶんCPUコストも増えるよと。2つ目がGOMEMLIMITというランタイムのメモリ上限に届いたとき。これはコンテナみたいに専有している環境だとかなり有効で、上限ギリギリまでは使い切らずに、5〜10%は他用途に残そうね、という実践的なアドバイスもあります。3つ目がruntime.GCの明示的な呼び出し。ただし、呼び出し元やプログラム全体がブロックされる可能性があるので常用は非推奨。4つ目が、最後のGCから2分経ったときの時間トリガー。このあたりを理解して、GOGCやGOMEMLIMITをちゃんと設定しておくと、「なんでか知らないけどコンテナだけ落ちる」という事故を減らせますよ、という、Goで本番運用している人には刺さる内容でした。

。.。.。.。.

4本目。
タイトルは「推薦システムの新たなパラダイム Generative Recommendation」。
これはレコメンドシステムの世界が、いま言語モデル的なアプローチにシフトしつつあるよ、という話です。Generative Recommendation、略してGRでは、「ユーザーが次にクリックしそうなアイテムのID列」を、まるで次の単語を予測するかのように、自己回帰的に生成します。Metaなどの研究で、モデルを大きくすればするほど素直に性能が伸びる「スケーリング則」も確認されていて、これは従来の手法では見られなかった傾向なんですね。ただ、アイテムIDが爆発的に多い問題とか、新しいアイテムのコールドスタート問題は、従来以上に重くのしかかります。そこで出てくるのが、Google TIGERで提案されたSemantic IDという仕組み。タイトルや説明、画像といったコンテンツ情報をエンコードして、RQ-VAEで階層的に量子化して、複数トークンの列に変換する。似たアイテムほど先頭トークンを共有しやすくて、新規アイテムでも、既存のどれかとID列が部分的に重なったりするので、コールドスタートをかなり緩和できるんですね。記事ではMovieLensを題材に、SentenceTransformerで埋め込みを作り、RQ-VAEでSemantic IDに変換して、それをトークン列としてDecoder-only Transformerに食わせる実装を紹介しています。履歴はプロンプト、ターゲットアイテムは生成対象、という完全に言語モデルと同じ構造。推論時はgreedy decodingでSemantic IDを生成して、アイテムにマッピングします。精度としては「必ず正解をピンポイントで当てる」わけではないものの、ディズニー作品やスターウォーズなど、文脈的に筋の良いアイテムを出してくる様子が見えていて、「レコメンドもついにLLM的な世界観だな」と感じられる内容でした。

。.。.。.。.

そしてラスト、5本目。
タイトルは「AIウォーターフォール開発:コンテキストゼロのAIを一人前にする仕組み」。
いまのAIって、毎回コンテキストがリセットされる新人みたいなもので、仕様書やドキュメントをただ渡しただけでは、「どの要件がどの仕様や実装につながっていて、どこに影響するのか」まではなかなか理解してくれないですよね。この記事では、古典的なウォーターフォール開発から「トレーサビリティ」だけを抜き出して、AIのための仕組みに再構成しています。ADR、REQ、SPEC、BF、TC、srcという最小構成のドキュメント体系を作り、Neo4jでそれぞれの関係性をグラフとして管理。検索も、まずpgvectorで意味的に近いものをざっくり絞り、そのうえでグラフをたどる二段構えのGraphRAGにして、AIには「本当に必要な関連ドキュメント」だけを渡すアーキテクチャになっています。さらにClaude Code向けに、impact-report、spec-check、trace-test、waterfall-prといったスキルを用意して、実装前後の影響範囲の洗い出しや、仕様との整合性チェック、PRレビューまでを半自動化。GitHub Actionsと組み合わせることで、パターンとして回せるようにしているのが特徴です。既存プロジェクトでも、コードから逆算的にドキュメントを起こして土台を作れる一方で、そもそもドキュメント文化が薄いチームへの導入はまだ課題、というリアルな話も書かれていて、「AIにちゃんと仕事をさせるには、人間側のプロセス設計もここまでやる必要があるのか」と考えさせられる内容でした。

というわけで、きょうのzenncastでは、
AI時代のセキュリティ自動スキャンの話、
TypeScript拡張TSRXとJSXの違いの話、
GoランタイムのGCタイミングとチューニングの話、
Generative RecommendationとSemantic IDの話、
そしてAIウォーターフォール開発とトレーサビリティの話、
この5本を駆け足でお届けしました。

気になる記事があった方は、詳しい内容や元の記事へのリンクをショーノートにまとめておきますので、あとでチェックしてみてください。
番組の感想や「こんなテーマを取り上げてほしい」といったリクエストも、どしどしお待ちしています。あなたの一言が、次回のラインナップを決めるかもしれません。

それでは、きょうも良い一日をお過ごしください。
お相手はマイクでした。また次回のzenncastでお会いしましょう。

Related episodes

内容の近いエピソードを推薦しています