JCB Tech Blog
https://tech.jcblab.jp/
JCB Tech Blog
フィード

JCB社員のデスク環境を紹介します!
JCB Tech Blog
本稿はJCB Advent Calendar 2025の12月25日の記事です。 デジタルソリューション開発部 SREチーム小柳津です。 今回のアドベントカレンダーでもたくさんの記事が公開されました! この記事はアドベントカレンダー企画最終日の記事となりますが、今年は少しラフなものにしてみたいと思います。 私事ですが最近引っ越しをして作業環境に変化がありましたので、せっかくだし…ということで。 ありそうでなかった、JCBデジタルソリューション開発部社員のデスク環境をご紹介します! 有志にデスクの写真と、こだわりポイントも聞いてみました。 ※個人の特定ができないよう、協力いただいたメンバーについ…
13日前

Retention Filterを見直してDataDogのコストを最適化する
JCB Tech Blog
本稿はJCB Advent Calendar 2025の12月24日の記事です。 こんにちは。JCBデジタルソリューション開発部の西村です。JDEPで加盟店部門のシステム開発を担当しています。皆さんのチームでは、SaaS のコスト管理はどうされていますか? この記事では、Datadog APM のコストをおおよそ 60% 削減しつつ、可観測性(Observability)の質を落とさずに改善できた取り組みを紹介します。「コスト削減のためにログを捨てる」のではなく、「本当に必要なデータだけを残す」ために何をしたか。その過程で 生成 AI をどう使ったかもあわせて書いていきます。 課題 JDEP …
14日前

GitHub CopilotのAgentモードを使って、I/F仕様書を自動生成してみた
JCB Tech Blog
本稿はJCB Advent Calendar 2025の12月23日の記事です。 こんにちは。JCBデジタルソリューション開発部 MyJCBアプリチームのバックエンドエンジニアの原田です。 私が所属するチームでは、GitHub Copilotを始めとしたAIを用いたシステム開発の効率化に取り組んでいます。 今回はGitHub CopilotのAgentモードを使ってI/F仕様書を自動生成するため、プロンプトを定義するマークダウンファイルを実装・検証しました。 実装する過程の工夫や検証を通して見つかった課題についてご紹介いたします。 1. はじめに GitHub Copilotは、コーディングか…
15日前

AIフレンドリーなデザインシステムを目指すために、デザイナーがMCPサーバーを試作した話
JCB Tech Blog
本稿はJCB Advent Calendar 2025の12月22日の記事です。 こんにちは!10月にJCBに入社したデザイナーの谷口です。 JCBではシステムの内製化をより効率的かつスピーディに進めるため、社内デザインシステムとして「SHIMA Design System」を構築しています。 creatorzine.jp SHIMAを用いて実装されている案件はまだ数件とわずかですが、今後SHIMAを用いた開発はさらに増えていくことが予想されます。 また社内でもAIを用いた開発手法が徐々に取り入れられているため、デザインシステムもAIがコンテキストを理解しやすい形に整備されていること、すなわち…
16日前

UXを損なわずに不正アクセスを防ぐ!Cloudflare Bot Management 検証レポート
JCB Tech Blog
本稿はJCB Advent Calendar 2025の12月20日の記事です。 こんにちは、JDEP アーキテクトチームの長沼です。 Webアプリケーションを運用する上で、Bot対策は避けて通れない課題です。 しかしBot対策を強化しすぎると正規ユーザの利用体験(UX)を損ねてしまう、このトレードオフに悩まれている開発者の方も多いのではないでしょうか。 今回は、この課題を解決する Cloudflare の Bot 対策機能、特に Bot Management について検証する機会がありましたので、その内容についてご紹介します。 TL; DR Cloudflare には標準で Bot 対策の機…
18日前

iOSアプリでマイナンバーカードを扱う 〜リリースまでのポイントを添えて〜
JCB Tech Blog
本稿はJCB Advent Calendar 2025の12月19日の記事です。 こんにちは。株式会社ジェーシービーの鈴木です。MyJCBのiOSアプリ開発を担当しています。 先日、MyJCBのiOSアプリにおいて、iPhone内に保存されたマイナンバーカード情報を用いた本人確認機能をリリースしました。 JCBには、最短5分程度で審査が完了し、カードを受け取る前に、ネットショッピングや店頭で利用できる モバイル即時入会サービス(モバ即) があります。 モバ即を利用して入会したユーザが初回ログインをした際、Apple Walletに登録済のマイナンバーカードを用いて本人確認を行うことで、よりスム…
18日前

