-
公共機関向けレガシーシステムをSpring Bootへ改善したバックエンド開発(同時ユーザー20倍)
■ プロジェクトの目的
Java6 / Strutsベースのレガシーシステムを改善し、
Java11 / Spring Bootベースの構造へ段階的に高モダナイズすることを目的とした。
システムの保守性および性能改善を目的としたレガシー改善プロジェクト。
■ 体制・人数
バックエンドエンジニアを中心とした
約6名規模の開発チーム
■ 自分のポジション・役割
バックエンドエンジニアとして
- Struts / JSPベースのレガシーコード分析
- Spring Bootベースの構造への改善開発
- データベース連携ロジック改善
- Stored Procedure → Application Layerリファクタリング
- DB Connection Pool問題の分析および改善
を担当。
■ 目的を達成する上での課題
既存システムは Java6 + Strutsベースのレガシー構造で構築されており、
- ビジネスロジックのStored Procedure依存
- DB Connection Pool設定問題
- 同時アクセス増加時の性能低下
という課題が存在していた。
■ 課題に対して取り組んだこと
Stored Procedure中心のロジックの一部を
Application Layerへ移行するリファクタリングを実施。
また、Struts / JSPベースの構造を分析し
Spring Bootベースの構造へ段階的に改善する開発を行った。
さらにDB Connection Pool設定および
クエリ処理構造の見直しを行い
システム性能の最適化を実施した。
■ ビジネス上の成果
同時接続ユーザー数を
従来比約20倍(最大2000ユーザー)まで拡張。
また、データベースクエリおよび処理ロジックの改善により
検索機能のレスポンス時間を最大約10倍高速化。
さらに開発プロセスにAIツールを活用し
コード作成および問題解決の効率を向上させることで
開発スピード改善にも貢献した。
Java, Apache Struts, SpringBoot, Mybatis, JSP, Stored Procedure , MySQL
-
LG Electronics SSO / OAuth2認証基盤開発
■ プロジェクトの目的
LG Electronicsサービスにおける
ユーザー認証を統合するため、
OAuth2ベースのSSO(Single Sign-On)認証基盤を構築することを目的とした。
■ 体制・人数
バックエンドエンジニアを中心とした
約6名規模の開発チーム
■ 自分のポジション・役割
バックエンドエンジニアとして
- OAuth2ベース認証システム開発
- Keycloakを利用したSSO認証処理
- JWTトークン発行および検証ロジック実装
- 認証関連REST API開発
- ログインおよび認証フロー設計
を担当。
■ 目的を達成する上での課題
既存サービスはそれぞれ独立した認証方式を使用しており、
サービス間でログイン状態を共有できないという課題があった。
また、複数サービス利用時に
ユーザーが繰り返しログインする必要があり、
ユーザー体験の低下が発生していた。
■ 課題に対して取り組んだこと
OAuth2ベースの認証アーキテクチャを設計し、
Keycloakを利用したSSO認証基盤を構築。
JWTベースの認証トークン発行および
各サービスにおけるトークン検証ロジックを実装し、
複数サービス間でのSSOログインを実現した。
■ ビジネス上の成果
SSO認証基盤導入により
- サービス間の統合ログイン環境を構築
- 認証ポリシーの一元管理を実現
- ユーザーのログイン体験を改善Java, Quarkus, OAuth2.0, SSO, Keycloak, JWT, REST API
-
LG Electronicsモノリシック→MSA移行(性能40%向上)
■ プロジェクトの目的
既存のモノリシック構造で構築されていたサービスを
Spring Bootベースのマイクロサービスアーキテクチャ(MSA)へ移行し、
システムの拡張性および運用安定性の向上を目的とした。
また、サービス分離と同時に
Java 8 → Java 17へのバージョンアップを行い、
長期的な保守性と開発効率の改善を図った。
■ 体制・人数
バックエンドエンジニアを中心とした
約10名規模の開発チーム
■ 自分のポジション・役割
バックエンドエンジニアとして
- モノリシックサービスの機能単位分割設計
- Spring Bootベースのマイクロサービス開発
- REST API設計およびサービス間通信実装
- Sagaパターンを利用した分散トランザクション処理の設計・実装
を担当。
■ 目的を達成する上での課題
既存システムはモノリシック構造で構築されており、
サービス間の依存関係が強く、
機能変更時の影響範囲が大きいという課題があった。
また、インフラ制約により
Kafkaなどのメッセージブローカーを利用できない環境で
サービス間のデータ整合性を維持する必要があった。
■ 課題に対して取り組んだこと
中央サービスが各API処理を順次制御する
オーケストレーション方式のSagaパターンを設計。
各処理ステップの状態を
データベースのメタデータテーブル(イベントログ)として保存し、
処理失敗時には保存された状態情報を基に
補償トランザクション(Compensation Transaction)を実行する仕組みを実装した。
これにより、外部メッセージブローカーを使用せずに
サービス間のデータ整合性を維持する分散トランザクション処理を実現した。
■ ビジネス上の成果
モノリシック構造からマイクロサービス構造への移行により
システムの結合度を低減し、
- システム拡張性
- 保守性
- 運用安定性
- を向上させた。
また、Java 17へのアップグレードとアーキテクチャ改善により
長期的なシステム運用基盤の強化に貢献した。Java, Spring Boot, Microservices Architecture, REST API, Saga Pattern, Distributed Transaction
-
LG CNS 管理システムバックエンド開発
■ プロジェクトの目的
既存サービスの運営管理を効率化するための
Admin(管理者)システムの機能開発および改善を行う。
■ 体制・人数
バックエンドエンジニアを中心とした
約5〜8名規模の開発チーム。
■ 自分のポジション・役割
バックエンドエンジニアとして
AdminシステムのAPI開発、機能追加、
既存機能の改善およびデータベース連携を担当。
■ 目的を達成する上での課題
既存の管理機能は機能追加が繰り返されており、
コード構造が複雑になり保守性が低下しているという課題があった。
■ 課題に対して取り組んだこと
機能単位でコードの整理とリファクタリングを行い、
REST APIの構造を整理することで
管理機能の開発効率と保守性を改善した。
■ ビジネス上の成果
管理機能の安定性と開発効率を向上させ、
運用チームの業務効率改善に貢献した。Java, Spring Framework, REST API, SQL