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

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

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

第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) 上で日々運営しています。 この際マイクロサービスの特性上、アプリケーションのリリース・インフラのパッチ適用・リソース拡張といっ…
2ヶ月前

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

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

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…
5ヶ月前

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

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

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

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

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

業務ツールでの「おもてなし」をデザインする話
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月16日の記事です。 こんにちは。デザインチームの関です。 今回はJCB Digital Enablement Platform (JDEP)におけるプロダクトデザインでの試行錯誤をお話しします。デザインチームでは、複数のプロダクトで汎用的に使えるUIパーツやガイドラインを定義したデザインシステムを構築しました。私はこのシステムを広めるべく、クレジットカードの業務ツールの画面から順次適用しています。 デザインシステム構築の取り組み記事もぜひご覧ください。 JCBがゼロから始めたデザインシステム構築 JCBにおける業務ツールとは、例えば…
5ヶ月前

3-Dセキュアにおける認証取引の仕組み解説
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月14日の記事です。 3-Dセキュアにおける認証取引の仕組み解説 JCB デジタルソリューション開発部 アプリチームの村井です。 アプリチームではJCBが提供する様々なサービスの開発・運用をしています。 今回は非対面のクレジットカード決済で導入が進んでいる3-Dセキュア(本人認証サービス)について、 各システムの動きにフォーカスして認証取引の主な仕組みを紹介します。 3-Dセキュアの認証取引の仕組みは、提唱元であるEMVCoのサイトから公式ドキュメントをダウンロードできます。 本記事では公式ドキュメントの内容を噛み砕いて解説します。 …
5ヶ月前

分割ノードプールのスケール作業の自動化
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月12日の記事です。 JCBデジタルソリューション開発部PFチームの島﨑です。 JDEPではKubernetesを用いたシステム運用において、開発・Quality Assurance・Stage・Productionの4段階構成を採用しています。 各環境は1リージョンシングルクラスタで構成しています。 しかし、アプリケーション数の増加に伴い、占有試験の需要が増加しました。 そのため現在検証環境(=Stage)では、試験用に複数のノードプールを用意しています。 今回はJDEPで分割して使用しているノードプールのノードのスケールの自動化を…
5ヶ月前

アジャイル開発におけるトレーサビリティ確保の基本について
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月11日の記事です。 初めまして、JCBデジタルソリューション開発部 Accelチームの山田です。 今回は、アジャイル開発におけるトレーサビリティ確保の基本について記事にしてみたいと思います。 アジャイル開発に初めて挑戦する方にとって参考になれば幸いです。 トレーサビリティとは トレーサビリティとは「trace」と「ability」を組み合わせた造語で、 ISTQB(国際ソフトウェアテスト資格認定委員会) では「関連する作業成果物、または作業成果物内のアイテムを明示的に関連付ける能力」と定義されています。 アジャイル開発について また…
5ヶ月前

SMキャリアチェンジ活動
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月10日の記事です。 JCBデジタルソリューション開発部の長谷川と髙木です。 アプリチームではJCBが提供する様々なサービスの開発・運用をしています。 プロダクトごとにチームを分けており、我々はそれぞれ別チームで異なるプロダクトを担当をしています。 各チームごとに開発プロセスとしてスクラム開発を採用しており、長谷川・高木ともにDEV(開発者)として開発に関わっています。 今回はDEVからSM(スクラムマスター)へキャリアチェンジするにあたり、活動した内容を紹介します。 SMキャリアチェンジのきっかけ 下記はプロジェクト内の人数に対して…
5ヶ月前

金融事業会社におけるGitHub Copilot導入の道のり(下巻/効果編)
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月7日の記事です。 アーキテクトチームの長沼です。 JDEPでは、開発にGitHub Copilot Business(以下、特段の記載ない場合は「Copilot」と省略)を導入しています。 この導入の取組について、2024年11月6日に行われた Microsoft Developer Dayで、「金融事業会社におけるGitHub Copilot導入の道のり - JCBのPoC〜活用」と題して登壇させていただきました。 発表内容は次の3部構成となっており、当日は時間の関係で十分に説明できなかった部分も含めて、それぞれ記事で振り返ろうと…
5ヶ月前

