2025-01-01から1年間の記事一覧

【アドベントカレンダー2025】CI/CD と単体テストで守る! cdk-nag をアサーションテストに組み込んでセキュアなクリスマスを🎄

はじめに メリークリスマス! アドベントカレンダー最終日を担当します、村田です。 普段はメールを配信するシステムなど社内で共通に利用されるプラットフォームの運用、開発を行っています。 みなさん、クリスマスの準備は万端でしょうか?エンジニアにと…

【アドベントカレンダー2025】Jira のコンテキストを Copilot に読ませようとして MCP サーバーを自作したが「ツールの引力」には勝てなかった話

はじめに こんにちは。ぐるなびウエディング開発チームの渡邊です。普段はバックエンドエンジニアとして開発・運用を担当しています。 この記事では、Jira を GitHub Copilot の Agent Mode(MCP)から参照できるように MCP サーバーを自作してみた話を書き…

【アドベントカレンダー2025】キーボード操作でも快適に!ウエディングサイトリニューアルで実践したカレンダーのアクセシビリティ対応

はじめに こんにちは。Restaurant Service Devグループの高岡です。現在ぐるなびウエディングのフロントエンド開発・運用を行っています。 ぐるなびウエディングのリニューアルプロジェクトでは、UIを一新するにあたり「すべての利用者にとって使いやすいサ…

【アドベントカレンダー2025】JavaのEOSL対応について取り組んだこと

