every Tech Blog

株式会社エブリーのTech Blogです。

バックエンド

仕様駆動開発ツールcc-sddを実務で使ってみた

はじめに こんにちは、開発1部でソフトウェアエンジニアをしている新谷です。 今回は、AIエージェントで仕様駆動開発を実現する国産ツール「cc-sdd」を実務で約1ヶ月使用してみたので紹介します。 cc-sddとは cc-sddは、仕様駆動開発をAIエージェントで実現…

AIレビューをきっかけにSQLBoilerの内部構造を調べた話

目次 はじめに SQLBoilerのコード生成フローをおさらい 調査のきっかけになったAIレビュー columnsWithoutDefault が示すもの 実際の挙動を確かめる まとめ — AIレビューとの付き合い方 はじめに こんにちは。開発本部開発1部デリッシュキッチンMS2に所属し…

Laravel × Octane / Swoole × Auroraのマルチテナント化2パターン比較

はじめに こんにちは、リテールハブ開発部でバックエンドエンジニアをしているホシと言います。 現在、小売アプリの開発でLaravel11を利用してサービス開発を行っています。 今回は現在サービス提供している環境をマルチテナント化したお話をしようと思いま…

echo.Contextはどこからきているのか

私は入社して初めてWebフレームワークのlabstack/echoに触れました。使っていく中で「便利だけどこれどうやって動いているんだろう?」と思うことが増えてきました。 そこを意識しなくていいのがフレームワークの良いところなんだとは思いますが、気になるの…

プッシュ通知基盤におけるアラートの方針について

はじめに エブリーでヘルシカのサーバーサイドの開発をしている赤川です。 ヘルシカでは、APIサーバーの監視をSentryを用いて行っており、開発中のプッシュ通知基盤にもSentryを導入することになりました。通知基盤が一度に処理するデータ量は、ユーザーの数…

トモニテで発生した SQL インジェクション攻撃の記録と教訓

はじめに こんにちは、トモニテで開発を担当している吉田です。 サービスを運営する上で、セキュリティ対策は欠かせません。 本記事では、実際にトモニテが受けた攻撃の事例をもとに、 異常検知から調査の経緯、攻撃の詳細、そして発見された問題点や今後の…

Laravel開発で注意したい Eloquentの落とし穴と正しい使い方

はじめに こんにちは、リテールハブ開発部でバックエンドエンジニアをしているホシと言います。 現在、小売アプリの開発でLaravel11を利用してAPI開発を行っています。 今回はとても便利で、開発効率を大きく上げてくれるツール「LaravelのEloquent ORM」に…

TestFlightアプリでSandbox課金テストを行う方法

はじめに こんにちは、デリッシュキッチン開発部でソフトウェアエンジニアをしている新谷です。 新卒で入社してから早1年が経ち、時の流れの速さを感じています。 今回は、アプリ課金システムにおけるサーバー側のテスト方法についてご紹介します。 最近、デ…

初めてLaravelを導入したバックエンド開発の構成紹介

こんにちは。RH開発部RHRAグループの池です。 2024年6月にエブリーは5つの小売アプリの運営について事業譲渡を受け、『 retail HUB 』へ移管しました。 引き継いだシステムのバックエンドはLaravelを用いて構築されていましたが、Laravelは弊社では初めて扱…

Postman の環境を整備し開発のしやすさをちょっと上げた話

はじめに デリッシュキッチン開発部のバックエンド中心で開発をしている@きょーです。 この記事では、普段業務で Postman を使っていく際に便利だと思った機能について紹介します。 Postman とは Postman は、API の構築・利用を支援する API プラットフォー…

サンタさんへ、MySQL5.7から8.4にアップグレードしてください

MySQL5.7から8.4にアップグレードした時の問題点と解決策

Go 1.24 の encoding/json の omitzero について

go 1.24 go1.24 golang golang 1.24 golang1.24

ISUCON 14感想戦

この記事は every Tech Blog Advent Calendar 2024の18日目の記事です。 はじめに こんにちは、TIMELINE 開発部 Service Development をしているhondです! 今回は12/8に行われ、弊社がISUポンサーとして協賛したISUCON 14に会社の同期と友人と共に参加した…

ISUCON14 に ISUポンサーの枠で出場しました

この記事は every Tech Blog Advent Calendar 2024 の 10 日目の記事です。 エブリーで小売業界に向き合いの開発を行っている @kosukeohmura です。 エブリーは ISUCON14 にて ISUポンサーとして協賛いたしました。社に 1 枠の参加確定枠を頂き、僕は社内で …

SonyflakeでUnique IDentifierを生成しよう

はじめに この記事は every Tech Blog Advent Calendar 2024 の4日目の記事です。 DelishKitchenやヘルシカのバックエンドやらインフラやらをやっているyoshikenです。 今回は弊社でも利用しているUID生成に便利なSonyflakeについて説明していきます。 UIDと…

OpenAPI の定義を積極的にファイル分割して見通しを良くしてみる

この記事は every Tech Blog Advent Calendar 2024 1 日目の記事です。 はじめに 現状の管理方法からの問題点 分割の手段 分割によるメリット・デメリット まとめ 最後に はじめに こんにちは、トモニテ開発部ソフトウェアエンジニア兼、CTO 室 Dev Enable …