金融事業会社における GitHub Copilot 導入の道のり(中巻/リスク編)
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月5日の記事です。 アーキテクトチームの長沼です。 JDEPでは、開発にGitHub Copilot Business(以下、特段の記載ない場合は「Copilot」と省略)を導入しています。 この導入の取組について、2024年11月6日に行われた Microsoft Developer Dayで、「金融事業会社におけるGitHub Copilot導入の道のり - JCBのPoC〜活用」と題して登壇させていただきました。 発表内容は次の3部構成となっており、当日は時間の関係で十分に説明できなかった部分も含めて、それぞれ記事で振り返ろうと…
5ヶ月前

exportToでIstioの負荷を減らそう
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月4日の記事です。 SREチームの鳩貝です。 JDEPでは、マイクロサービス間の通信制御にGoogle CloudのマネージドIstioであるCloud Service Mesh (CSM)を採用しています。JDEPの規模拡大に伴い、アプリリリース時にJDEP基盤全体のCPU使用量がスパイクする事象が発生しました。本挙動はIstioのxDS APIの仕様が原因であり、サービスメッシュ全体の規模が大きくなるにつれて顕著になっていました。 上記に対処するため、IstioのexportTo設定を活用することで負荷軽減と安定化を図りました。本…
5ヶ月前

GKE とうとうリリースチャンネルに載せました
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月3日の記事です。 PFチームの平松です。 去年の記事では、Google Kubernetes Engine (以下GKE) のアップグレード運用効率化について記載しました。 今回は、前回の記事で記載したGKEクラスタのアップグレード戦略からの変更点について、その背景と詳細について記します。 前提条件 GKEのアップグレード運用を行うにあたり、前提となる当初設定は以下の通りでした。 本条件を念頭に置いてアップグレード戦略の更新に至るまでを記載します。 GKEのマイナーアップグレードは任意のタイミングで実施 アップグレード戦略として、チ…
5ヶ月前

金融事業会社におけるGitHub Copilot導入の道のり(上巻/背景)
JCB Tech Blog
本稿はJCB Advent Calendar 2024の12月2日の記事です。 アーキテクトチームの長沼です。 JDEPでは、開発にGitHub Copilot Business(以下、特段の記載ない場合は「Copilot」と省略)を導入しています。 この導入の取組について、2024年11月6日に行われた Microsoft Developer Dayで、「金融事業会社におけるGitHub Copilot導入の道のり - JCBのPoC〜活用」と題して登壇させていただきました。 登壇の様子 発表内容は次の3部構成となっており、当日は時間の関係で十分に説明できなかった部分も含めて、それぞれ記事で…
5ヶ月前