Geminiで実現するSRE机上障害訓練
JCB Tech Blog
本稿はJCB Advent Calendar 2025の12月18日の記事です。 SREチームの鳩貝です。先月ぎっくり腰になってから整骨院に通い詰めてます。 JDEP SREではシステムの信頼性を担保するため、日々さまざまな運用改善に取り組んでいます。 今回はチーム内で行っているオンコーラ(障害対応担当者)の育成施策と、そこに生成AI(Gemini)を導入した際の検証結果を紹介します。 1. 机上障害訓練「Wheel of Misfortune」における課題 JDEP SREでは主に基盤障害に対し24/365で対応する運用体制を構築しています。体制のなかでもオンコーラは監視システムからのアラー…
20日前

GKE/Kubernetesの機能やツールを活用してミッションクリティカルなアプリケーションの可用性を高める
JCB Tech Blog
本稿はJCB Advent Calendar 2025の12月17日の記事です。 JCB デジタルソリューション開発部 アプリチームの村井です。 アプリチームではJCBが提供する様々なサービスの開発・運用をしています。 はじめに 今回はJDEPで利用しているGKE(Google Kubernetes Engine)およびその土台となる技術であるKubernetesについて、 その機能や付随するツールを使ってミッションクリティカルなアプリケーションの可用性をコストを抑制しつつ高めるTipsをまとめました。 本稿の内容はあくまでも一技術者の見解である点をご理解の上、参考になれば幸いです。 前提 本…
21日前

巨大なiOSアプリをマルチモジュール化してコンフリクトを減らしてSwiftUIのプレビューを早くしたい!
JCB Tech Blog
本稿はJCB Advent Calendar 2025の12月16日の記事です。 初めまして。JCBデジタルソリューション開発部の若林です。MyJCBアプリのiOS側のエンジニアをしています。去年から社会人になり、今年の11月でSwift歴1年になりました。 昨年書いた記事を読み返すととても懐かしい気持ちになります。 WebアプリとiOSアプリを比較した記事 ローカルLLMを使ってみた記事 今回の記事では、現在取り組んでいる「MyJCBアプリのマルチモジュール化」について、どのような構成がベストなのかを検討したプロセスと、現在直面している課題について共有したいと思います。 なぜマルチモジュール…
22日前

ArgoCDとアプリワークロードのクラスタ分離
JCB Tech Blog
本稿はJCB Advent Calendar 2025の12月15日の記事です。 JDEPはKubernetes向けのCDツール、ArgoCDを採用しています。 これまでArgoCDはアプリケーションワークロードが稼働するクラスタと同一のクラスタ内に構成されていました。 しかし、サービスのさらなる安定性を考慮し、ArgoCDおよび周辺ツールをアプリケーション用クラスタから切り離し、専用クラスタへ移行を行いました。 本記事では、移行に至った背景と課題、分離後の構成、得られたメリットについて紹介します。 背景と課題 移行前、ArgoCDは東京リージョンのクラスタ(以降、メインクラスタ)内で、アプリ…
23日前

MyJCBアプリの新機能「パスキー」について
JCB Tech Blog
本稿はJCB Advent Calendar 2025の12月12日の記事です。 はじめに 初めまして。JCBデジタルソリューション開発部の小見山と申します。現在社会人二年目でMyJCBアプリの開発を主に担当しています。 今回はMyJCBに最近追加された新機能「パスキー」について解説していこうと思います。 MyJCBアプリに新たに追加されたパスキー登録画面 FIDOとは?パスキーとは? そもそもFIDOやパスキーって何なのかについて、MyJCBアプリで導入した目的を踏まえて説明していきます。 結論から言うと、ID/パスワードを使わずに、安全にログインする技術のことです。 金融業界では年々、不正…
1ヶ月前

