every Tech Blog
https://tech.every.tv/
株式会社エブリーのTech Blogです。
フィード

Laravel Octane + Swoole のメモリ挙動を仕様から読み解く
every Tech Blog
はじめに こんにちは。リテールハブ開発部小売アプリチームの池です。 業務で Laravel Octane のメモリが残る挙動について調査する機会がありました。 Laravel Octane は、長時間稼働するプロセス上で Laravel アプリケーションを動かして高速化するツールです。便利な一方で、プロセスが長く生きるためメモリが残り続け、書き方次第ではリクエスト間で状態が引き継がれてしまうという、従来の Nginx + PHP-FPM 構成の Laravel では発生しにくい特性を持っています。この特性を理解せずに使うと予期しない事故につながる可能性があると感じました。 そこで本記事では、O…
3日前

Claude で食トレンドを分析できる MCP を自作した
1
every Tech Blog
はじめに こんにちは。開発本部 開発1部 デリッシュリサーチチームの江﨑です。 デリッシュリサーチは、デリッシュキッチンに蓄積された検索ログやレシピへの反応をもとに食トレンドを分析できるサービスです。 本記事では、社内用にデリッシュリサーチのデータを Claude から自然言語で問い合わせられるようにする MCP サーバーを自作した話を紹介します。FastMCP と Databricks Apps で実装した構成、運用上のノウハウ、そしてリリース後に社内で広がった活用事例をまとめます。 はじめに 背景:なぜ自前の MCP サーバーを作ったか システム全体像 使用技術 MCP サーバーの実装 ツ…
6日前

TSKaigi 2026 にゴールドスポンサーとして協賛します!
every Tech Blog
目次 はじめに TSKaigiとは? イベント当日について アフターイベントのご案内 はじめに この度、株式会社エブリーは、2026年5月22日(金)、23日(土)に開催される「TSKaigi 2026」に、ゴールドスポンサーとして協賛することになりました! TSKaigiとは? 2026.tskaigi.org TSKaigiは「学び、繋がり、"型"を破ろう」をミッションに掲げ、2024年に第1回が開催された、TypeScriptに関するあらゆるテーマを扱う国内最大級の技術カンファレンスです。2026年はベルサール羽田空港に会場を移し、2日間にわたって開催されます。 今年の開催概要は以下のと…
12日前