JCB Embedded SREチームの2024年上期の取り組みを振り返る
JCB Tech Blog
はじめに デジタルソリューション開発部 SRE チームの小柳津です。 以前の記事で、JCB Digital Enablement Platform (JDEP) SREチームで取り組んでいる、SREエンゲージメントモデルの1つ「Embedded SRE」についてご紹介しました。(記事はこちらから!) 2024年度も半分を過ぎたということで、今回はここまでのEmbedded SREの活動実績および、取り組みを振り返りたいと思います。 ✏️ Embedded SREとは? 先日の記事でもEmbedded SREの取り組みについてご紹介しましたが、ここで簡単におさらいをします。 (JDEPへの導入背…
8ヶ月前

Adobe XDからFigmaへデザインデータを移行した話
JCB Tech Blog
こんにちは、デザインチームのスジンです。 今回は、Adobe XDからFigmaへのデザインデータ移行の経験について、お話ししたいと思います。 私は昨年、JCBにUI/UXデザイナーとして入社しました。 当時、社内では主にAdobe XDを使ってデザインをしていましたが、並行して進行していたデザインシステムのプロジェクトではFigmaが使われていました。 そこで、引き継いだプロジェクトにおいてもデザインシステムのようにFigmaを活用できる方が良いと考え、Adobe XDからFigmaへの移行を提案しました。 Figmaにはデザイナーだけでなく、エンジニアの作業効率を大幅に向上させる多くの機能…
8ヶ月前

今年もCloud Operator Days Tokyo 2024 で講演しました!
JCB Tech Blog
JCBデジタルソリューション開発部 PFチームの平松です。 2024/7/16より配信開始されている「Cloud Operator Days Tokyo 2024」にて取り組みの紹介をいたしました。 https://cloudopsdays.com/ 本年度は、運用者に光を! 〜AIの未来、運用者の現実〜 というテーマにて数多くのセッションが公開中となっております。 去年に引き続き、今年もセッションスピーカーに選ばれました。 今回の私のセッションは「運用自動化(Dev/Ops、CI/CD、IaC)」のカテゴリにて、「二桁を超えるクレジット関連サービスが稼働中のGKEにおいて、年数回のアップグレ…
10ヶ月前

生成AI活用への取組 - GitHub Copilot の利用者推移を可視化してみた
JCB Tech Blog
はじめに アーキテクトチームの長沼です。 JDEPでは、アプリケーションの開発にAIペアプログラマーGitHub Copilot Business(以下、GCB)を取り入れています。 GCBは開発者にとって非常に便利な支援ツールであり、積極的に活用していきたいと考えています。 一方で、企業として利用する以上、費用対効果の説明やリソースの効率的な利用も時に求められます。 そこでJDEPでは、GCBの利用状況の可視化にも取り組んでいます。 今回はその1つとして、Copilot利用者数を可視化する取り組みについてご紹介します。 アーキテクチャ GCBでは、GitHub Copilot User Ma…
1年前

「組み合わせテスト」ついてやさしく解説します!
JCB Tech Blog
はじめに JCB デジタルソリューション開発部 QSATチームの星野です。 今回は、組み合わせテストとそのための有用な技法である同値分割や境界値分析の使い方についてやさしく解説します。 組み合わせテストとは 名前の通り、あるものの「組み合わせ」により発生するバグがないかを確認するテストです。では、具体的に何を組み合わせればよいでしょうか。 組み合わせるものは、テストしたい対象の項目が持っている具体的な「値」です。 言葉だけではイメージしづらいので、以下のカラーを選択できるプルダウンの図にて説明します。 この場合、テストしたい対象の項目はカラー。 具体的な値は、プルダウンの選択肢にある赤色または…
1年前

生成AI活用への取組〜AIペアプログラマー(GitHub Copilot) PoC実践編
JCB Tech Blog
はじめに アーキテクトチームの長沼です。 先日は生成AI活用への取組の第一弾としてPoC準備についてご紹介しました。 今回は実際にPoCを行ってみた結果についてご紹介したいと思います。 PoCで使用するツールは、開発における生成AIの草分け的存在でもあるGitHub Copilot、そのビジネス向け製品であるGitHub Copilot Business を採用して実施しました。 PoC対象の概要 JDEPでは特性の異なる様々なアプリケーション(以下APL)を開発運用しています。 今回のPoCでは、その中から以下のAPLを開発するチームに協力をお願いしました。 アプリ名 開発言語 概要 開発フ…
1年前

SREチームにEmbedded SREモデルを導入しました
JCB Tech Blog
はじめに DXテックG SRE チームの小柳津です。 SREチームは2023年度から、SREエンゲージメントモデルのひとつである「Embedded SRE」の取り組みを本格化しています。 今回は Embedded SRE の取り組みについて知ってもらうことを目的とし、活動の概要や方針、実際に Embedded としてAPLチームに参画してみての振り返りをしたいと思います。 Embedded SREとは? 直訳すると「組み込みSRE」。すなわちSREのメンバーが JCB Digital Enablement Platform (JDEP) 上で稼働しているAPLチームのDevとして参画します。 …
1年前

3DセキュアにおけるDSの開発
JCB Tech Blog
JCB デジタルソリューション開発部 DXテックグループの村井です。 アプリチームではJCBが提供する様々なサービスの開発・運用をしています。 今回は非対面のクレジットカード決済で導入が進んでいる3Dセキュア(本人認証サービス)について、 その概要と3Dセキュアを構成するDSシステムの開発についてざっくりと紹介します。 3Dセキュアって何? 3Dセキュアは、インターネットショッピング(非対面決済)でのクレジットカード決済における、本人認証(不正対策)サービスの仕様でありフレームワークです。 クレジットカードでネットショッピングを利用する際は通常、クレジットカードの「カード番号」「有効期限」「セ…
1年前

GKEのアップグレード運用の効率化
JCB Tech Blog
本稿はJCB Advent Calendar 2023の12月25日の記事です。 PFチームの平松です。 我々の部門で運営しているJDEPの最重要構成要素である、Google Kubernetes Engine (GKE) のアップグレードに関する取り組みを紹介したいと思います。 アップグレードサイクル GKEの元となるOSSは知っての通りKubernetesですが、こちらのアップグレードサイクルはご存知でしょうか。 公式サイトに記載の通り、Kubernetesは4ヶ月ごとにマイナーバージョンがアップグレードされています。 Google CloudによるマネージドKubernetesであるGK…
1年前