既存サイトのお知らせ機能をCMS化する方法を検討してみた:TiptapのJSON構造を活かすStrapi設計
JCB Tech Blog
本稿はJCB Advent Calendar 2025の12月11日の記事です。 こんにちは。JCBデジタルソリューション開発部の小松です。 現在運用中のサービスに存在する「お知らせ機能」の更新工数削減を目指し、CMS(Contents Management System)というwebサイトの専門的な知識なしでお知らせを投稿可能な機能の導入を進めています。 今回は既存サイトのデザインを維持した記事投稿機能が実現可能か、技術検証をしました。 特にTiptapエディタの特徴であるJSON形式での出力をそのままCMS(Strapi)に保存・活用する方法について中心に記載します。 1. はじめに:背景…
1ヶ月前

TTLを利用したSpanner利用料のコスト削減
JCB Tech Blog
本稿はJCB Advent Calendar 2025の12月10日の記事です。 JCBデジタルソリューション開発部 JCB Link(ジェーシービーリンク)チーム、プロダクトオーナーの岩本です。 世の中のキャッシュレス化の流れはもちろん、皆様の積極的なカード利用により日々膨大な売上データ、振込データが発生しております。 皆様の日頃のご愛顧、心より感謝申し上げます。 そしてぜひ今後とも積極的なカード利用をお願いしたい一方、 システム管理者として気になってくるのはデータ蓄積による基盤利用料です。 本記事ではJCB LinkでのTTLを用いたデータ削除によるコスト削減の取り組みについて紹介します。…
1ヶ月前

フロントエンド弱者のPOがウェブアクセシビリティ勉強会をやってみた
JCB Tech Blog
本稿はJCB Advent Calendar 2025の12月9日の記事です。 こんにちは。JCBデジタルソリューション開発部 JCB Link(ジェーシービーリンク)チームでプロダクトオーナーをしている原田です。 開発者の頃はインフラ、バックエンドを中心に育ちフロントエンド開発経験の浅い私が、ウェブアクセシビリティについて学んだことをJDEPの内部で勉強会をやってみました。という記事になります。 ウェブアクセシビリティについての基礎知識だけでなく、JDEPが立場やプロダクトを超えてフラットに勉強会を開催している組織だということが伝われば本望です。本稿では、勉強会自体の進め方と、実際に話した内…
1ヶ月前

古から続くExcelベースの画面設計書から卒業したい話
JCB Tech Blog
本稿はJCB Advent Calendar 2025の 12 月 5 日の記事です。 デジタルソリューション開発部 アプリチームの服部です。 突然ですが、皆さまは以下のようなドキュメントを一度は目にしたことがあるのではないでしょうか。 呼び方はプロジェクトごとに異なると思いますが(画面設計書、画面項目定義書など)、いずれも画面が持つ項目や振る舞いなどを定義するためのドキュメントです。 私が所属しているプロジェクトでも、同様のドキュメントを Google スプレッドシートで作成しています。 しかし Excel ベースのドキュメントであるがゆえに、次のような課題を感じていました。 生成 AI と…
1ヶ月前

Agile Japan 2025 に参加してきました!
JCB Tech Blog
本稿はJCB Advent Calendar 2025の12月2日の記事であり、AgileJapan Advent Calendar 202512月3日目の記事です。マルチポストになります。 こんにちは。JCBデジタルソリューション開発部 JCB Link(ジェーシービーリンク)チームでプロダクトオーナーをしている原田です。 同部のMyJCB(マイジェーシーシービー)チームのプロダクトオーナーの竹村さんとともに Agile Japan 2025 - Reboot Japan - に参加してきました。 そんなAgile Japanの今年のテーマReboot Japanとは? 以下、公式からの引用…
1ヶ月前

JCBのマルチテナント基盤の信頼性を支える「構成分析AIエージェント」
JCB Tech Blog
本稿はJCB Advent Calendar 2025の12月1日の記事です。 PF チームの平松です。 GKE をベースに構築した JDEP の運用を始めて5年目に突入し、とうとう生成 AI でJDEPについて聞くと、候補の一つとして「クレジットカード大手のJCBが構築・運用しているシステム開発プラットフォームの名称です。IT業界やエンジニア界隈ではこちらの意味で使われることが多く、有名な事例です。」と返してくれるようになりました。 本記事では、今年いくつかのイベントにて紹介した GKE の安定稼働を支える「構成分析 AI エージェント」について、その開発経緯と中身についてご紹介したいと思い…
1ヶ月前

