Upgrade to Pro — share decks privately, control downloads, hide ads and more …

新旧ツールを駆使した レガシーアプリの解読 #cm_odyssey

netprotections
July 17, 2024
55

新旧ツールを駆使した レガシーアプリの解読 #cm_odyssey

2024年7月16日(火)に開催されたClassmethod Odyssey ONLINE クラウド編にて、BtoBディベロップメントグループの宮澤が登壇した際の資料です。

netprotections

July 17, 2024
Tweet

Transcript

  1. Copyright(C) Net Protections,Inc. All Rights Reserved. • 決済システム開発経験5年、SRE経験3年 • コーポレートIT部門プロジェクトマネジメント経験5年

    • ネットワーク / データベース / サーバーなどインフラレ イヤから、アプリケーションレイヤまで横断的に従事 自己紹介 宮澤 孟彰 Miyazawa Takeaki 株式会社ネットプロテクションズ ソリューションアーキテクトグループ BtoBディベロップメントグループ @takeaki_myzw
  2. Copyright(C) Net Protections,Inc. All Rights Reserved. 目次 01 | 会社、事業の概要

    02 | 直面した課題 03 | 解読に役立ったAI、その他ツール 04 | 本日のまとめ
  3. Copyright(C) Net Protections,Inc. All Rights Reserved. 株式会社ネットプロテクションズ 柴田 紳 2000年1月

    1億円 303名(2024年3月31日現在) 後払い決済サービスの開発・提供 東京都千代田区麹町4丁目2-6 住友不動産麹町ファーストビル 5階 京都、福岡、愛媛、愛知 NP Taiwan, Inc.(恩沛科技股份有限公司) Net Protections Vietnam Co., Ltd. 株式会社NPファイナンス 商号 代表取締役社長 創業 資本金 正社員数 事業内容 本社所在地 拠点 グループ会社 ネットプロテクションズとは つぎのアタリマエをつくる
  4. Copyright(C) Net Protections,Inc. All Rights Reserved. 後払い決済サービスとは、商品を受け取った後に支払える決済サービス クレジットカードの代替手段としてではなく、利便性・セキュリティ・資金管理など、 「安心・安全で便利なお買い物」のニーズで選ばれています。 後日に払う

    商品を注文する 決済方法を選択する画面で「後 払い」を選びます お支払いの前に商品を受け取ることがで きます 商品が届く/請求が届く 支払期限内であれば いつでも好きなときに払える
  5. Copyright(C) Net Protections,Inc. All Rights Reserved. 2002年のサービス開始以降、累計取引件数は約5.1億件を突破しており、その成長は加速しています。 後払い決済の総合プロバイダーとしてBtoBや海外にもサービスを展開しています。 EC物販 BtoB

    物販に留まらない幅広い展開 *1 デロイト トーマツ ミック経済研究所株式会社 ミックITリポート 2023年11月号 BtoC後払いサービス市場調査( https://mic-r.co.jp/micit/2023/)より、2022年度年間取扱高を参照。 *2 15歳以上の人口1億 1,060万人(総務省統計局人口統計 2022年3月1日時点概算値) ÷2022年3月期の年間ユニークユーザー数 1,500万人により算出。 2002 2000
 2011 2018 2023
 2015 2021 上場 東京証券 取引所に上場 創業
 EC物販む け後払い サービス 特化後払い EC全般・ 実店舗後払 い 海外むけ 後払い 企業間決済 サービス 当社の後払い決済サービスは20年以上成長を継続 膨大な決済データを管理 ・業界シェアNo.1 の「後払い」決済 ・7人に1人 がNP後払いを利用 ・年間流通総額 5,659億円 ・年間ユニークユーザー 1,500万人 ・月間平均取引件数 540万件 ・累計取引件数 5.1億件超 ・導入企業数 130万店舗 *1 *2
  6. Copyright(C) Net Protections,Inc. All Rights Reserved. 10年前にアプリ導入した担当者がいない。 アプリケーションの依存関係、 ビルドデプロイ方法がわからない。 環境構築の手順書が断片的にしか存在しない。

    対応期日は30日後。 それまでに技術検証と切り替えを実行しないといけない。 事業のコア機能で使われているアプリのため、 システムの安定稼働を死守するよう 解読・変更を進める必要があった。 10年前に導入されたアプリで、 仕様がブラックボックス化していた。 急遽、コストやサポートの関係でJavaアプリのライブラリ変更が必要になるも、課題は山積み ...
 直面した課題
  7. Copyright(C) Net Protections,Inc. All Rights Reserved. 解読およびライブラリ変更にあたって大事にしたこと 正直、かなり苦労したレガシーアプリの解読とライブラリの変更。 以下のことを胸に刻み、遂行しました。 2.今後も保守できるように情報資産を残す

    • 今後、同じような状況を生みたくない。 • 解読タスクの具体的な手法(コマンド、参照情報等)も残すことを決意。 1.限られた資源の中で、目的を完遂する手段を常に模索する • 資源は、情報も時間も圧倒的に少ない。 • 目的は、ライブラリを置き換えた状態で現行の決済インフラ機能を提供すること。 • より早い手段がないかは常に考えていました。
  8. Copyright(C) Net Protections,Inc. All Rights Reserved. 1. ChatGPT 2. Community

    3. Shell 解読に役立ったAI、その他ツール
  9. Copyright(C) Net Protections,Inc. All Rights Reserved. まず、ChatGPTにコードを解説させ、全体像をつかむ ChatGPT • ライブラリ変更に必要となるコードの構造を、最短で理解するのに役立ちました。

    • 「これがわかれば解読が進む」ことを解説するようChatGPTに指示して活用しました。 • 今回の場合... ◦ 他プロジェクトとの依存関係 ◦ artifactがどのように生成されるか • ChatGPTで全体構造を把握→必要とあらば詳細を確認しに行く • NOT=最初からソースコードを愚直に読んで理解する
  10. Copyright(C) Net Protections,Inc. All Rights Reserved. • お手上げの状態 ◦ インターネットの記事少ない

    ◦ 公式ドキュメントにも記載なし ◦ えいやっで進め、想定外のバグを踏みたくない、、 • まだ手段がないか考える • →トライしたことがなかったが、コミュニティの力を頼る 取れる手段は全部試す。わからなければコミュニティに Community
  11. Copyright(C) Net Protections,Inc. All Rights Reserved. • 再現性の担保 ◦ コマンド実行すれば他のメンバーでも再現可能

    • 検索性の向上 ◦ チケット管理、ドキュメントに貼り付けることで検索にヒット • 結果がテキストであることで、以下の効用がうまれる ◦ 検索性UP(画像キャプチャでは検索ヒットしない) ◦ 再現性UP(他のメンバーでもコピペ実行) shellに解読ログを残すと、引き継ぎ資料として使える Shell
  12. Copyright(C) Net Protections,Inc. All Rights Reserved. 1. レガシーアプリと対峙するときは、目的達成のために必要最低限の解 読をすると吉。深追いしすぎない。 2.

    コード解読にはChatGPT・Communityが役立った。 使える手段は臆せず使い倒した方がいい。 3. 自分が保守したシステムを、後世が保守する時のために、 解読プロセスを徹底的に残す。Shell等のテキスト情報がおすすめ。 本日のまとめ