ミツカリ技術ブログ

株式会社ミツカリの開発チームのブログです

Automaによる自動化 - CSVを使った大量データ登録

こんにちは、ミツカリCTOの塚本こと、つかびー(@tsukaby0) です。 みなさんはWebページを操作していて、こんなことを思ったことはありませんか? 「繰り返しが面倒だ。大量のデータを登録するのが大変だ。」 Webに限りませんが、こう言う問題は一般的によく…

DNSに再入門: NS, AAAAレコードの必要性を整理する

DNS

こんにちは、ミツカリCTOの塚本こと、つかびー(@tsukaby0) です。 DNSは昨今のWebを支える技術です。 前回はDNSサーバーをRoute53からCloudflareに移行したという記事を書きました。 tech-blog.mitsucari.com 今回は移行中に生じた疑問をベースに、各種レコ…

DNSに再入門: DNSサーバーを移行し、結果と速度を検証する

DNS

こんにちは、ミツカリCTOの塚本こと、つかびー(@tsukaby0) です。 DNSは昨今のWebを支える技術です。 前回の記事ではDNSのフルリゾルバについて調査・説明しました。 tech-blog.mitsucari.com 今回はDNSサーバーの移行作業および速度検証についてです。私は…

DNSに再入門: DNSサーバー(フルリゾルバ)を実際の家庭や実例を交えて詳解する

DNS

こんにちは、ミツカリCTOの塚本こと、つかびー(@tsukaby0) です。 前回の記事では弊社のインターンの井上さんがDNSの歴史について解説してくれました。 tech-blog.mitsucari.com 今回はDNSサーバーにフォーカスを当てて説明をしてみたいと思います。DNSサー…

DNS誕生までの歴史

DNS

はじめに ミツカリインターンの井上です。今回、DNS誕生までの歴史について、IT初心者の方にもわかりやすいように、このブログ記事にまとめました。 現代のインターネットでは、Webサイトのアドレス(例:www.example.jp)を入力するだけで、目的のページに…

Findy Team+ Award 2025で開発生産性の高い組織に選ばれました!

ミツカリのたなしゅん(@tanashun_dev)です。 以前、弊社のつかびーさんからFindy Team+という生産性の可視化ツールの導入について記事を公開しました。 tech-blog.mitsucari.com そちらのツールを導入している企業のうち、特に生産性の高い企業を表彰するイ…

rspecで特定のミドルウェアをSkipする方法

ミツカリのたなしゅん(@tanashun_dev)です。 ミツカリではこれまではCommitteeのRequestValidationを有効化していましたが、組織のコーディングルールとしてValidationをFormに統一しようということになったので、現在Formへの移行作業が行われています。 な…

committeeのRequestValidationは便利だが使うのをやめた話

こんにちは、ミツカリCTOの塚本こと、つかびー(@tsukaby0) です。 弊社では数年前からWeb API開発においてOpenAPIおよびスキーマファーストの開発スタイルをとっています。 今回の記事ではスキーマファーストの開発に interagent/committee を使っていました…

React + ViteのSPAをCloudflareのルーティングを理解しながら作る

こんにちは、ミツカリCTOの塚本こと、つかびー(@tsukaby0) です。 ミツカリではPaaSには専らAWSを利用しており、Cloudflareはほとんど利用していません。また、私自身もCloudflareを過去がっつり触ってきた経験はないため、Cloudflareに入門(学習)してみるこ…

Github Actions(ワークフロー)で無闇にSecretsを定義してはいけない話

ミツカリのたなしゅん(@tanashun_dev)です。 Github ActionsでCI/CDを構築する際、ビルドやデプロイ時に秘匿情報を環境変数として渡す場面がありますよね。 例えば以下のような形です。 jobs: jobA: runs-on: ubuntu-latest steps: - uses: docker/build-pus…

マーケティング出身のジュニアエンジニアが教える、Webエンジニアなら抑えておきたいデザインの4原則: ①近接編

はじめに デザインとは? デザインの4原則とは? デザインの4原則① 「近接」 「近接」を使った事例と注意点 最後に はじめに こんにちは!ミツカリでジュニアエンジニアをしています。tt(髙橋)です。 この記事ではWebエンジニアなら抑えておきたい「デザイ…

GithubActionsに標準搭載されていない複雑な実行トリガーを表現する

ミツカリのたなしゅん(@tanashun_dev)です。 GithubActions、皆さん使っていますでしょうか? Pull request(PR)をトリガーにテストを実行したり、プッシュをトリガーにデプロイを実行したりしますね。 ほとんどの場面ではPRが作られたとき、プッシュされた…

Playwright Component Testを用いた単体テストでJestで書けなかったテストを実現する

ミツカリのたなしゅん(@tanashun_dev)です。 弊社で提供しているサービスの一部のアクションでドラッグアンドドロップで画面上の要素の並び替えをする機能があります。 この実装にはdnd-kitというライブラリを使っています。 dndkit.com ライブラリのおかげ…

時系列DBに入門しつつ、パフォーマンスを計測してみる(InfluxDB v2 vs PostgreSQL v15)

こんにちは、ミツカリCTOの塚本こと、つかびー(@tsukaby0) です。 ITシステムにおけるデータベース(DB)には様々な種類が存在します。一般的によく使われるのはリレーショナルデータベース(RDB, RDBMS)であり、PostgreSQLやMySQLが有名です。これらとは別の種…

Sentryのエラーをアーカイブするときの考え方(エラーバジェット)

こんにちは、ミツカリCTOの塚本こと、つかびー(@tsukaby0) です。 今回はエラーモニタリング(エラートラッキング)サービスであるSentryの扱い方についての記事です。 Sentryとは Sentryとはエラーモニタリングサービスであり、アプリケーション上で発生した…