GitHub Copilot Premium リクエストを調査してみた
JCB Tech Blog
JCBデジタルソリューション開発部 PFチームの長沼です。 JDEP で開発に利用している GitHub Copilot において、Premium リクエストが導入されました。 公式ドキュメントによると、Premium リクエストについて以下のような説明があります。 さらに詳しい内容については、こちらの公式ドキュメントを参照ください。 リクエストとは、コードの生成、質問への回答、拡張機能による支援など、Copilot に何らかの処理を依頼するあらゆるやり取りを指します。 チャット ウィンドウでプロンプトを送信するたび、または Copilot からの回答をトリガーするたびに、1 リクエストとカウ…
7ヶ月前

GitHub Copilotを活用した開発効率化(プロンプトファイルの利用及びGitLabのMR作成、レビュー実施)
JCB Tech Blog
こんにちは。デジタルソリューション開発部の長谷川です。 JDEPでは、GitHub Copilot(以下Copilot)を利用した開発効率化を実施しています。 今回は、以下3点についてご紹介します。 エージェントモードを活用したMergeRequest(以下MR)自動生成による省力化 エージェントモードを活用したレビューコメント自動付与による省力化 プロンプトファイルを利用した定型作業の再利用性の向上 ※プロンプトファイルは執筆時点の2025/6/10でパブリックプレビュー 前提 GitLabでコード管理している環境で、手元のクライアントPCからMRを作成し、Copilotによるレビュー及びM…
7ヶ月前

軽量LLMを使ってネイティブアプリでチャットボットを実装してみた
JCB Tech Blog
はじめに 初めまして。JCBデジタルソリューション開発部の若林です。2024年の春から社会人として働き始め、7月から3ヶ月間はReactを用いたWebアプリケーション開発に取り組み、その後10月から現在に至るまでSwiftを使ったiOSアプリケーション開発をしています。 本稿では、ローカルLLMを活用したネイティブアプリ向けチャットボットの実装手順を説明します。 特にローカルLLMの設定方法と、LLMの作業を明確にすること、および出力を単純化することのメリットについて記述しています。 ローカルLLMの概要 ローカルLLMとは、クラウド環境に依存せずローカル端末上で動作する言語モデルを指します。…
9ヶ月前

UICollectionViewDataSourceについて解説
JCB Tech Blog
はじめに 初めまして。JCBデジタルソリューション開発部の若林です。今年の春から社会人になり、研修として7月から3ヶ月間ReactでWebアプリケーションを作成して、その後10月から現在に至るまでSwiftでMyJCBアプリを開発しています。 先日、MyJCBアプリの開発で初めて新規画面の開発を担当しました。 新規画面にはUICollectionViewを利用しました。 今回は、新規画面を作成する過程で学んだUICollectionViewDataSourceについてご紹介します。 UICollectionViewとは まず初めに、UICollectionViewの概要を簡単に説明いたします。…
10ヶ月前

第3回生成 AI Innovation Awards のファイナリストに選出されました!
JCB Tech Blog
JCBデジタルソリューション開発部 PFチームの平松です。 タイトルにある通り、3/13に行われる Google Cloud 主催の「第 3 回 生成 AI Innovation Awards」のファイナリストに、パートナーであるNTTデータ様と協力して構築・運用しているJDEPでの取り組みが選出されました! 詳細はこちらをご覧ください。 JDEPでは、JCBの様々な業務に関する数千を超えるワークロードを、 Google Kubernetes Engine (GKE) 上で日々運営しています。 この際マイクロサービスの特性上、アプリケーションのリリース・インフラのパッチ適用・リソース拡張といっ…
10ヶ月前

JDEP SREチームのインシデントポリシーご紹介
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月25日の記事です。 デジタルソリューション開発部 SREチームの小柳津です。 JDEPでは、インシデントが発生した際に「誰がどんな役割を担い、どのように動くか」をあらかじめ明確化し、チーム全体で共通認識を持てるようにインシデントポリシーを策定しています。 今回は、その中でも SREチームのインシデントポリシー にフォーカスしてご紹介します。 JDEPにおけるインシデントポリシー JDEPでは、すべてのサービスチームが、それぞれのサービス特性に合ったインシデントポリシーを定めています。 どこかのサービスでインシデントが発生した場合は、…
1年前