Laravel 13へアップデートする際の対応とAI検索機能をざっくり理解する
every Tech Blog
はじめに こんにちは、リテールハブ開発部でバックエンドエンジニアをしているホシと申します。 現在、Laravel などを利用しながら小売アプリ開発に取り組んでいます。 少し前になりますが、先日3月17日にLaravel13がリリースされました。 (https://laravel.com/docs/13.x/releases) 昨年にもLaravel12について、バージョンアップ内容などを記事にしたのですが、 今年も新バージョンについてお話しできればと思います。 前回同様にまずはサポート期限の一覧を記載します。 1年サイクルでリリースしているのと、サポート期間はあっという間に過ぎてしまうことがわ…
17日前

Goのtime. Nowとは? 〜synctestを添えて〜
every Tech Blog
Goのtime.Nowとは? 〜synctestを添えて〜 はじめに エブリーでエンジニアをやっております、赤川です。食事管理アプリ ヘルシカ の開発を通じてGoを嗜んでいます。 ダイエット・食事管理・体重管理・カロリー計算 - ヘルシカevery, Inc.ヘルスケア/フィットネス無料 ふと、以下のコードを見て、「Goにおける現在時刻ってなんなんだ…?」となりました。 now := time.Now() OSから取って来ているのは既知とした上で、Goのコードでそれをどのような形で扱っているのか、synctestの仮想時刻を返す挙動がどのように実装されているのかなど、いろいろ気になったのでコー…
19日前

Gemini APIのコストを削減するための選択肢
every Tech Blog
はじめに こんにちは!デリッシュキッチンで主にバックエンドの開発を担当している秋山です。 私たちのチームでは Gemini API を使った機能を運用しており、利用料金をいかに抑えるかは継続的に向き合うべきテーマになっています。 この記事では、Gemini API のコスト削減の選択肢を一通り整理したうえで、私自身が実際に試した中での学びを共有します。 料金体系 まずはGemini APIの料金に対して説明します。 Gemini API の料金は、ざっくり以下の3要素で決まります。 入力トークン: プロンプトやシステム指示、画像・動画・音声などの入力 出力トークン: モデルが返したテキスト 思…
21日前

Lambda × S3 Files で構成するステートフルなデータ前処理パイプライン
every Tech Blog
エブリー開発本部の塚田です。 バックエンドやデータ基盤をメインに担当しています。 2026年4月に Amazon S3 の新機能として Amazon S3 Files が GA となり、続けて4月後半には Lambda からの利用にも対応 しました。 データエンジニア視点で見ると、「Lambda で並列データ処理を書くときに毎回悩んでいた、状態の持ち回り」がやりやすくなるんじゃないかと感じました。 本記事では、Lambda 上のデータ前処理パイプラインを S3 Files で組み直すとどう変わるか、を検討しました。 なぜ Lambda 前処理で「状態」が悩みの種だったのか Lambda はスケ…
24日前

外部連携バッチシステムの動作確認をしやすくする
every Tech Blog
はじめに こんにちは。リテールハブ開発部の清水です。 私たちのチームでは、外部システムと深夜帯にCSVをやり取りするバッチシステムを開発・運用しています。 これらのバッチ群は適切な順番で適切な設定で実行することが求められるのですが、 新メンバーがジョインしたとき、これをローカル環境で実際に動かして確かめるのはハードルが高いと感じていました。 本記事ではこのようなバッチシステムを動作確認しやすくするために考えた点をご紹介します。 対象のバッチシステム 本番のインフラ構成イメージ ローカル開発環境 Docker Composeで FTP / S3互換ストレージ / MySQL を立てて、Goバッチ…
25日前

Unixにおけるリダイレクト処理を改めて確認 >file 2>&1 は実際にはなにをやっているのか
every Tech Blog
開発2部の内原です。 シェルで >file、2>&1 のような記号を使ってリダイレクト処理を行うことは多いかと思いますが、なぜこのような書き方をするのか、それが実際にカーネルやプロセスのレベルで何をやっているのか、は意外と説明しづらい、というかなんとなくふわっとした理解のままでいました。 そこでこの記事ではファイルディスクリプタとUnixシステムコールの観点から、これらの記号の意味を考えてみます。 ファイルディスクリプタ(fd)とは ファイルディスクリプタとは、プロセスごとにカーネルが管理しているファイルテーブルへのインデックス(整数)のことです。プロセスがファイルやソケットを開くと、カーネル…
1ヶ月前

Claude Code を快適に使うための macOS デスクトップ通知セットアップ 〜 alerter と Hook でクリックから VSCode 復帰まで 〜
every Tech Blog
タイトル:Claude Code を快適に使うための macOS デスクトップ通知セットアップ 〜 alerter と Hook でクリックから VSCode 復帰まで 〜冒頭:本記事ではClaude Code Hooks と `alerter` というコマンドラインツールを組み合わせて、- タスク完了・許可待ち・入力待ちの**デスクトップ通知を出す**- 通知を**クリックすると、対象プロジェクトの VSCode ウィンドウが自動でアクティブになる**(全画面の別アプリ上からでも切り替わる)- **VSCode 拡張版**でも許可待ち通知を取りこぼさないという環境を構築した内容
1ヶ月前

Next.js 16 のキャッシュとどう付き合うか ― 実装と運用のあいだで考えたこと
every Tech Blog
Next.js 16 のキャッシュとどう付き合うか ― 実装と運用のあいだで考えたこと 目次 Next.js 16 のキャッシュとどう付き合うか ― 実装と運用のあいだで考えたこと はじめに Next.js のキャッシュを整理する ブラウザ(Router Cache) CDN・Edge(HTTP Cache) サーバー(Data Cache = use cache) キャッシュに関する思想と変更の歴史 1. App Router 初期 — 暗黙的なキャッシュ 2. Next.js 15 — uncached by default への揺り戻し 3. Next.js 16 — Cache Com…
1ヶ月前

govulncheckで行う脆弱性対応
every Tech Blog
govulncheckで行う脆弱性対応 はじめに 開発本部でデリッシュキッチンプレミアム会員向けの開発を担当しているhondです! 先日axiosのサプライチェーン攻撃が話題になりました。axiosのリードメンテナのnpmアカウントがソーシャルエンジニアリング経由で侵害され、悪意のあるバージョン(1.14.1と0.30.4)が約3時間npmに公開されていたというもので、詳細はaxios公式のPost Mortemにまとまっています。広く使われているHTTPクライアントが直接狙われた事件で、エコシステムに依存する側としても他人事ではないなと感じました。 これを受けて、普段業務で利用しているGoで…
1ヶ月前

ヘルシカにおけるXcode Cloudの実行時間を50%削減した話
every Tech Blog
はじめに こんにちは。開発部でiOSエンジニアをしている野口です。 ヘルシカ - ダイエット・食事管理のための簡単カロリー計算every, Inc.ヘルスケア/フィットネス無料 ヘルシカのiOSアプリではXcode Cloudを使用して開発環境・本番環境への配布を行っています。本記事では、配布にかかっていた実行時間を約50%削減した方法を紹介します。 背景と課題 削減前のXcode Cloudの実行時間は約30分かかっていました。これを削減できれば、開発スピードの向上やQAから修正へのサイクルが回しやすくなり、品質の向上が期待できると考えました。 各ステップの実行時間はApp Store Co…
1ヶ月前

AgentCore CLIを本番運用する上で詰まったポイントと対策
every Tech Blog
はじめに 今回はAgentCore CLIを使ったエージェント開発を本番運用できるかを検討した際に、複数環境のデプロイについて詰まったポイントがあったので、ご紹介させていただきます。 AgentCore CLIは2026年4月17日現在では、GA前段階のため、本記事で紹介する内容が今後変更される可能性があります。 検証に使用したエージェント構成 今回検証のために使用したエージェントの構成を簡単に紹介します。 今回はAgentCore CLIの使い方の説明が主題ではないため、使い方についての詳細は省かせていただきます。 AgentCore CLIのagentcore createコマンドで以下の…
1ヶ月前

デリッシュキッチンのLiquid Glass対応への取り組み
every Tech Blog
はじめに 株式会社エブリーでデリッシュキッチンのiOSアプリの開発をしている成田です。 iOS 26から、Appleの新しいデザイン言語である「Liquid Glass」が導入されました。 2026年4月の現時点では設定のフラグによって適用を回避できますが、次のXcodeのメジャーアップデートではこのフラグの廃止が見込まれています。 また、2027年春頃には新しいメジャーバージョンのXcodeでのビルドが必須になると考えられ、対応は避けられない状況です。 こうした背景から、すでにLiquid Glassへの対応を進めているiOSアプリ開発者の方も多いのではないでしょうか。 デリッシュキッチンで…
2ヶ月前

AWSのAIツール ― Claude Code拡張機能 × IAM Policy Autopilot × Agent Pluginsを試してみた
every Tech Blog
はじめに エブリーでデリッシュキッチンの開発をしている本丸です。 日頃の業務でClaude Codeを活用しているのですが、AWSからリリースされたAIツール群(IAM Policy Autopilot、Agent Plugins for AWS)がClaude Codeと連携できることを知り、社内勉強会を機に実際に試してみました。 本記事では、これらのツールの概要と、素のLLMに指示した場合と専用ツールを使った場合でどのような違いが出るのかを4つのシナリオで比較した結果をまとめます。 IAM Policy Autopilot 概要 IAM Policy Autopilotは、AWS re:I…
2ヶ月前

Vercel Labs の「emulate」を試してみた
every Tech Blog
はじめに こんにちは、リテールハブ開発部の杉森です。 Vercel Labs が開発しているローカル API エミュレータ「emulate」が面白そうだったので、実際に触りながら AWS SDK (S3) との互換性、GitHub / Google の OAuth フロー、本番 API への切り替えまでを試してみました。 emulate とは emulate は Vercel Labs が開発しているオープンソースのローカル API エミュレータです。GitHub、Google、Slack、Stripe、AWS など 12 のサービスをローカルで再現でき、単なるモック(固定レスポンスを返すだけ…
2ヶ月前

ECR イメージスキャンでコンテナの脆弱性を検知する
every Tech Blog
目次 はじめに ECR イメージスキャンとは 構成の全体像 検知の網羅性 通知のノイズ低減 認知のスピード コスト 試算の考え方 試算例 Terraform による構築 1. ECR スキャン設定 2. EventBridge ルール 3. SNS トピック 4. AWS Chatbot(Slack 通知) 実際の通知と運用 導入してみて まとめ はじめに こんにちは、開発本部開発1部トモニテグループのエンジニアの パンダム/rymiyamoto です。 2025年末に Next.js の React Server Components に DoS(サービス拒否)とソースコード露出の脆弱性が公…
2ヶ月前

Databricks Genieで現場で使えるAI分析基盤を育てる
every Tech Blog
はじめに こんにちは。株式会社エブリーの開発1部の村上です。 弊社ではClaudeを非エンジニアも含めた全社に展開しており、業務のあらゆる場面で生成AIの活用を推進しています。 弊社のデータ基盤は、昨年TreasureDataとDatabricksを併用していた構成からDatabricksに統一しました。(この移行の話は今週の 「第3回 Youは何しにDatabricksへ!?」 で「データ基盤をTreasureData + DatabricksからDatabricksへ統一する話」として弊社のデータエンジニアの吉田がお話しする予定なので、ぜひご参加ください。)基盤が統一されたことで、次のステ…
2ヶ月前

Claude CodeスキルでUnity Catalogのテーブル探索を自動化する
every Tech Blog
はじめに こんにちは。 開発本部 開発1部 デリッシュリサーチでデータエンジニアをしている吉田です。 今回は、DatabricksのUnity Catalog管理下のテーブルを、自然言語で検索できるClaude Codeスキルを構築した話を紹介します。 背景 以前の記事 では、Databricks Managed MCP Serverを通してUnity Catalog Functionを実行することでテーブルのスキーマ情報を取得する方法を紹介しました。 この仕組みは便利でしたが、テーブルのパスを把握していることが前提でした。 しかし実際の運用では「あのデータはどのテーブルだっけ?」というケース…
2ヶ月前

AIを活用したPRレビューの効率化
every Tech Blog
AI の性能向上に伴い、これまで以上に負荷が大きくなっていると感じています。本記事では、負担に対してどのようなアプローチができるのか、考えてみます。
2ヶ月前

PHPerKaigi 2026にコアスタッフとして参加しました〜!
every Tech Blog
はじめに こんにちは!トモニテで開発をしている吉田です。 2026/3/20〜2026/3/22に開催されたPHPerKaigi 2026にスタッフとして参加してきました! PHPerKaigi(ペチパーカイギ)とは以下のようなイベントです! PHPerKaigi(ペチパーカイギ)は、PHPer、つまり、 現在PHPを使用している方、過去にPHPを使用していた方、 これからPHPを使いたいと思っている方、そしてPHPが大好きな方たちが、 技術的なノウハウとPHP愛を共有するためのイベントです。 phperkaigi.jp しかしながら私自身、普段の業務でPHPは書いていません。どうして私が今回…
2ヶ月前

Go の database/sql における MySQL セッション変数の挙動とコネクション固定
every Tech Blog
はじめに こんにちは、デリッシュキッチンのバックエンドエンジニアの鈴木です。 先日、プロダクトのGoのバージョンを 1.25.4 から 1.26.0 へアップデートしたところ、CI上の自動テストが一部落ちる(失敗する)問題に直面しました。 原因を調べてみると、テストデータの初期化で使っている TRUNCATE 処理において、これまで発生していなかった外部キー制約(Foreign Key Constraint)のエラーが頻発していることがわかりました。 コード自体はいじっていないにもかかわらず、なぜGoのバージョンを上げただけでデータベース操作が失敗するようになったのか。本記事では、このエラーの…
2ヶ月前

デリッシュキッチンiOSアプリにおけるSwiftUI段階的移行戦略
every Tech Blog
目次 はじめに 2つの課題と、目指すアーキテクチャ 手法1 — UIKit の中に SwiftUI を埋め込む 手法2 — ViewModel の Protocol と実装の分離 手法3 — UIKit 依存の画面遷移を列挙型で集約する 手法4 — SwiftUI から UIKit の画面を呼ぶ 手法5 — 本体プロジェクトに依存する View コンポーネントを外から差し込む まとめ — 制約の中で前に進む はじめに デリッシュキッチンで iOS エンジニアをしている谷口恭一です。 デリッシュキッチンは今年で10年目を迎えるアプリです。この約1年間、2つの取り組みを並行して進めています。 Sw…
2ヶ月前

Go 1.26で追加されたnew(expr)はなぜこの形なのか
every Tech Blog
こんにちは、開発1部の[@uho-wq](https://x.com/uho_wq)です。本記事ではGo 1.26で追加された`new(expr)`がどのような議論の末にこの形に落ち着いたのかを説明しようと思います。## new(expr)Go 1.26で、組み込み関数`new`が式(expression)を受け取れるようになりました。```gop := new(42) // *int, 値は42s := new("hello") // *string, 値は"hello"b := new(true) // *bool, 値はtrue```とてもシンプルな構文追加に思えますが、実はこの結論に至るまで2014年から2025年までの**11年**もかかりました。この記事では、以下の2つのissueをもとに議論の流れを追っていきます。
2ヶ月前

UIKit アプリに Liquid Glass の検索タブを実装する
every Tech Blog
1. はじめに:Liquid Glass で変わる「検索」の体験 WWDC25 で発表された Liquid Glass は、iOS 26 の目玉となるデザインシステムです。ナビゲーションバーやタブバーがガラスのような半透明素材になり、コンテンツがその裏側に透過して見えるようになります。 見た目の変化も大きいですが、Liquid Glass がアプリの体験として特に大きく変えたのは検索です。iOS 26 では、タブバーの右端に検索アイコンが配置され、タップするとタブバー自体が検索フィールドに変わります。設定アプリや App Store など Apple 純正アプリではこの新しい検索 UI が標準…
2ヶ月前

エンジニアが仕様書を書くことで、AI開発の設計・実装を速くしたい
every Tech Blog
はじめに こんにちは、開発1部で食事管理アプリ「ヘルシカ」の開発をしている新谷です。 ヘルシカ - ダイエット・食事管理のための簡単カロリー計算every, Inc.ヘルスケア/フィットネス無料apps.apple.com 社内でAIツールを使って開発を進める中で、個々のタスクは確実に速くなっているものの、開発フロー全体としてはまだ思ったほど生産性が上がっていないと感じています。この記事では、その原因を分析し、「エンジニアが仕様書を主導して書く」という開発フローの改善に取り組んだ話を紹介します。 現状の開発フローと課題 これまでの開発フロー ヘルシカチームでは、以下のような流れでプロダクト開発…
2ヶ月前

ClaudeのAgent SkillsでQA業務を効率化した話
every Tech Blog
目次 はじめに UserMatching(UM)とは QAの課題 Agent Skillsというアプローチ QA手順をSkillsに落とし込む 設計した5つのSkills Skill設計のポイント LPのQA: 表示条件のパターンを自動で網羅する シナリオの自動生成 Claude in Chromeによる自動確認を断念した経緯 ETLのQA: テストデータ設計から検証まで一気通貫 テストデータの自動設計 検証フロー 導入効果と課題 効果 課題 おわりに はじめに こんにちは、デリッシュキッチンのUserMatching事業でエンジニアをしている惟高です。 今回は、Anthropicが提供するA…
3ヶ月前

【Android】デリッシュキッチンの Json パーサを Gson から Kotlin Serialization へ移行検討
every Tech Blog
はじめに Gson について Gson の課題 1. Null 安全が破壊されるリスク 2. デフォルト引数が無視される Kotlin Serialization について 具体的な修正内容 1. Data Class の書き換え 2. Retrofit の Converter の置き換え まとめと今後の課題 はじめに こんにちは、株式会社エブリーで Android アプリ開発を担当している岡田です。 弊社が提供する デリッシュキッチン の Android アプリでは、アプリの堅牢性向上とモダンな開発体験のための選択として、JSON パーサーを従来の Gson から Kotlin Serial…
3ヶ月前