レバテック開発部のフィード
https://zenn.dev/p/levtech
レバテック開発部の公式テックブログです!
フィード

「地に足ついた改善」を進めた1年でした
レバテック開発部のフィード
この記事は レバテック開発部 Advent Calendar 2025 最終日の記事です。 はじめにレバテック開発部の瀬尾です。基幹システムである営業支援システムを担当しています。この記事では、2025年のふりかえりとして エンジニアとして考え方がどう変わったか を書いてみようと思います。タイトルにある通り、一言でまとめると「地に足ついた改善」を意識できるようになった1年でした。 地に足をつけるとは自分のいう「地に足をつける」とは理想を捨てないことでも、一気にそこへ行こうとしないことということです。システム改善やリファクタリングの話になると、中途半端な改...
13日前

Self-hosted runnerでWordPressデプロイを爆速にした話
レバテック開発部のフィード
こんにちは、レバテック開発部の小豆畑です。この記事は レバテック開発部 Advent Calendar 2025 24日目の記事です。 はじめに私はレバテックのオウンドメディアの運用チームに所属しています。この記事のテーマは昨年リニューアルしたこちらのコーポレートサイトです。レバテックのコーポレートサイトかっこいいでしょう。なんと、WordPressで動いています。この記事では、サイト更新時のデプロイ方法を手動ファイルアップロードからGitHub ActionsのSelf-hosted runnerを使った仕組みに変えた事例をご紹介します。 これまでの課題 手動...
14日前

レバテックのデザインシステム「VoLT」におけるクオリティゲートの話
レバテック開発部のフィード
レバテック デザインシステム「VoLT」におけるクオリティゲートの話こんにちは、レバテック開発部のHYです。この記事は「レバテック開発部 Advent Calendar 2025」の 23 日目の記事です!毎年この時期になるとこうしてアドベントカレンダーで記事を書いていますが、もっと書いていきたいですねw はじめにレバテックでは、各サービスの開発チーム向けに React と Vue で利用できる共通 UI コンポーネントライブラリ(デザインシステム「VoLT」)を提供しています。この記事では、VoLT の品質を担保するために導入した自動化テストカバレッジゲートを起点とし...
15日前