OpenCensusからOpenTelemetryへの移行
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月24日の記事です。 こんにちは。デジタルソリューション開発部の長谷川です。 担当しているアプリケーションではトレース・メトリクスを用いてアプリケーション利用状況の可視化を行っています。これにより障害対応やボトルネック分析の迅速化を実現しているのですが、この度トレース・メトリクスの収集で利用するパッケージをOpenCensusからOpenTelemetryへ移行しました。 OpenTelemetryは、OpenCensusとOpenTracingの統合プロジェクトで、より広範な機能と高い拡張性を提供しています。また、クラウドプロバイダ…
1年前

NestJSアプリケーションのHTTPクライアントをfetchからaxiosに変えた話
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月23日の記事です。 JCB デジタルソリューション開発部 アプリ チームの関口です。 この記事では、 NestJS アプリケーション内で使用している HTTP クライアントを fetch から axios に変更した際の話を書いていこうと思います。 経緯/前提 まずは今回の変更することとなった経緯と環境を説明します。 経緯 今回我々が fetch から axios に乗り換えた理由は、「Node.js の dd-trace を使用した際、我々の実装では、fetch で行った通信のトレースログが取れなかったから」になります。 dd-t…
1年前

AppSheet使ってみた
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月21日の記事です。 JDEPプラットフォームチーム所属の長沼です。 JDEPでは、ワークロードの実行基盤としてGoogle Cloud、 開発者が使うグループウェアとしてGoogle Workspaceを使っています。 これらで提供されるサービスの1つとして、ローコード・ノーコードツールに位置づけられるAppSheetがあります。 他チームへの管理情報の更新依頼に使ってみたところ、面白かったので、その気付きについてご紹介したいと思います。 AppSheetの利用を試みた背景 自分が所属するチーム外のチームやその所属メンバーに対して、…
1年前

デザインチームの体制や役割について
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月20日の記事です。 JCB デジタルソリューション開発部 デザインチームの入尾野と申します。 今回はJDEP(JCB Digital Enablement Platform)の開発体制におけるデザインチームの体制や役割についてご紹介します。 デザインチームのミッション デザインチームはJDEPのデザイン領域における品質(Quality)、コスト(Cost)、納期(Delivery)の向上をミッションに掲げ、日々活動しています。単にデザインを制作するだけでなく、お客様視点での価値創出と、効率的なデザインプロセスの実現を目指しています。…
1年前

仮想認証器を用いたFIDO2/WebAuthn のテスト自動化について
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月19日の記事です。 JCBデジタルソリューション開発部の金築です。 昨今、インターネットにおける認証技術は、ID/パスワードからワンタイムパスワードを用いた多要素認証へと遷移し、今では生体認証やセキュリティキーを用いたFIDO2/WebAuthnといったパスワードレス認証の導入が進んでいます。 FIDO2/WebAuthnを導入することで、認証の利便性が向上し、従来のパスワード管理によるセキュリティリスクやフィッシング攻撃といった攻撃に効果的であります。 一方で、FIDO2/WebAuthnを導入したシステムのテストでは、従来の方式…
1年前

バックエンドから取得したデータの表示方法の違いを比較:WebアプリとiOSアプリ
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月18日の記事です。 はじめに 初めまして。JCBデジタルソリューション開発部の若林です。今年の春から社会人になり、研修として7月から3ヶ月間ReactでWebアプリケーションを作成して、その後10月から現在に至るまでSwiftでiOSアプリケーションを作成しております。 ReactからSwiftに移行した際にバックエンドからとってきたデータをフロントエンドで画面表示する方法の違いに困惑しました。今後ReactからSwiftに移行した人がそれらのやり方の違いについて困惑することなくスムーズにプロジェクトに参画できるようになればいいなと…
1年前

並行開発におけるブランチ運用について
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月17日の記事です。 こんにちは。デジタルソリューション開発部の永沢です。 担当プロジェクトでは、メジャーバージョンのアップデートが必要な規模の開発を並行して実施しています。 今回は、そのブランチ運用の方式と、発生した運用ミスの改善について記します。 前提 現状は以下のような開発を並行実施しています。 運用中バージョンの保守開発(バージョンX) 次回メジャーバージョン開発(バージョンX+1) 次々回メジャーバージョン開発(バージョンX+2) 現在のブランチ運用 ブランチ 概要 master 次回リリース予定の資材が格納されているブラン…
1年前