はじめに こんにちは、開発部の古川です。 普段は、ぐるなびの認証や個人情報、ポイントシステムといったぐるなび内の各サービスから利用される共通システムを担当しています。 今回は、私たちが担当しているシステムにおける JavaのEOSL (End of Support Li…

【アドベントカレンダー2025】Secrets Manager vs Parameter Store:社内APIのキー管理、どっちがいい?

はじめに どうも、開発部の加藤です。社内では「なるみん」て呼ばれてたりします。 普段はぐるなびの店舗ページやインバウンド向けのぐるなび外国語版のサーバーサイドの開発を担当しています。 APIキー認証を入れるとき、地味に悩むのが「キーをどこに置く…

【アドベントカレンダー2025】クエリチューニングの最初の一歩~実行計画を見てみよう~

はじめに こんにちは。開発部の國友です。 普段はデータベース管理者の業務を担当しています。 アプリケーションのパフォーマンス改善に取り組む際、「クエリが遅い」と感じたらまず行うべきことがあります。それは、RDBMSがそのクエリをどう実行しているか…

【アドベントカレンダー2025】GitHub CopilotとSpec Kitを使ってSDDの世界を覗き見する

はじめに こんにちは!ぐるなびでバックエンドエンジニアをしている開発部の寺井です。 十数年PHPを主戦場にしてきましたが、最近Go言語を使ってぐるなびアグリサービスの開発に携わっています。 クリーンアーキテクチャも初めて理解しようとしており……難し…

【アドベントカレンダー2025】ActiveDirectoryの功罪とクラウドネイティブな認証戦略

こんにちは。ぐるなびの田代です。 今回は、長年にわたり当社のITインフラの心臓部として機能してきたActive Directory (AD) の役割の変遷と、クラウド時代における当社の新たな認証戦略についてお話ししたいと思います。

【アドベントカレンダー2025】「cdk diffが長すぎる」問題をGitHub Modelsで攻略する!変更内容を自動要約するCI/CD構築

こんにちは。ぐるなびでバックエンド開発を担当している小林です。 この記事では、AWS CDKの変更差分(cdk diff)をGitHub Modelsを用いて自動的に要約し、プルリクエストにコメントとして通知するCI/CDパイプラインの構築方法を解説します。

【アドベントカレンダー2025】Gemini 3 Canvas × HTMLテンプレート活用術:GASを書かずに実用レベルのスライドを出力する

はじめに こんにちは、ぐるなびの江口です。 ついに登場したGemini 3、皆さんはもう試されましたか? Google独自のTPUを活用した処理速度もさることながら、新機能のCanvasが非常に強力です。 今回は、このGemini 3とCanvasを使って、「社内テンプレートのデ…

【アドベントカレンダー2025】Snowflake移行はゴールじゃない!老舗企業が直面した「リフト止まり」の現実と、そこから描く筋肉質な未来地図

はじめに こんにちは、ぐるなびでデータエンジニアをしている大塚です。 私は現在、ぐるなびが長年蓄積してきた膨大なデータを、全社で安全かつ快適に活用するための「データ基盤」の構築・運用を担当しています。 創業から長い歴史を持つ弊社には、言わば「…

【アドベントカレンダー2025】DevTools で分かる Flutter アプリの動きと最適化の考え方

こんにちは!ぐるなびアプリの開発をしている戸川です。モバイルアプリの「なんとなく重い」「ときどきカクつく」といった問題を、Flutter DevTools を使って可視化して、どのように原因を切り分けていくのかを解説していきます。

【アドベントカレンダー2025】DuckDBで変わる繁忙期対策のログ分析とサイジング - 1時間の1%に潜む36秒のリスク-

はじめに こんにちは。Reservation Service Devグループの佐藤です。ネット予約に関する開発全般に関わっています。 本記事では、繁忙期前のサイジングや新機能リリース時の負荷予測で利用しているログ分析について、従来利用していたSQLiteからDuckDBへ移行…

【アドベントカレンダー2025】ぐるなびが取り組む「設計からのオブザーバビリティ」 3つのプロダクトで実践した Observability Shift Left

はじめに こんにちは、ぐるなびの APM(Application Performance Monitoring)分科会 です。 私たちは、全社的なシステム品質の向上を目指し、組織横断でオブザーバビリティ(可観測性)の導入・活用を推進しています。 昨今、「オブザーバビリティ」という言…

【アドベントカレンダー2025】【NotebookLM × Gemini】仕様書からテスト項目書を自動生成する「専門家AI」の育て方 -ぐるなび組織間連携の事例-

皆さまこんにちは。ぐるなびで主に会員系サービスのフロントエンド開発を担当している小松です。主務はフロントエンドですが、開発部内で組織間連携分科会という活動も行っており会長も務めています。他にも肩書が増えてしまいましたが…今回はその組織間連携…

【アドベントカレンダー2025】ほんとにできてる?New Relic Alertの通知

こんにちは。開発部の江島です。 普段はコンテナ基盤の運用やサービスの品質向上に向けたSRE活動などの業務を行っています。 New RelicのAlert機能は、システムの異常を検知し、即座にPagerDutyやSlackなどの外部ツールに通知を送るために非常に便利なツール…

【アドベントカレンダー2025】AI Agentの「自律性」との向き合い方

はじめに こんにちは。データサイエンティストの閔(みん)です。普段はAIレストラン検索アプリ「UMAME!」の開発に携わるほか、社内のデータ管理、AIを用いた業務改善などに関わっています。 本記事では、今年1年間、AIの話題として最もホットだったであろう…

【アドベントカレンダー2025】「AIと爆速で0→1を作る」 豆苗アーキテクチャ

こんにちは。ソフトウェアエンジニアの吉村と申します。 会社ではUMAME!の開発を行っています。バックエンドからキャリアを始めていますが、モバイル、ウェブフロントエンド、クラウドインフラ、AIエージェントなど、なんでも設計/実装します。アドベントカ…

【アドベントカレンダー2025】オンラインイベントを盛り上げたリアクションツールをつくって、クローズするまでの話

こんにちは!普段は ぐるなびウエディング の開発をしている滝口(@ytakiguche)です。 ぐるなび Advent Calendar 2025 の 9 日目を担当します! この記事では、オンラインイベントを盛り上げるために社内で開発した「リアクションツール」が、どのような課…

【アドベントカレンダー2025】社内向け生成AI 構築から廃止まで

受注情報からぐるなびの店舗ページへのデータ連携を開発している有賀です。 「セキュリティとガバナンス確保を目的に社内独自AIチャットを構築」をテーマに生成AIの変化を実感した経験を記載します。

【アドベントカレンダー2025】検索エンジンを「解剖」する:Elasticsearchでの検索精度改善に役立つ3つの分析

こんにちは! 検索開発のグループ長をしている牧野です。 今期、レストラン検索ではフリーワード検索の精度改善を大きな目標にして取り組みました。 今回はその過程で得られたナレッジ、特に「検索結果の分析手法」についてシェアしたいと思います。

【アドベントカレンダー2025】CCoEが挑む「AWSナレッジ共有の壁」──AWS Knowledge MCP Server × Amazon Bedrockで実現した新しい情報アクセス環境

こんにちは。技術戦略室 CCoEグループの石井です。普段は、CCoEとして全社的なガバナンス強化を目指し、クラウド利用の最適化と可能性の最大化に取り組んでいます。具体的には、「コスト最適化」「クラウドセキュリティ」「アセスメント」の3つを軸に、ビジ…

【アドベントカレンダー2025】Copilot/VSCode活用:外部システム連携と自動化

はじめに:Copilotで「やれていること」 ぐるなびで Principal Tech Lead をしている大文字亮(ダイモンジリョウ)です。 本記事では、VSCode上のGitHub Copilotと外部システムを連携させ、開発業務を効率化・自動化する手法について紹介します。 Copilotは…

【アドベントカレンダー2025】GitHub移行と一緒にmonorepo対応した話

こんにちは!ぐるなびFineOrderというモバイルオーダーサービスでバックエンドの開発をしてます谷です。 担当しているプロジェクトでGitLabからGitHubへ移行することになり、せっかくなら一緒にsubmodule運用もやめてmonorepo化したいと思いまして、今回、両…

【アドベントカレンダー2025】GenAI Week Silicon Valley 2025参加のおもひで

はじめに 皆さん、こんにちは! 株式会社ぐるなびで Principal Tech Lead を務めている小向です。 アドベントカレンダー2日目よろしくお願いします(アドベントカレンダーをやろうと言い出した本人が2日目ですが^^;)! 今回は、GenAI Week Silicon Valley 2…

【アドベントカレンダー2025】GitHub CopilotでのAndroid開発体験

TL;DR GitHub Copilotに頼りながら、「極力自力ではコードを書かない」方針でAndroidアプリ(アナログゲーム・ディスクゴルフ向けのスコア集計)を作りました。Androidはほとんど初めてでしたが、CopilotがUIの雛形や集計ロジックを提案してくれて、最終的に…

毎週大量のプルリクエストを捌く!Next.js App Router時代のスケーラブルなフロントエンドアーキテクチャ設計

はじめに こんにちは。Restaurant Service Devグループの高岡です。現在ぐるなびウエディングのフロントエンド開発・運用を行っています。 ぐるなびウエディングは結婚式場検索・予約サービスで、検索・会場詳細・特集・ランキングなど多様な機能を持つ大規…

PHPのレガシーシステムをTypeScriptで刷新! フロントエンドとバックエンドの職能の壁は壊せるのか?

こんにちは!「ぐるなびウエディング」開発チームの滝口(@ytakiguche)です。普段はサーバーサイド開発を担当しています。 私たちのチームは現在、オンプレミスで長年稼働してきた PHP のシステムをAWSクラウドへ移行し、同時に TypeScript で全面的に書き換…

Vertex AI Agent Engine Memory Bankを使ってみた

はじめに こんにちは。データサイエンティストの閔(みん)です。普段はAIレストラン検索アプリ「UMAME!」の開発に携わるほか、社内のデータ管理、AIを用いた業務改善などに関わっています。 本記事では、近年話題となっている LLM Agent (最近は単にAgentと…

PHPカンファレンス新潟2025で型について語ってきた

はじめに こんにちは。プラットフォームサービスグループの村田です。普段はメールを配信するシステムなど社内で共通に利用されるプラットフォームの運用、開発を行なっています。 2025年5月31日に開催された PHPカンファレンス新潟2025 で「新潟で型につい…