DevOpsDays Tokyo 2025 に初参加した感想

こんにちは、ミツカリCTOの塚本こと、つかびー(@tsukaby0) です。 先日DevOpsDays Tokyo 2025というカンファレンスに参加しました。今回の記事はその感想レポートです。 DevOpsDays 詳細は以下のページを御覧ください。 www.devopsdaystokyo.org 過去に何度…

Bedrock AgentのDraft, Version, Aliasの構造とTerraform管理の難しさ

AWS

こんにちは、ミツカリCTOの塚本こと、つかびー(@tsukaby0) です。 先日弊社は生成AIをプロダクトに組み込んだとある機能をリリースしました。 ミツカリもAIエージェントに!!AIアシスタント機能がリリースされました。早速使っていただき面接の動機づけや面…

ReactHookFormのuseFieldArrayを使った動的フィールドでの不具合解決

はじめに ミツカリのたなしゅん(@tanashun_dev)です。 ReactHookForm、皆さん使っておりますでしょうか。 React開発においてかなりメジャーなFormライブラリですね。 ミツカリでも採用しています。 ReactHookFormにはuseFieldArrayという動的に入力項目を増…

ChromaticのFlaky testへの対応、一部の文字(Font)差分問題解決

こんにちは、ミツカリCTOの塚本こと、つかびー(@tsukaby0) です。 ミツカリ開発部ではVisual Regression Testing(VRT)を行っています。VRTを実現するためのSaaSにChromaticというものがあり、これを利用しています。 Chromaticを使うとUI変更の差分を画像で…

【全部解けるかな?】TypeScript型クイズ

はじめに 今回はちょっとした面白企画です。 クイズ形式でTypeScriptの型への理解度をチェックしてみましょう! クイズ 以下クイズです。問題がコードで書かれています。 答えはアコーディオンで閉じていますので開いて確認してください。 なお、以下で書か…

AWS認定DOP取得と苦戦した製品など

こんにちは、ミツカリCTOの塚本こと、つかびー(@tsukaby0) です。 最近AWS資格のDOP(AWS Certified DevOps Engineer - Professional)を取得しました。 www.credly.com 今回はその話をしようと思います。 執筆者のバックグラウンド 修士卒 6年間の情報工学、…

YJIT3.4を導入してパフォーマンスの変化を測る

はじめまして。ミツカリでエンジニア(ミドルくらい)をやっていますawagakubo(粟ヶ窪)といいます。 今回は弊社のバックエンド環境で採用しているRubyでYJITを有効化してパフォーマンスの向上を図った記録です。 背景 YJITについて やったこと 変化を確認 CP…

ミツカリにおける昔の開発生産性計測と今後(Findy Team+導入)

こんにちは、ミツカリCTOの塚本こと、つかびー(@tsukaby0) です。 ミツカリでは2025年からFindy Team+というSaaSを利用しています。 このサービスはgitリポジトリ、GitHubを分析し統計情報から様々な情報を可視化、組織の開発生産性向上を行うようなサービス…

Slack Workflow Builder使った年休申請やリリース通知の例

こんにちは、ミツカリCTOの塚本こと、つかびー(@tsukaby0) です。 突然ですが、みなさんはSlackのWorkflow(Builder)機能を使っていますか? slack.com 何らかの申請や処理フローなどをSlack上で構築できる機能です。マネージドとしてデフォルトで用意されて…

OpenAIのWhisperを用いてSlackのhuddleの議事録をリアルタイムで取る試み

こんにちは。ミツカリのたなしゅんです。 ミツカリはフルリモート環境のため、Slack上でのテキストコミュニケーションが基本です。 もちろん、さっと集まって話した方が早く済むこともありますし、リアルタイムでのディスカッションでしか得られない経験もあ…

生成AI PRレビュー pr-agentからCodeRabbitへの乗り換え

こんにちは、ミツカリCTOの塚本こと、つかびー(@tsukaby0) です。 ミツカリではAIを積極活用して開発効率や生産性を高めようと日々改善をしています。今回は生成AIコードレビューツールに関する話をしようと思います。 コードレビューツールおよび歴史 2022…

外部ライブラリを使う際の選定基準

はじめに こんにちは、ミツカリのたなしゅんです。 皆さんはプログラミングの際に3rdPartyなライブラリを導入していますでしょうか? ミツカリではお客様へ価値を届けるまでのスピードを早めるため、積極的にライブラリは使わせていただいています。 ミツカ…

30代半ばのジュニアエンジニアが読んだ書籍レビュー(IT技術編)

はじめに 書籍レビュー 『イラスト図解式 この一冊で全部わかるWeb技術の基本』 / NRIネットコム株式会社 (著), 小林 恭平 (著), 坂本 陽 (著), 佐々木 拓郎 (監修) / 2017/3/16 概要 おすすめ度 学べたこと・良かった点 微妙だった点 『図解即戦力 Amazon W…

Rails(puma)アプリケーションのパフォーマンスチューニング

こんにちは、ミツカリCTOの塚本こと、つかびー(@tsukaby0) です。 ミツカリはtoB向けのWebアプリケーションです。そのため、複数のユーザーが同時利用しますが、リクエスト数はtoCサービスやWeb広告、メディア、その他のtoB向けアプリケーションよりは非常に…

Next.jsのプロジェクト(コード)を2つに分割して苦労した話

こんにちは、ミツカリCTOの塚本こと、つかびー(@tsukaby0) です。 ミツカリでは創業した2015年からRuby on Railsを使ってきましたが、近年ではRailsはRestful API(Backend)として位置づけており、FrontendにはNext.jsを利用しています。 創業時から2022年頃…