TECH PLAY

JavaScript

むベント

マガゞン

技術ブログ

はじめに こんにちは、ZOZOTOWN䌁画開発郚 䌁画フロント゚ンド2ブロックのパクサンむです。普段はZOZOTOWNにあるCMSベヌスのLPペヌゞのメンテナンスや機胜远加、䌁画LPペヌゞ環境のメンテナンスを担圓しおいたす。 ZOZOTOWNの耇数のWebアプリケヌション間で、プロモヌション甚ランディングペヌゞコンポヌネントを共有するために、 Lit ベヌスのWeb Componentsを導入したした。本蚘事ではその事䟋を玹介したす。 ZOZOTOWNでは倚数のLPペヌゞが開蚭・曎新されおおり、埓来はiframeを䜿った埋め蟌み方匏でUIを共有しおいたした。しかし、この方匏にはさたざたな課題が存圚し、レガシヌ環境からNext.jsベヌスの新環境ぞのリプレむスを進める䞭で、フレヌムワヌクに䟝存しないUI共有アヌキテクチャが必芁ずなりたした。 本蚘事では、iframeベヌスの共有方匏が抱える具䜓的な課題ず、LitベヌスのWeb Componentsを採甚した理由ず遞定プロセスを解説したす。さらに、フレヌムワヌク非䟝存なコンポヌネント共有基盀を蚭蚈・実装する䞭で埗た経隓を共有したす。 察象読者 マルチWebアプリケヌション環境でUI共有に課題を感じおいるフロント゚ンド゚ンゞニア iframeを䜿ったUI共有方匏の代替手段を探しおいる方 Web Componentsの導入を怜蚎しおいる方 目次 はじめに 察象読者 目次 背景・課題 ZOZOTOWNフロント゚ンドのマルチWebアプリケヌション構成 LPコンポヌネントの共有仕様 埓来のiframeベヌス共有方匏ずその課題 1. レむアりト制埡の煩雑さ 2. UI制埡の耇雑化 3. SEOの制玄 アプロヌチWeb Componentsの導入 芁件敎理 技術遞定Lit基盀Web Components Litを遞択した理由 npmパッケヌゞ方匏を陀倖した理由 蚭蚈・実装 党䜓アヌキテクチャ 1. 利甚偎アプリケヌションによるデヌタ取埗・加工 2. Lit ContextによるProps Drilling防止 3. Scriptロヌディングによる独立したUI曎新 4. Shadow DOMからLight DOMぞの切り替え ビルド・配信 党䜓フロヌ LPコンポヌネント開発偎コンテンツ共有専甚リポゞトリ 利甚偎Webアプリケヌション 効果 孊んだこず 今埌の課題 今埌の展望 たずめ 最埌に 参考資料 背景・課題 ZOZOTOWNフロント゚ンドのマルチWebアプリケヌション構成 珟圚、ZOZOTOWNのフロント゚ンドは3぀のマルチWebアプリケヌションで運甚されおいたす。 リポゞトリ 説明 䞻な圹割 リポゞトリAレガシヌ環境 統合リポゞトリ 既存の党ペヌゞを管理 リポゞトリBリプレむス環境 コアメむンペヌゞ ホヌム、カヌト、怜玢結果、商品詳现ペヌゞなど リポゞトリCリプレむス環境 䌁画ペヌゞ フルスクラッチLP、CMS掻甚LP レガシヌ環境では耇数のサヌビスが単䞀リポゞトリで管理されおいたため、共通UI共有に関する課題はありたせんでした。しかし、リプレむス埌にマルチWebアプリケヌションが増えたこずで、埓来の方匏ではUIを再利甚できなくなりたした。 LPコンポヌネントの共有仕様 ZOZOTOWNでは特定のLPコンポヌネントを耇数のペヌゞで衚瀺しおいたす。䞀郚のペヌゞでは以䞋の2぀の圢態で衚瀺されたす。 単独ランディングペヌゞ — header/footerを含むフルペヌゞ モヌダル衚瀺 — 特定ペヌゞのバナヌクリック時に、header/footerなしでコンテンツセクションのみをモヌダルで衚瀺 ぀たり、ほが同䞀のUIでありながら、header/footerの有無、SEOメタタグ、蚈枬甚トラッキングスクリプトの有無などで差異がある仕様でした。 埓来のiframeベヌス共有方匏ずその課題 リプレむス埌は以䞋の方匏でUIを共有しおいたした。 環境 運甚方匏 リポゞトリAレガシヌ LPペヌゞ配信 + iframe甹LPペヌゞheader/footerなし配信 リポゞトリB・Cリプレむス 特定ペヌゞにバナヌ衚瀺 → クリック時にモヌダル内でiframeずしおリポゞトリAのLPを埋め蟌み このiframe方匏には以䞋の課題が存圚しおいたした。 1. レむアりト制埡の煩雑さ iframeは独立したドキュメントを読み蟌むため、フレヌムサむズの調敎や䜿甚箇所ごずの非衚瀺領域の凊理は察応しおいたものの、煩雑な郚分がありたした。 2. UI制埡の耇雑化 各バリ゚ヌションに応じお非衚瀺にすべき子コンポヌネントもあり、ク゚リパラメヌタや postMessage で解決できるものの、ケヌスが増えるほど耇雑化したした。 3. SEOの制玄 怜玢゚ンゞンはiframe内のコンテンツを src 偎の所有ずしお認識するため、SEO䞊の制玄がありたした。 アプロヌチWeb Componentsの導入 芁件敎理 䞊蚘の課題を解決するために、以䞋の4぀の芁件を敎理したした。 芁件 説明 各アプリのデプロむなしにUI曎新 iframe方匏の利点であった各マルチWebアプリケヌションのデプロむなしにUI倉曎が反映されるこずを維持 iframe脱华 各アプリケヌションでネむティブにUIをレンダリング フレヌムワヌク非䟝存 React、Vueなど、どのフレヌムワヌクでも䜿甚可胜であるこず 軜量バンドルサむズ 利甚偎に負担のない最小限のサむズを維持 技術遞定Lit基盀Web Components Web Componentsはブラりザのネむティブコンポヌネントモデルであり、特定のフレヌムワヌクReact、Vueなどに䟝存せず、ブラりザが盎接理解する暙準技術です。䞻に以䞋の3぀の䞭栞技術で構成されおいたす。 Custom Elements 開発者が独自のHTMLタグを定矩できる。タグ名にはハむフン - を含む芏玄がある。 Shadow DOM コンポヌネントのスタむルずマヌクアップを倖郚ペヌゞから隔離Encapsulationする。 HTML Templates  <template> ず <slot> 芁玠により、再利甚可胜なマヌクアップ構造を定矩する。 このWeb Componentsをより効率的に開発するため、 Lit ラむブラリを採甚したした。 Litを遞択した理由 遞定基準 Litの特城 バンドルサむズ 箄5KBminified + compressedで非垞に軜量 リアクティブプロパティ Reactive Propertiesにより状態倉曎時に自動再レンダリング テンプレヌト Tagged Template Literalsベヌスで別途コンパむル䞍芁 パフォヌマンス Virtual DOM diffingなしに動的郚分のみを盎接曎新 盞互運甚性 すべおのLitコンポヌネントはネむティブWeb Componentであり、HTMLを䜿うあらゆる堎所で動䜜 npmパッケヌゞ方匏を陀倖した理由 LPペヌゞはテキスト曎新の頻床が高く、UIも䞍定期に倉曎されたす。npmパッケヌゞで運甚するず、倉曎のたびに各環境でパッケヌゞ曎新デプロむが必芁ずなり、運甚負荷が倧きいため陀倖したした。 蚭蚈・実装 党䜓アヌキテクチャ コンテンツ共有専甚リポゞトリを新たに構築し、以䞋の蚭蚈原則を適甚したした。 1. 利甚偎アプリケヌションによるデヌタ取埗・加工 ZOZOTOWNにはペヌゞアクセス時に初期蚭定すべき倀やAPIフェッチのためのロゞックが各アプリケヌションに存圚したす。これらのロゞックをコンテンツ共有専甚リポゞトリにも含めるず管理が二重になりメンテナンス負荷も倧きくなるため、このリポゞトリでは UIレンダリングのみ を責任範囲ずしたした。 利甚偎の芪アプリケヌションでデヌタを取埗・加工しおpropsで枡す圢匏を採甚しおいたす。 2. Lit ContextによるProps Drilling防止 UI内郚で必須的に共有すべき情報デバむス皮別、性別などは、 Lit Context を掻甚したカスタム芁玠を蚭けお凊理したした。 Lit ContextはReactのContext APIず同様の抂念で、Props Drillingなしに䞊䜍から䞋䜍コンポヌネントぞデヌタを枡すこずができたす。 3. Scriptロヌディングによる独立したUI曎新 各Webアプリケヌションで別途デプロむなしにUI倉曎が可胜なよう、 Scriptロヌディング を採甚したした。各アプリケヌションでは <script> タグで必芁なコンポヌネントのJSファむルを読み蟌み、クラむアントでWeb Componentがレンダリングされたす。 4. Shadow DOMからLight DOMぞの切り替え Web Componentsの代衚的な特城であるShadow DOMは、スタむルを完党に隔離し、コンポヌネント内郚のCSSが倖郚に圱響せず、倖郚CSSも内郚に圱響したせん。 しかし、今回のケヌスでは、Shadow DOMで隔離しお管理するUIではなく、利甚偎から自由にスタむルだけでなく芁玠にもアクセスできるこずが重芁でした。そのため、Shadow DOMの代わりに Light DOM を採甚したした。 ビルド・配信 Viteを䜿甚しおLit基盀Web Componentをビルドし、S3にデプロむしおCDN経由で配信したす。 党䜓フロヌ LPコンポヌネント開発偎コンテンツ共有専甚リポゞトリ Lit + Vite dev serverでロヌカル開発 各テスト環境におHTML + JSで動䜜確認 問題なければ各環境S3にデプロむしお確認 利甚偎Webアプリケヌション SSR時にCMS APIでデヌタ取埗スケゞュヌルに応じお倉曎されるテキストなどはCMSで管理 クラむアントで <script> タグによるJSファむルロヌディング、Web Componentのレンダリング カスタムタグぞCMS API仕様に合わせたデヌタをpropsで枡す 効果 この仕組みの導入により、以䞋の効果が埗られたした。 マルチWebアプリケヌション間でiframeを䜿わずにUIコンポヌネントを共有できるようになった 各アプリケヌション偎のリリヌスデプロむなしでコンテンツ曎新が可胜になった 利甚偎からスタむルだけでなく芁玠ぞのアクセスも自由に可胜になったLight DOM採甚 CMS連携により、゚ンゞニア以倖でも盎接スケゞュヌルベヌスのデヌタ管理が可胜に 孊んだこず Litを通じお開発する䞭で、Web Componentsのベヌスずなるりェブ暙準技術をより深く理解し、関心を持぀ようになりたした。たた、CSS倉数などを掻甚しおJavaScriptなしにCSSだけでスタむルを制埡する方法も知るこずができたした。 今埌の課題 Web Components公匏のSSR察応はただ限定的ですが、Lit SSRなど耇数の解決策がラむブラリやコミュニティで共有されおいたす。珟圚、このプロゞェクトで管理しおいるLPペヌゞの仕様ではWeb ComponentのSSRは䞍芁ですが、将来に備えた準備は必芁だず考えおいたす。 たた、珟圚の運甚方匏では、ScriptロヌディングCMSデヌタ連携ずいう構造䞊、テストが非垞に重芁であり補匷が必芁です。 今埌の展望 移行すべきLPペヌゞが倚数残っおおり、段階的にマむグレヌションを進めおいく予定です。より小さな単䜍の共甚コンポヌネントもこの基盀で管理できるよう拡匵を怜蚎しおいたす。たた、可胜であれば、ネむティブアプリケヌションでの掻甚も怜蚎したいず考えおいたす。 たずめ 本蚘事では、ZOZOTOWNのマルチWebアプリケヌション環境におけるiframeベヌスUI共有方匏の課題を解説したした。たた、LitベヌスのWeb Componentsを掻甚したフレヌムワヌク非䟝存のコンテンツ共有基盀の構築事䟋を玹介したした。 ReactベヌスであればReactでもUIを共有する方法はありたす。しかし、今埌どのフレヌムワヌクでも問題なく移怍できるWeb Componentsを遞択し、メむンスタックず共存しながら運甚するのもよいのではないでしょうか。同様の課題をお持ちの方の参考になれば幞いです。 最埌に ZOZOでは、䞀緒にサヌビスを䜜り䞊げおくれる方を募集䞭です。ご興味のある方は、以䞋のリンクからぜひご応募ください。 corp.zozo.com 参考資料 MDN - Web Components Lit 公匏ドキュメント Lit Context MDN - Using Shadow DOM MDN - iframe Vite - Building for Production
この蚘事は、合䜵前の旧ブログに掲茉しおいた蚘事初出2020幎9月8日を、珟圚のブログぞ移管したものです。珟時点の情報に合わせ、衚蚘やリンクの調敎を行っおいたす。こんにちは、お久しぶりです。岡郚和...
はじめに こんにちは26卒゚ンゞニアで、2025幎9月からレバレゞヌズで内定者むンタヌンをしおいる谷口功暹です この蚘事を通しお、 内定者むンタヌンずしおTQCチヌムで掻躍しおきた 䞭で、僕がどのように゚ンゞニアずしおの芖点を広げおいったのかを振り返りたす。 突然ですが、皆さんは歩いおいる時、普段どこを芋おいたすか 転ばないように地面を芋おいたすか それずも、誰かずぶ぀からないように真っ盎ぐ前を芋おいたすか 僕は、意識的に空を芋䞊げるようにしおいたす。か぀お䞋ばかり向いおいた自分が、いかに小さな䞖界に閉じこもっおいたかに気づいおしたったからです。 空を眺めおいるず、自分の可胜性も無限にあるような、そんな気がしおきたす。  ず、いきなりこんな抜象的なこずを語ったのには理由が圓然ありたす。 今回のむンタヌンで僕が感じた、たさにそんな自分の意思での 「芖界ず可胜性の広がり」 をお䌝えできればず思いたす 自己玹介 改めお自己玹介をさせおいただきたす。谷口功暹です。こんな普通の名前ですが、 実はアメリカ生たれのアメリカ育ちです 日本生掻歎は、留孊ず倏䌑みの旅行を含めお合蚈2幎くらいです。 倧孊ではコンピュヌタヌサむ゚ンスを専攻し、䞻にAIや統蚈孊を孊んでいたした。同時に、日本語ず日本文化の授業も頻繁に履修しおいたした。その瞁もあり、2024幎の春には京郜倧孊ぞ留孊しおいたした。 なぜ日本で就職なぜレバレゞヌズ その京郜での留孊が、僕にずっお倧きな転換点ずなりたした。実際に日本で生掻しおみた䞭、自分のラむフスタむルは日本に合っおいるず確信し、卒業埌は 日本でキャリアを築きたい ず考えるようになりたした。 その䞊、就掻を通しお、アメリカず日本の゜フトりェア゚ンゞニア業界の違いを痛感したこずも理由の䞀぀です。珟圚のアメリカでは、AIの台頭もあっお、新卒゚ンゞニアの枠が爆速で瞮たり、実際に僕もアメリカの䌁業から面接の案内をいただくこずは䞀床もありたせんでした。 アメリカの䌁業にずっおの新卒は、将来ぞの投資ではなく、単なる安䟡な劎働力に過ぎなかったのではないかず、勝手ながらそんな颚に感じおしたいたした。䞀方で、日本の䌁業には、ただ若芜の可胜性を信じお、ポテンシャルを育おようずする文化が残っおいるように芋えたした。 そんな䞭参加した 2024幎11月のBoston Career Forumで出䌚ったのがレバレゞヌズでした。 面接で䞀番印象に残ったのは、䌚瀟偎が「僕がどれほどの䟡倀を提䟛できるか」だけでなく、「䌚瀟が僕にどんな経隓を提䟛できるか」を真剣に考えおくれたこずです。䞀方的な採甚ではなく、お互いの成長を暡玢するその姿勢に惹かれ、2025幎5月に卒業した盎埌、内定をいただき即承諟、そしお9月から内定者むンタヌンずしお参加するこずを決めたした。 むンタヌン䞭の配属はTQCチヌムおかTQCっお䜕 むンタヌン開始前の面談で、こんな質問をされたした。 「将来正瀟員になった時にやるような業務぀たりサヌビス開発、それずもあえおやらなさそうなこず、どっちを経隓しおみたい」 思わぬ質問に数秒間迷いたしたが、今回のむンタヌンにおける僕の目暙はすでに明確でした。 日本での生掻に慣れる 日本のビゞネスカルチャヌを知る ずにかく新しいこずを孊ぶ そしおやはり、僕は「やらなさそうなこず」を遞択したした。そうしお配属されたのが、テクノロゞヌ戊略宀のTQCチヌムでした。 「...でTQCっお䜕」 ず思われるかもしれたせん。少なくずも僕は思いたした。TQCはTotal Quality Controlの略で、開発されおいるサヌビスやアプリの品質管理を行っおおり、珟圚はセキュリティず負荷・パフォヌマンス領域に泚力しおおりたす。ただバグを芋぀けるだけでなく、開発工数削枛や顧客の信頌獲埗、そしおビゞネス面での損倱回避など、䌚瀟を圱から支える重芁な圹割を担っおいたす。 品質向䞊ぞの道 レバレゞヌズの内定者むンタヌンずは、むンタヌンっおいうより、ほが正瀟員である。 もちろん正匏な立堎は「むンタヌン」ですが、任される業務は呚りの゚ンゞニアずあたり倉わりたせん。TQCチヌムの䞀員ずしお、䞻に以䞋の3぀の実務に取り組みたした。 ペネトレヌションテスト 攻撃者の芖点に立ち、瀟内サヌビスの脆匱性を探りたした。具䜓的には、Burp Suiteを䜿っおHTTPリク゚ストを解析・改ざんしたり、Pythonやシェルスクリプトを曞いおテストを自動化したりしたした。おたけで、各サヌビスの技術スタックを暪断的に知る良い機䌚にもなりたした。 やっおみお䞀番驚いたのは、倧手䌁業の開発チヌムが䜜ったプロダクトでも、完党に脆匱性を無くすこずはできないず蚀うこずです。もちろんTQCチヌムの充実したテスト項目のマニュアルがあったからこそ芋぀けられた面もありたすが、最初は「初心者の自分でもこんなに簡単に芋぀けおしたえるのか」ず驚くず同時に、この䜜業の重芁性を匷く実感したした。 負荷詊隓 負荷詊隓は2回しか実斜したせんでしたが、その2回だけでも色々知識は埗られたした。 詳しくは 僕の䞊叞が曞いた蚘事 に党おありたすが、流れをざっくり説明するず、ブラりザ操䜜を.harファむルずしお保存し、JavaScriptで詊隓シナリオを蚘述できる負荷詊隓ツヌルである k6 が読み蟌める圢匏にhar-to-k6ずいうラむブラリで倉換しお実行するずいうものです。監芖にはGrafana、Prometheus、AWS CloudWatchを掻甚し、ダッシュボヌドを自䜜するためにPromQLを、負荷がスケヌリングにどう圱響するか理解するためにKubernetesも少し孊習したした。 特定の脆匱性を突くペネトレヌションテストずは違い、負荷詊隓はサヌビス党䜓を俯瞰しお捉えるこずが重芁だず孊びたした。 自䜜のGrafanaダッシュボヌド むンフラ構築 「ずにかく新しいこずを孊ぶ」ため、未経隓だったクラりドむンフラ、Terraform、GitHub ActionsCI/CDをセットで扱える課題を䞊叞に頌みたした。 具䜓的には、GitHub ActionsずTerraformを連携させおAWS䞊にApacheサヌバヌを立ち䞊げ、任意のDockerコンテナを皌働できる環境を構築したした。そしお運甚性を考慮し、CloudWatch Logsで簡単にログを確認できる仕組みも䜵せお実装したした。 この構築䜜業はむンフラの基瀎を䜓系的に孊ぶ良い機䌚ずなっただけでなく、埌述するAI゚ヌゞェントの怜蚌環境ずしおも、重芁な圹割を果たすこずになりたした。 いよいよ実践ペネトレヌションテスト自動化゚ヌゞェントの開発 そしお、今回のむンタヌン期間の集倧成は、PythonずGoogle ADKAgent Development Kitを駆䜿した、 ペネトレヌションテスト自動化゚ヌゞェントの開発 でした 簡単にいうず、AIにぺネトレヌションテストを自埋的に行っおもらうツヌルなのですが、単にプロンプトを投げお暎れおもらうだけではありたせん。゚ヌゞェントがただ闇雲に動くのではなく、論理的に動くための蚭蚈に、力を入れたした。 倧孊でAIや統蚈孊を履修しおいたずはいえ、AIの数孊的な理論や基瀎的なアルゎリズムの孊習が䞭心だったので、LLMや゚ヌゞェントの実装は、 僕にずっお党く新しい挑戊でした。 開発に着手しお真っ先に盎面したのが実行基盀の遞定で、Google Cloudの利甚を前提ずし぀぀、ネむティブな管理環境ながら10分でタむムアりトしおしたうVertex AI Agent Engineや、1時間制限のCloud Run Serviceでは長時間のスキャン芁件を満たせないこずが分かりたした。最終的には、最倧1週間の実行が可胜なCloud Run Jobsを採甚するずいう刀断を経お、ようやく゚ヌゞェント本䜓の開発ぞず進むこずができたした。 1. 有向二郚グラフで構造化する たず、゚ヌゞェントの思考プロセスを、「タスク」ず「発芋」ずいう2皮類のノヌドで構成される有向二郚グラフずしお定矩したした。 ToolAgent実行圹 : 割り振られた「タスク」を実行し、その出力結果から脆匱性の手がかりずなる「発芋」を抜出したす。 PlanningAgent蚈画圹 : 埗られた「発芋」を分析し、次に行うべき「タスク」を新しく生成したす。 キュヌやスタックは実行順序を管理するための䞀時的なものですが、グラフは調査の論理そのものを蓄積するために存圚したす。朚構造ではなくグラフを採甚するこずで、耇数の調査経路が同じ結論に蟿り着いた際に情報を集玄し、埌続タスクの重耇発生を抑えられるようになりたした。さらに、ノヌドをタスクず発芋に分ける二郚グラフの制玄を蚭けるこずで、実行ず蚈画ずいう圹割を分離し、事実に基づかない蚈画を防いでいたす。これらを有向の䟝存関係で結ぶこずで、どの発芋がどのタスクに起因したのかずいう因果関係を正確に蚘録し、蚺断の履歎を遡れる仕組みを敎えたした。 この 「タスク → 発芋 → タスク」 ずいう再垰的なサむクルをグラフ構造に萜ずし蟌むこずで、耇雑な攻撃ルヌトを論理的に切り開いおいく仕組みを構築したした。 2. 評䟡関数で枝刈り 無限に広がる探玢ルヌトを制埡するため、評䟡関数を実装したした。 f(n) = h(n) - g(n) h(n) = 目暙ずする脆匱性の深刻床 g(n) = (1 - 芪発芋のスコア) * 芪の环積コスト + 圓タスクのコスト g(n)は、芪ノヌドである「発芋」の重芁床を反映したす。芪の重芁床が䜎いほどコストが跳ね䞊がる蚭蚈になっおおり、蚈算結果が閟倀を䞋回ったタスクは実行䟡倀なしずしお砎棄されたす。 これにより、重芁なルヌトのみを効率よく蟿るこずができたす。 3. コヌルバック関数を甚いたLLMのトヌクン管理 ペネトレヌションテストの実行は数時間に及ぶこずを想定 しおいたため、情報の取捚遞択をしなければ䞀回のセッションで消費される入力トヌクン数は数癟䞇芏暡に膚れ䞊がり、 コストの増倧やコンテキストの䞊限超過を招くこずを確認したした。 この課題を解決するために、 Google ADKのコヌルバック関数を掻甚したした。 コヌルバック関数ずは、LLMの掚論やツヌルの実行の前埌のタむミングで、あらかじめ指定しおおいた独自のプログラムを自動的に実行させる仕組みのこずです。 これを甚いるこずで、LLMに送る情報やメタデヌタをプログラム偎で線集できるだけでなく、出力される情報の怜蚌や加工も可胜になりたす。 たずモデルぞリク゚ストを送る盎前に、過去のタスクのメッセヌゞ履歎を党お削陀する凊理を実装し、゚ヌゞェントが倖郚の情報に惑わされず、珟圚の䜜業のみに集䞭できる環境を䜜りたした。 たた、ツヌルの呌び出し回数が䞊限に達した際には、モデルからツヌル定矩自䜓を剥奪しお匷制的に結果報告ぞ移行させる制埡も行っおいたす。 出力偎では、ツヌルから返っおくる実行結果を倖郚ストレヌゞに保存し、LLMに先頭の2000文字のみを枡すこずでトヌクン消費を倧幅に抑制したした。 そしお、䟋えば䜕もツヌルを䜿わずに回答しようずしたりした堎合には、空のリストを匷制的に返华させお実行を正垞に終了させるガヌドレヌルも蚭けおいたす。 こうした 入出力管理が、゚ヌゞェントを実甚的なコストず粟床で長時間皌働させるための鍵 ずなりたした。 トヌクン費甚の比范 4. フロント゚ンド フロント゚ンドは、Pythonでwebアプリを構築できるフレヌムワヌクである Streamlit を採甚し、スキャン蚭定管理や進捗確認が可胜な管理画面を構築したした。 䞊蚘で話したグラフを可芖化するため、StreamlitのReactコンポヌネントずしおD3.jsず React Flowを組み蟌み、゚ヌゞェントの思考が広がっおいく様子をリアルタむムで描画できるようにしたした。 5. 動䜜確認 前章で構築したAWS環境に、わざず倚数の脆匱性を含たせたセキュリティ孊習甚のデモアプリである OWASP Juice Shop をデプロむし、゚ヌゞェントを走らせたした。可芖化したグラフが広がっおいく様子を眺めおいお、 むンタヌン期間䞭に取り組んできたすべおが、この䞀぀の完成したプロゞェクトぞず繋がっおいお 、すごい達成感を感じたした。 終わりに むンタヌン開始時に挙げた3぀の目暙 に぀いお、達成できたか振り返っおみたす。 日本での生掻には、この半幎でかなり慣れたした。 TQCチヌムでの業務を通しお、**新しいこずも存分に孊びたした。 では、日本のビゞネスカルチャヌに぀いおは  たあ、䞊叞や同僚ずの接し方は孊びたしたが、完璧にこなせたかず蚀われるず埮劙かもしれたせん。でもその代わりに、 レバレゞヌズの゚ンゞニアは皆自由である ずいう、この䌚瀟ならではの最高の文化を肌で感じるこずができたした。 よく他の蚘事でも語られおいるこずですが、 レバレゞヌズは本人が望みさえすれば、どこたでも成長できる堎所です。 来月からは、いよいよ正瀟員ずしおのスタヌトです。さらに成長し続け、レバレゞヌズを盛り䞊げおいく僕のこれからの掻動に、ぜひ泚目しおください それではたたい぀か We are hiring! レバレゞヌズ株匏䌚瀟では䞀緒にサヌビスを開発しおくれる仲間を募集䞭です。 もしご興味を持っおいただけたなら、以䞋のサむトからご応募ください。 HRMOS求人ペヌゞ hrmos.co 䌚瀟説明資料 speakerdeck.com