LESSコマンドの前処理はいつ設定される?
レバテック開発部のフィード
この記事は レバテック開発部 Advent Calendar 2025 22日目の記事です。 結論bashかつUbuntu環境では、/etc/skel/.bashrcに記載された[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"によってデフォルトの前処理が設定される。 lessコマンドhttps://packages.debian.org/ja/sid/less一度に画面全体 にテキストを表示できるメモリ効率の良いユーティリティです。less には基本的な ページャ "more" より...
16日前

リファクタリングは「文化的雪かき」なのかもしれない。~ 100日間継続した小さなPRの積み重ね~
レバテック開発部のフィード
この記事は「レバテック開発部 Advent Calendar 2025」の21日目の記事です!🎄 はじめにこんにちは、レバテック開発部のk氏です。みなさん、日々のソフトウェア開発でリファクタリングは実施できていますか?日々の業務と並行してリファクタリングを実施することは、容易なことではないと思っています。(チームの状況だったり、組織的な問題が絡んできたりもあると思います。)そこで、この記事では今年の春から私が取り組んだ、リファクタリングのアプローチ方法を振り返りながら紹介します。みなさんのソフトウェア開発の中で活用できそうなことがあれば幸いです。!この記事は以下のような...
17日前

継続率100%!毎月開催のLT会を1年運営してわかった社内LT会のコツ
レバテック開発部のフィード
はじめにこんにちは!レバテック開発部の宮下です。この記事は レバテック開発部 Advent Calendar 2025 20日目の記事です。勉強会やLT会の継続って難しいですよね。廃れていったり元気がなくなっていく勉強会を何百回も見たことがあります...。本記事では、自分が1年間社内LT会の運営に携わる中で、継続率100%(毎月開催)を実現するために実践したノウハウを公開します。 対象読者これから社内LT会を立ち上げたいと考えている方現在運営しているLT会の登壇者集めや継続に悩んでいる方社内でのアウトプット文化を醸成したいマネージャー層の方 LT会を継続させる...
18日前

モノレポにおけるCLAUDE.mdの配置場所
レバテック開発部のフィード
この記事は レバテック開発部 Advent Calendar 2025 19日目の記事です。 はじめにこんにちは、だんです。Claude Codeを使い始めてもう半年ほど経過しますが、まだまだ知らないことが多くあります。(というより進化が速すぎてついていけない)Claude Code をモノレポで使うとき、「CLAUDE.md をどこに置くべきか?」と悩みました。上記の悩みをもとに、今回は次の2つを調査・検討しました。CLAUDE.mdの参照の仕組みモノレポにおけるCLAUDE.mdの配置場所!本記事執筆後にClaude Codeで.claude/rules/が...
19日前

Chrome のページプリロード機能 ✕ Next.js で詰まった話
レバテック開発部のフィード
はじめにこんにちは、レバテック開発部の塚原です。この記事は レバテック開発部 Advent Calendar 2025 18日目の記事です。この記事では Web サービスの開発業務で遭遇したある事象について説明をします。 前提遭遇した事象の説明をするにあたり、前提となる Web サービスの実装について説明します。私のチームで開発している Web サービスでは、Next.js のミドルウェアで認証処理を実行し、認証が失敗した場合は、認証エラーを示すページにリダイレクトさせています。そして、ミドルウェアを通過後にページがサーバーサイドでレンダリングされる時に、バックエンドの...
20日前

見えないコストを可視化する:AWS Config Custom Rules × Lambda 実装ガイド
レバテック開発部のフィード
この記事は レバテック開発部 Advent Calendar 2025 17日目の記事です。 はじめにSREチーム業務委託の丹羽です。「コストは常に意識していてくれたらな...!」開発チームに対して常々そう思ってはいるものの、開発に専念すべきフェーズのチームが、日常的にコスト管理画面と睨めっこしなければいけない状況は健全ではありません。かといって、野放図にリソースが増えれば、不要なコストが積み重なってしまいます。そこで今回は、コスト管理の一環として、「集計のフックとなるタグ(BusinessUnitやServiceなど)が正しく付与されているか」 を機械的に検知する仕組みを...
21日前

本番稼働していて負荷をかけられないTiDBへの追加移行におけるAWS DMSのチューニングTips集
レバテック開発部のフィード
この記事は レバテック開発部 Advent Calendar 2025 16日目の記事です。 はじめにレバテック開発部、SREチームに所属している金澤です。現在、レバテックではTiDBをマルチテナントで利用しています。元々はAurora MySQLをメインで使用しており、移行にはAWS DMSを採用しました。今回は、TiDB移行におけるAWS DMSを利用する事例が少なかったこともあり、工夫した点をまとめたいと思います!↓TiDBに関連する過去の記事https://zenn.dev/levtech/articles/switch-table-name-on-tidbht...
22日前

レバテックのTiDBにTiProxyを導入するまでにやったこと
レバテック開発部のフィード
はじめにこの記事は レバテック開発部 Advent Calendar 2025 15日目の記事です。レバテックSREチームの鈴木です。現在、レバテックの本番環境では TiDB Cloud Dedicated Cluster を利用していますが、運用上の課題として「TiDBノードのメンテナンス(再起動やスケーリング)時に発生する接続断」がありました。特にOLTPワークロードにおいては、この瞬断がトランザクションエラーを引き起こし、アプリケーション側の可用性に影響します。この課題を解決するために、TiDBのプロキシコンポーネントである TiProxy の導入を行いました。本記...
23日前

TSにおけるモノレポ構成の最低限の設定と最適化のための技術を理解する
レバテック開発部のフィード
この記事は レバテック開発部 Advent Calendar 2025 14日目の記事です。 はじめにこんにちは!レバテック開発部の高瀬です。今年の4月ごろに新規プロジェクトで開発したシステムでモノレポ構成を採用しています。フロントエンド・バックエンドともに TypeScript で統一しており、pnpm の workspace 機能で管理しています。とりあえず動くようにした状態で開発スタートし、半年ほど運用してきましたが、正直なところ「どの設定で成り立っているのかよく分かっていない」状態でした。今回、改めてモノレポ構成を実現するために最低限何が必要なのか、そしてどうすれば...
24日前

Claude Code導入時にチーム予算のうち約90%を1人で使い切った話
レバテック開発部のフィード
この記事は レバテック開発部 Advent Calendar 2025 13日目の記事です。 はじめにはじめまして。2025年10月にレバテック開発部にジョインした hama です。みなさんは Claude Code を活用していますか?リリースからもうすぐ1年、開発体験を大きく変えるツールとして定着しつつありますね。私は2025年5月のAnthropicの発表直後から個人で Max Plan を契約して、8月頃まで使っていました。(8月ごろに発生した大規模なバグの時に離れたユーザーの1人でした。)この度、11月中旬から Claude Code がチーム開発で本格導入されるこ...
25日前

Nuxt 3からNuxt 4へのメジャーアップデート:手順とハマりどころ、対応工数まとめ
レバテック開発部のフィード
はじめにこの記事は レバテック開発部 Advent Calendar 2025 12日目の記事です。この記事では、Nuxt 3からNuxt 4へメジャーアップデートした際の手順と感想を紹介します!(最近はNext.jsの記事が多く、Nuxtの人達はどこにいったんだろう...とふと思うことがありますw)まだまだサポート期限まで余裕があると思いきや、EOL(2026-01-31)が意外と迫っていたため、早めの対応を行いました。(すぐにNuxt5も来そうで怖い.... この記事でわかることNuxt 4に上げた際の具体的な「ハマりどころ」手動でのディレクトリ移行手順実際の...
1ヶ月前

Cache ComponentsにおけるSuspenseの役割について
レバテック開発部のフィード
この記事は レバテック開発部 Advent Calendar 2025 11日目の記事です。 はじめに先日、Next.js 16がリリースされました。様々な改善が見られる中、特に注目されているのはやはりCache Componentsでしょう。本記事では、Cache Components有効化にともなってSuspenseの役割がどう変わるのか、どのようにSuspenseを配置すべきかについてまとめていこうと思います。 Cache Componentsって何?まずはCache Componentsの概要と主な機能について簡単に説明します。Cache Componentsは、...
1ヶ月前

LiveKit × Bedrock × LangGraphで実現するリアルタイム営業ロープレAI
レバテック開発部のフィード
はじめにこの記事は レバテック開発部 Advent Calendar 2025 7日目の記事です。前回の記事に続き、全然SREっぽいことを投稿しないSREチームの鈴木です。最近、Voice AI(音声対話AI) の進化が止まりません。OpenAIのAdvanced Voice ModeやGoogleのGemini Liveなど、人間と自然に会話できるAIが急速に身近になってきました。こうした技術的背景の中、私たちレバテックでは、社内の人材育成を加速させる施策として 「営業ロールプレイングのAI化」 の技術検証に取り組んでいます。 そもそも「営業ロープレ」とは?営業ロープ...
1ヶ月前

ECSのNode.jsサーバーで起きたメモリリークを解消した話
レバテック開発部のフィード
こんにちは、レバテック開発部の古川と申します。この記事は レバテック開発部 Advent Calendar 2025 10日目の記事です。新卒2年目で、入社して初めてアドベントカレンダーに参加させていただきます。拙い筆ではありますがご容赦ください。 ECSタスクでOutOfMemoryErrorが発生先日、ECSにホスティングしたNode.jsのWebサーバーがOutOfMemoryError(以下OOM)で異常終了してしまいました。メモリリークの可能性も含めて原因を調査したため、その手順や顛末についてまとめます。 ヒープメモリとは調査する前に、まずヒープメモリについ...
1ヶ月前

【TiDB移行】sync-diff-inspector使ってみる
レバテック開発部のフィード
この記事は レバテック開発部 Advent Calendar 2025 9日目の記事です。 これはsync-diff-inspectorを使ってMySQL互換のデータベース間のデータ差分チェックを最低限の構成でやってみます。 sync-diff-inspectorって?MySQLプロトコルを使用してデータベースに保存されたデータを比較するためのツールです。MySQL〜TiDB間といったデータの差分を比較できます。また、少量のデータに不整合がある場合の修復用のSQLを自動生成する機能も備わっています。 きっかけ全社的にAWS RDSからTiDBへ移行を行なっておりデータレ...
1ヶ月前

TypeScript型パフォーマンスを覗く 〜Union × 条件型 × 再帰で起きること〜
レバテック開発部のフィード
この記事は レバテック開発部 Advent Calendar 2025 8日目の記事です。 1. はじめにTypeScriptでは、tsserverというプロセスが裏側で動いていて、コードを編集するたびに変更されたファイルやその依存関係部分を型チェックします。TypeScriptで開発するようになってから、エディタの補完が一瞬止まったり、型チェックが返ってこなくなる場面が何度かありました。特にモブプロ中に大きめのファイルをいくつも開いていると、tsserverが固まったように見えることがあり、最初は「VSCodeのタブの開きすぎ、アプリの開きすぎかな」くらいに考えていました。と...
1ヶ月前

だいたい同じだけど一部が異なるデータを持つデータ構造について4つのパターン分類してみた
レバテック開発部のフィード
この記事は レバテック開発部 Advent Calendar 2025 6日目の記事です。 はじめにアプリケーション開発において、だいたい同じだけど、一部が異なるデータを管理しなくてはならないときがあります。例えば、以下のような要件に遭遇することがあります。サイト全体の設定を元に、プロジェクトごとに一部だけ変更した設定ファイル。共通の契約書のテンプレートデータを元に、顧客ごとに特約を書き加えた契約書。これらはすべて、元となるテンプレートデータと、それを活用しつつ改変されたインスタンスデータの関係にあります。本記事では、この課題を解決するためのデータ構造を4つのパターン...
1ヶ月前