ISUCON14でISUポンサーとして協賛します!

はじめに こんにちは、トモニテ開発部ソフトウェアエンジニア兼、CTO 室 Dev Enable グループの rymiyamoto です。 この度、エブリーは 2024年 12月 8日に開催される『ISUCON14』に、ISUポンサーとして協賛することになりました! isucon.net ISUCONとは? I…

datadogのsmoothingを"理解"する

はじめに エブリーの吉田です。 今回はDatadogのMonitor等で使用する関数、Smoothing(平滑化)について書いていきます。 公式ドキュメントにも色々書いてあるのですが、数学から離れて久しいため、再確認も兼ねてできるだけ丁寧に説明していきます。 https://…

【2024最新】AWS Data Firehoseを使った際の4つの問題とその解決策

【2024最新】AWS Data Firehoseを使った際の4つの問題とその解決策 背景 こんにちは、開発本部 DELISH KITCHEN Retail HUB NetSuperグループに所属するフルスタックエンジニアをやらせていただいています、ホークアイ️です。2024/2/9、Amazon Kinesis Data F…

go1.22 からのテストカバレッジとの付き合い方

はじめに そもそも話題の背景 低下の要因たち 仕様変更に至るまでの経緯 計測方法の見直し テストファイルがあるものだけ抽出する(ホワイトリスト型) 除外したい pkg を名指しする(ブラックリスト型) まとめ はじめに こんにちは、トモニテ開発部ソフトウ…

Go 言語で multipart/form-data を使用して画像を受け取り外部に送信する

この記事は every Tech Blog Advent Calendar 2024(夏) 25 日目の記事です。 はじめに こんにちは、24 新卒として 4 月から入社し、DELISH KITCHEN 開発部でソフトウェアエンジニアをしている新谷です。 現在取り組んでいる業務で、画像を受け取って外部に送…

API Gateway から Amazon Data Firehose へ Lambda を使わずにデータを流す

この記事は every Tech Blog Advent Calendar 2024(夏) 11 日目の記事です。 エブリーで小売業界向き合いの開発を行っている @kosukeohmura といいます。 エブリーでは retail HUB という小売業界向けのサービスを展開しており、その開発を行う中でイベント…

ネットスーパーリプレイス〜長大なクエリと向きあう編〜

この記事は every Tech Blog Advent Calendar 2024(夏) 5 日目の記事です。 はじめに こんにちは、TIMELINE 開発部 Service Development をしているほんだです! 初の Go Conference オフライン参戦なので浮かれてる今日この頃です。 今回はスマホ向けネット…

go 言語で cobra と slog を使った CLI ツール開発

この記事は every Tech Blog Advent Calendar 2024(夏) 3 日目の記事です。 はじめに こんにちは、トモニテでバックエンド周りの開発を行っている rymiyamoto です。 最近は学園アイドルのプロデューサー業に追われています。 今回は、Go 言語で CLI ツール…

プログラムがCPUに理解されるまでのプロセスをまとめてみた

every Tech Blog Advent Calendar 2024(夏) の2日目の記事執筆担当者として参加させていただいております! 今回の記事では、普段書いているプログラムがCPUによってどのように理解されているのかについて、気になって勉強したのでまとめてみたいと思います。

エブリーで新卒2年目を迎えて

トモニテ開発部ソフトウェアエンジニア兼、CTO室Dev Enableグループの[ktanonymous](https://github.com/ktanonymous)です。 4月1日をもって新卒入社してから1年が経ちました。 そこで、今回の記事では、これまでの振り返りと2年目を迎えた今感じていること…

Github Copilot Chat の機能・使い方を整理しつつ開発者体験が向上する活用事例を考えてみた

はじめに 子育てメディア「トモニテ」でバックエンドやフロントエンドの設計・開発を担当している桝村です。 エブリーは、現在 GitHub Copilot Business を持つ Organization アカウントであるため、多くの開発メンバーが Github Copilot を業務で活用してい…

トモニテ相談室での API サーバーの開発環境で sqlboiler と oapi-codegen を導入してみた

はじめに こんにちは トモニテ でバックエンド周りの開発を行っている rymiyamoto です。 今回はトモニテの新規事業として、2023 年 11 月 30 日にローンチした家族・家庭や恋愛に対する悩みをプロのカウンセラーと相談出来る新サービス トモニテ相談室 の開…

実務に入る前に理解していたらもう少し開発速度を上げられたかなと思うこと

はじめに こんにちは!トモニテにて開発を行なっている吉田です。 この記事は every Tech Blog Advent Calendar 2023 の 21 日目の記事となります。 今回は、私が実務に入る前に理解していたらもう少し開発速度を上げられたかなと思うことについて取り上げま…

ネットスーパーアプリにおける GraphQL Mesh を利用した Gateway Server について

はじめに DELISH KITCHEN 開発部で小売向き合いの開発をしている池です。 この記事は every Tech Blog Advent Calendar 2023 の 19 日目です。 本記事では、弊社が提供しているネットスーパーアプリにおける、GraphQL Mesh を利用した GraphQL Gateway Serve…