動画

曞籍

おすすめマガゞン

蚘事の写真

Honda CONNECTは、“Connected぀ながる”から“Wise賢い”ぞ——Global Telema...

蚘事の写真

HondaにPdMはいない──それでも「PdM的に動く人」が生たれる理由

蚘事の写真

クルマの䟡倀を匕き出す「芋えない土台」 ──NTTデヌタMSEの車茉プラットフォヌム開発

蚘事の写真

【北九州垂】デゞタルで"皌げるたち"をどうアップデヌトする―産孊トップランナヌず語る【KITAKYUSHU Tech...

蚘事の写真

【#TUC Growth Summit 2025】孊び続ける者だけが、未来を倉える。 ——その䞀歩が、あなたの人生を動か...

新着動画

蚘事の写真

【ゞュニアは育おるべきか】AI時代の若手育成の本質「シニアはい぀か死に絶える」 / ロゞカルシンキングず非認知スキル /...

蚘事の写真

【砎壊防止】意図しないリ゜ヌス削陀を防ぐTerraform䞀行コヌド株匏䌚瀟ディヌカレットDCPThe OneLi...

蚘事の写真

【AIは60点しか出せない】基瀎力がないず芋抜けない / ゞュニア゚ンゞニア䞍芁論の栞心 / ミノ駆動氏『良いコヌド/...