Presentation Type [Choose either from Standard / BeginnerSpeaker / StepUp]: BeginnerSpeaker
Level [Choose either from Beginner / Intermediate / Advanced]: Intermediate
Categories [Choose either from Java SE / Jakarta EE / Server-side / Cloud / JVM / DevOps / Tools / Others]: Others
カンファレンス終了後にJJUG YouTubeチャンネルでセッション動画の公開を希望する / Agree to publish your session to JJUG YouTube channel after conference [Yes or No]: Yes
Abstract:
近年バックエンド API 化は多くの事例が出始め、
・バックエンドが簡潔になり、再利用性が高まる
・フロントエンドとバックエンドを別チーム/並行で開発できる
・フロントエンド/バックエンドがそれぞれリリースでき、リリースが簡単になる
など大きなメリットがあります。
ただしレガシーシステムにおいては、フロントエンドとバックエンドの開発は分離されていないケースも珍しくありません。
当社でいえば、従来のシステムは初回のレンダリングをテンプレートエンジン (JSP) により HTML を生成し、
クライアント側での動作は JavaScript によって行われていました。
結果としてサーバー側の実装は HTML 生成にも関心を払わなければならず、複雑性と責務の曖昧さを許容せざるを得ない状況でした。
加えて、時代とともにリッチな UI が求められ、DOM 操作でその要求に応える辛さにも直面しています。
こういった課題からの脱却方法として Spring Boot によるAPI化と、 React による UI 構築の導入から進め、
フロントエンド・バックエンド開発の分離に向けて取り組むことにしました。
このトークでは我々のサービスに Spring Boot によるAPI化と、 React による UI 構築の導入を進める中で、
コストや課題といかに向き合い取り組んだかの経緯、プラクティス・得られたものをご紹介します。