サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ブラックフライデー
developers.gnavi.co.jp
はじめに こんにちは。開発部の國友です。 普段はデータベース管理者の業務を担当しています。 アプリケーションのパフォーマンス改善に取り組む際、「クエリが遅い」と感じたらまず行うべきことがあります。それは、RDBMSがそのクエリをどう実行しているか、その実行計画を確認することです。 皆さんは実行計画の確認方法、そして読み方を理解されていますか? よく見るテーマではありますが、基礎だからこそ具体的な事例を通じて改めて実行計画を再確認しましょう。 実行計画とは 実行計画とはRDBMSがユーザーから受け取った SQL クエリを最も効率よく処理するために立てる、具体的な手順書です。 ゴールは一つ ユーザーが書く SQL は目的を示しています。例えば、"SELECT * FROM employees WHERE emp_no > 400000"は、「従業員番号が 400000 より大きいユーザーを全部
はじめに こんにちは!ぐるなびでバックエンドエンジニアをしている開発部の寺井です。 十数年PHPを主戦場にしてきましたが、最近Go言語を使ってぐるなびアグリサービスの開発に携わっています。 クリーンアーキテクチャも初めて理解しようとしており……難しい。 この記事では、GitHubが提唱する 「Spec-Driven Development(仕様駆動開発 / SDD)」 と、その実践ツール 「GitHub Spec Kit(speckit)」 を紹介します。仕様と設計原則を明文化し、それを中心に開発を進めることで、AIとの協働でも一貫したアーキテクチャを維持できるようになります。 目次 はじめに 目次 GitHub Copilotで開発が変わった。でも、何かが足りない。 仕様駆動開発(SDD)と GitHub Spec Kit 1. 仕様駆動開発(SDD)って?(TDD/BDDと何が違うの?
こんにちは。ぐるなびの田代です。 今回は、長年にわたり当社のITインフラの心臓部として機能してきたActive Directory (AD) の役割の変遷と、クラウド時代における当社の新たな認証戦略についてお話ししたいと思います。 企業認証の礎 — Active Directoryの功績 2000年に登場したADは、それまでの認証・管理モデルを根本から変革し、企業ITに集中管理の概念を確立した大功労者です。しかし、クラウドサービスの利用が標準となった今、ADが持つオンプレミス特有の課題が、私たちのDX推進におけるボトルネックとなりつつあります。 私たちは、このAD運用から卒業し、Microsoft Entra ID(旧 Azure AD) への完全移行を目指し、具体的な検討と準備を進めています。 1. ADが企業にもたらした「功績」(集中管理と統制) ADの登場は、ネットワーク内のユーザー
こんにちは。ぐるなびでバックエンド開発を担当している小林です。 この記事では、AWS CDKの変更差分(cdk diff)をGitHub Modelsを用いて自動的に要約し、プルリクエストにコメントとして通知するCI/CDパイプラインの構築方法を解説します。 IaC(Infrastructure as Code)運用において、cdk diff は変更内容を確認するための生命線です。しかし、大規模な変更やIAMポリシーの修正が含まれる場合、出力される生の差分(JSON/YAML)は膨大で読みづらく、レビューの心理的ハードルを上げる原因になります。 今回紹介する方法は、この「diffが長すぎて辛い」という課題に対し、AIを活用してレビューを効率化する一つのアプローチです。 ただし、あらかじめお伝えしておきたい重要な点があります。この方法は「銀の弾丸」ではありません。 AIモデルには入力できる文
はじめに こんにちは、ぐるなびの江口です。 ついに登場したGemini 3、皆さんはもう試されましたか? Google独自のTPUを活用した処理速度もさることながら、新機能のCanvasが非常に強力です。 今回は、このGemini 3とCanvasを使って、「社内テンプレートのデザインに限りなく近づけ、実用十分な"90点"を目指してスライド資料を完全自動生成する」という試みについて共有します。 これまでGoogle Apps Script (GAS) を書いて行っていた転記作業が、プロンプト一つで不要になった、というお話です。 この記事でわかること Gemini 3のGem + Canvasによるスライド作成の進化。 従来の「GAS転記」プロセスからの脱却。 デザイン崩れを防ぐ「画像分析HTML化」と「英語プロンプト」のテクニック。 はじめに この記事でわかること 背景:これまでのスライド
はじめに こんにちは、ぐるなびでデータエンジニアをしている大塚です。 私は現在、ぐるなびが長年蓄積してきた膨大なデータを、全社で安全かつ快適に活用するための「データ基盤」の構築・運用を担当しています。 創業から長い歴史を持つ弊社には、言わば「秘伝のタレ」のように継ぎ足されてきたデータやシステムが多く存在します。そんな老舗企業ならではのデータの悩みに向き合い、モダンな環境へと刷新していくのが私のミッションです。 今回は、近年で取り組んだデータ基盤の刷新プロジェクトの裏側と、そこで見えてきた「正直、まだここが足りていない!」というリアルな課題、そしてこれからの展望について赤裸々にお話しします。 「データの民主化」への第一歩 さて、ちょうど昨年の11月、弊社のCTOが「データ民主化」についての記事を公開しました。 (※参照:Snowflake World Tour Tokyo 2024 に登壇し
こんにちは!ぐるなびアプリの開発をしている戸川です。モバイルアプリの「なんとなく重い」「ときどきカクつく」といった問題を、Flutter DevTools を使って可視化して、どのように原因を切り分けていくのかを解説していきます。 はじめに モバイルアプリの品質を保つうえで、パフォーマンス計測は重要です。 Web と違い、Flutter では描画やレイアウト計算をアプリ側で担うため、画面構造が複雑だったり不要な処理が混在したりすると、動作が重く感じられることがあります。 そこで本稿では、Flutter DevTools を使って動作を可視化し、どのように原因を切り分けてきたかを紹介します。DevTools を使うとアプリ内部の挙動を視覚的に確認でき、どのあたりにボトルネックがあるかを把握しやすくなります。 DevTools で確認できる代表的な機能例: Performance view フ
はじめに こんにちは。Reservation Service Devグループの佐藤です。ネット予約に関する開発全般に関わっています。 本記事では、繁忙期前のサイジングや新機能リリース時の負荷予測で利用しているログ分析について、従来利用していたSQLiteからDuckDBへ移行し、分析フローを改善した事例を紹介します。また、パーセンタイル分析を活用した具体的なminReplicasの算出方法や、「99%なら無視できる」という誤解を解くデータドリブンなサイジングアプローチについても解説します。 注意事項 本記事で紹介するサイジング手法は、予約システムという特性上、ビジネスクリティカルな操作でのエラーを極力避けるための保守的なアプローチです。ぐるなび社内では、各サービスの特性やビジネス要件に応じて、適切なサイジング方針を採用しています。本記事の内容は一つの事例として参考にしていただき、読者の皆様
はじめに こんにちは、ぐるなびの APM(Application Performance Monitoring)分科会 です。 私たちは、全社的なシステム品質の向上を目指し、組織横断でオブザーバビリティ(可観測性)の導入・活用を推進しています。 昨今、「オブザーバビリティ」という言葉は広く浸透しましたが、多くの現場では依然として「リリース後の監視」や「障害調査」といった運用フェーズでの利用に留まっているのが実情ではないでしょうか。 私たちも以前はそうでした。 しかし、システムが複雑化する中、リリース後に問題に気づくスタイルでは手戻りコストが増大し、ユーザー体験を守りきることが難しくなっています。 そこで私たちが推進しているのが、「Observability Shift Left(オブザーバビリティ・シフトレフト)」 です。 コードを書く前の「設計」や開発中の「実装」フェーズから観測を組み込
皆さまこんにちは。ぐるなびで主に会員系サービスのフロントエンド開発を担当している小松です。主務はフロントエンドですが、開発部内で組織間連携分科会という活動も行っており会長も務めています。他にも肩書が増えてしまいましたが…今回はその組織間連携分科会での取り組みについてご紹介したいと思います。 この分科会は、長年、開発部の中でエンジニアとディレクター・デザイナー間などで課題となっていたコミュニケーションの認識齟齬や組織をまたいだ連携に関する課題に取り組むため発足しました。実は現存する分科会の中でも長く活動している分科会の1つです。 以下の内容は分科会メンバーの多大なる協力で執筆することができました。ありがとうございます。 コミュニケーションの課題 開発する中でそれぞれの役割ごとに異なる視点や専門知識を持つメンバーが協力し合うことは、プロダクトの成功に不可欠です。しかし、現実には以下のような課題
こんにちは。開発部の江島です。 普段はコンテナ基盤の運用やサービスの品質向上に向けたSRE活動などの業務を行っています。 New RelicのAlert機能は、システムの異常を検知し、即座にPagerDutyやSlackなどの外部ツールに通知を送るために非常に便利なツールです。 しかし、デフォルトの設定のままでは、重要なアラートを見逃してしまう可能性があることをご存知でしょうか? 本記事では、New Relicでアラートを設定する際に見落とされがちな2つの問題点と、それらに対する具体的な対策手順を解説します。 New Relic Alertの通知漏れパターン 今回はやりがちな通知漏れをパターンとその対策を2つ紹介します。 Priority(Warning/Critical)が変化した際の通知漏れ Issueが自動クローズされないことによる通知漏れ 1. Priority変化時の通知漏れ N
はじめに こんにちは。データサイエンティストの閔(みん)です。普段はAIレストラン検索アプリ「UMAME!」の開発に携わるほか、社内のデータ管理、AIを用いた業務改善などに関わっています。 本記事では、今年1年間、AIの話題として最もホットだったであろう AI Agent(以降Agentとする)を触ったり、作ってみたりしながら感じた、Agentの「自律性」との向き合い方について話します。Agentについては、過去の記事をご参照ください。 Vertex AI Agent Engine Memory Bankを使ってみた - ぐるなびをちょっと良くするエンジニアブログ AIレストラン検索アプリ『UMAME!』 の舞台裏 ~Google AI Agent Summit ‘25 Spring登壇レポ~ - ぐるなびをちょっと良くするエンジニアブログ 実はAgentの自律性にも度合いがある 一口でA
こんにちは。ソフトウェアエンジニアの吉村と申します。 会社ではUMAME!の開発を行っています。バックエンドからキャリアを始めていますが、モバイル、ウェブフロントエンド、クラウドインフラ、AIエージェントなど、なんでも設計/実装します。アドベントカレンダーの10日目はAI時代におけるソフトウェアアーキテクチャとの向き合い方について思考実験的な話をさせていただければと思います。どうかお手柔らかにお願いします。 導入 最初に、ひとつだけお断りを入れておきます。 「Domain-Driven Design (2003)」、「The Clean Architecture (2012)」、「Atomic Design (2013)」。これら洗練されたソフトウェアアーキテクチャ論は、長らく私たち開発者の指針となってきました。 さらにその源流である「Structured Design (1979)」や「
こんにちは!普段は ぐるなびウエディング の開発をしている滝口(@ytakiguche)です。 ぐるなび Advent Calendar 2025 の 9 日目を担当します! この記事では、オンラインイベントを盛り上げるために社内で開発した「リアクションツール」が、どのような課題から生まれ、どのように使われ、そしてなぜクローズに至ったのかを振り返ります。 目次 目次 🤔 オンラインイベント、盛り上がっていますか? 💡 リアクションツールの誕生 🧩 システムアーキテクチャ リアクション送信画面(参加者側) リアクション表示アプリ(発表者側) リアクションサーバー 🎉 実際に使ってみてどうだったか ⚠️ しかし、クローズへ 🙏 最後に 🤔 オンラインイベント、盛り上がっていますか? オンラインイベントは便利な一方で、対面イベントに比べて「場の空気」が伝わりにくいという課題があります
受注情報からぐるなびの店舗ページへのデータ連携を開発している有賀です。 「セキュリティとガバナンス確保を目的に社内独自AIチャットを構築」をテーマに生成AIの変化を実感した経験を記載します。 目次 目次 社内用チャットツールの構築とリリース プロジェクトの背景と課題 要件整理 プロジェクトのゴール アーキテクチャ概要 技術選定 アーキテクチャ特徴 技術的な実装のポイント 1. 認証フローの実装 2. ストリーミングレスポンスの実装 3. チャット履歴の管理 4. インフラ 転機:GeminiとNotebookLMの登場 2024年の市場変化 決定的だった3つの要因 1. 運用負荷からの解放 2. 機能面での圧倒的な差 3. 高機能と利便性 決断:自社ツールの廃止 廃止の意思決定 おわりに 社内用チャットツールの構築とリリース 昨今、多くの企業で生成AIの活用が進む中、弊社でも社員が安心して
こんにちは! 検索開発のグループ長をしている牧野です。 今期、レストラン検索ではフリーワード検索の精度改善を大きな目標にして取り組みました。 今回はその過程で得られたナレッジ、特に「検索結果の分析手法」についてシェアしたいと思います。 はじめに 現在、私たちは検索エンジンとして Elasticsearch を利用しています。 フリーワード検索はユーザーが入力したワードにマッチした店舗を返す「キーワード検索」の仕組みを採用しています。 フリーワード検索を開発・運用していると以下のような課題に直面します。 「なぜこのキーワードで、このお店がヒットするのか?」 「なぜ関係の薄そうなお店が、上位に表示されてしまうのか?」 そこで今回は、検索挙動を可視化し、フリーワード検索を改善するための3つのAPI(Analyze, Explain, Term Vectors)をご紹介します。 どう検索されている
こんにちは。技術戦略室 CCoEグループの石井です。普段は、CCoEとして全社的なガバナンス強化を目指し、クラウド利用の最適化と可能性の最大化に取り組んでいます。具体的には、「コスト最適化」「クラウドセキュリティ」「アセスメント」の3つを軸に、ビジネスの柔軟性と競争力を高める活動を行っています。 はじめに CCoEとして、社内の開発チームが安心・安全にAWS環境を使えるようにすることは最重要ミッション。でも、現場に寄り添った支援を続けていく中で、どうしても乗り越えにくい課題が積み重なっていました。 この記事では、 “AWSアップデートのスピードに追いつけない” “開発者が正確な情報を探すのに時間がかかる” “セキュリティの不安から相談が増える” といった悩みを背景に、CCoEが Amazon Bedrock × Streamlit × AWS Knowledge MCP Server で実
はじめに:Copilotで「やれていること」 ぐるなびで Principal Tech Lead をしている大文字亮(ダイモンジリョウ)です。 本記事では、VSCode上のGitHub Copilotと外部システムを連携させ、開発業務を効率化・自動化する手法について紹介します。 Copilotは各種APIやCLIの操作方法を学習しているため、適切な権限と指示を与えることで、単なるコード補完に留まらない広範なタスクを実行可能です。 例えば、現在、私の環境では以下のような連携と自動化を実現できています。 SSH連携: ログ調査やサーバー上のインストール作業、バッチ実行などを自律的に実施。 ブラウザ操作: ChromiumをCLI経由で操作し、画面遷移を含むE2E的な試験やスクリーンショット取得を実施。 GitLab連携: MCP(Model Context Protocol)が利用できない環境
こんにちは!ぐるなびFineOrderというモバイルオーダーサービスでバックエンドの開発をしてます谷です。 担当しているプロジェクトでGitLabからGitHubへ移行することになり、せっかくなら一緒にsubmodule運用もやめてmonorepo化したいと思いまして、今回、両方一緒に対応しました。 そのときの話を紹介していけたらと思います。 GitHub移行とmonorepoは関係ない まず最初にお伝えしたいのですが、GitHub移行とmonorepo化は技術的に関係ありません。 当然、GitLabでもmonorepoはできますし、GitHubでsubmoduleを使い続けることもできます。 ただ、GitHub移行もmonorepo化の対応も、通常はCIの書き換えが必要になるかと思います。 別々で対応すれば2度手間になります。 つまり、まとめて対応した方がお得です! また、当たり前ですが
はじめに 皆さん、こんにちは! 株式会社ぐるなびで Principal Tech Lead を務めている小向です。 アドベントカレンダー2日目よろしくお願いします(アドベントカレンダーをやろうと言い出した本人が2日目ですが^^;)! 今回は、GenAI Week Silicon Valley 2025 で得た学びや現地の熱気を、ぐるなびの未来、そして日本のエンジニアの皆さんの未来にどう繋げていくか、という視点でご紹介したいと思います。 GenAI Week Silicon Valley 2025とは 2025年7月13日〜17日にサンタクララ・コンベンションセンターで開催された、世界最大級の生成AI(GenAI)サミットです。 次世代の人工一般知能(AGI)の未来を定義することをテーマに掲げ、GPTDAOなどが主催しました。 30,000人超の参加者、500以上のスタートアップデモ、300
TL;DR GitHub Copilotに頼りながら、「極力自力ではコードを書かない」方針でAndroidアプリ(アナログゲーム・ディスクゴルフ向けのスコア集計)を作りました。Androidはほとんど初めてでしたが、CopilotがUIの雛形や集計ロジックを提案してくれて、最終的に実用レベルのアプリに仕上がりました。この記事では取り組み方、実際の使い方(プロンプトの工夫)、得られた学びを共有します。 ほとんどコードを書かないで作ったAndroidスコア集計アプリとGitHub Copilotの話 背景とモチベーション 普段からボードゲームやアナログゲームをよく遊びます。スコア管理は各自の記憶に頼っていましたが、試合数が増えると記憶の齟齬や集計ミスが気になるように。自分用のスコア集計アプリがほしくなり、「せっかくだからAndroidアプリを作ってみよう」と思いました。 ただし、正直に言うとA
はじめに こんにちは。Restaurant Service Devグループの高岡です。現在ぐるなびウエディングのフロントエンド開発・運用を行っています。 ぐるなびウエディングは結婚式場検索・予約サービスで、検索・会場詳細・特集・ランキングなど多様な機能を持つ大規模なウェブアプリケーションです。 そのぐるなびウエディングはリニューアルプロジェクトが進行しており、今年の7月に二次会検索と会場ページをリリースしました。 今回は大規模なウェブサービスのリニューアルにおいてチーム開発の効率性と保守性を両立するフロントエンドアーキテクチャをどう設計するか、ぐるなびウエディングリニューアルプロジェクトで実践した取り組みについて紹介します。 目次 はじめに 目次 開発体制 採用した技術スタック フレームワーク:Next.js App Router スタイリング:CSS Modules グローバルな状態管理
こんにちは!「ぐるなびウエディング」開発チームの滝口(@ytakiguche)です。普段はサーバーサイド開発を担当しています。 私たちのチームは現在、オンプレミスで長年稼働してきた PHP のシステムをAWSクラウドへ移行し、同時に TypeScript で全面的に書き換えるという、大きな挑戦の真っ只中にいます。 この記事では「フロントエンドとバックエンドの言語統一」をテーマに、その過程で明確になった技術的課題と、それらに対する我々のアプローチについてお話しします。 目次 目次 プロジェクトの背景: なぜ、PHP から TypeScript へ移行したのか TypeScript 対応とモノレポ化 技術スタックとディレクトリ構成 プロジェクトで直面した課題 課題1: 既存データの不整合 課題2: FE と BE のスキルセットと設計思想の差異 課題へのアプローチ 1. データ不整合への段階的
はじめに こんにちは。データサイエンティストの閔(みん)です。普段はAIレストラン検索アプリ「UMAME!」の開発に携わるほか、社内のデータ管理、AIを用いた業務改善などに関わっています。 本記事では、近年話題となっている LLM Agent (最近は単にAgentとも呼ばれます。以降Agentとします) の、会話内容をまとめて保持する「長期メモリ」の仕組みの一つであるMemory Bankについてご紹介したいと思います。その前に、Agentとは何かについても少しだけおさらいしたいと思います。 Agentって何? Agentとは、一般的に 自ら環境を認識し、自律的に行動を行うAI と定義されるようです。(Agentについては、Google Cloud AI Agent Summitの登壇記事 に解説してありますのでご参考ください) 最近はGeminiやChatGPTにもAgent機能が追加
はじめに こんにちは。プラットフォームサービスグループの村田です。普段はメールを配信するシステムなど社内で共通に利用されるプラットフォームの運用、開発を行なっています。 2025年5月31日に開催された PHPカンファレンス新潟2025 で「新潟で型について語ってみた」というテーマで初めてカンファレンスの登壇をさせていただきました。 今回は登壇内容のポイントとカンファレンスの雰囲気などを紹介できればと思います。 登壇内容 新潟で型について語ってみる 新”潟”ということで、PHPになぜ型システムが必要なのかから、PHPerが頭を悩ます型の相互変換までを網羅的に発表しました。 そもそも型って? 型システムは、データの種類や性質を指し示し、メモリ管理の効率化や型安全性の確保に役立ちます。 そして、可読性の向上やコードの補完機能が上がることで、開発者がコードを書く際の効率が上がり、ミスを減らすこと
はじめに こんにちは。SREグループの佐々木です。普段はオンプレの仮想基盤やクラウド上のコンテナ環境の運用、サービスの品質向上に向けたSREを行っています。 2月14日に開催された「Developers Summit 2025」にElasticsearch株式会社さんと一緒に登壇し、ぐるなびにおけるElasticsearchの活用事例について発表を行いました。 Developers Summit(以降、デブサミ)は、日本最大級のソフトウェア開発者のためのカンファレンスです。ここでは、最新の技術情報や開発手法に関する講演、ワークショップ、パネルディスカッションなどが行われます。今回は2020年までのデブサミ会場としておなじみの、東京・目黒区のホテル雅叙園東京での開催となりました。 今回はセッションで使用したスライドの内容に基づき、セッション中にお伝えしきれなかった情報も含めて紹介させていただ
こんにちは。ぐるなびデータサイエンティストの閔(みん)です。AIレストラン検索アプリ UMAME! の検索の仕組みの開発に携わっています。 2025年3月13日に、Google AI Agent Summit ‘25 Springに登壇しました。AI Agent Summitは今年初開催のイベントで、GoogleのAIサービスを使ったAI Agentの開発事例や、GoogleのAI Agentサービス「Google Agentspace」の紹介や導入事例の発表などが行われていました。 ここでは、今年リリースしたAIレストラン検索アプリ UMAME! が、どのようにしてAI Agentとして機能しているかについてお話をしてきました。 UMAME! Planning AI Agentは一般に、環境を認識して、ある目的を達成するために自律的に動くAIと定義されます。このイベントでは、生成AIとA
こんにちは。ぐるなびデータサイエンティストの閔(みん)です。普段は、検索システムの改善や、AIを活用した業務効率化に取り組んでいます。 LLMを翻訳機として使う LLMの中には、GPTなどのように、生成に特化しているモデル *1 もありますが、そのようなモデルであっても、翻訳に使うことが可能です。しかも、翻訳に特化しているモデルとは違って、特別な指示を出して翻訳を行うことができます。 ここでは、英語の技術文書を日本語に翻訳する例を紹介します。まず、翻訳に特化したモデルを使って翻訳してみようと思います。 原文 The study on transformer architecture was published in 2017. It accelerated the speed and boosted accuracy of machine translation. Nevertheless
ぐるなびCTOの岩本です。自社の全プロダクト・サービスにおける技術戦略の責任者としてサービス構築・品質向上に最適な技術の選択、意思決定を行っています。また、在籍するEngineer全体に対して技術的なビジョンを示し、エンジニア組織を牽引しています。 ぐるなび社ではデータの活用を推進しており、その過程で発生する課題に対してどのような対策を講じているかについて、お話しさせていただきました。セミナーには約300名の方々にご参加いただき、盛況のうちに終了しました。今回のブログでは、セッションで使用したスライドの内容に基づき、セッション中にお伝えしきれなかった情報を詳しくご紹介したいと思います。 Snowflake World Tour - Tokyo 2024 -当日の様子 まず、セッションタイトルは「データの民主化による持続可能なビジネスの成功のためのAI活用」というもので、私たちはこのテーマで
次のページ
このページを最初にブックマークしてみませんか?
『ぐるなびをちょっと良くするエンジニアブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く