Skip to content

Spring Boot 映画レコメンドシステム開発実践

概要

本実践プロジェクトでは、実際の PRD に基づいて、Spring Boot を使用してレコメンド機能付きの映画サイトを完成させます。このプロジェクトのコアチャレンジは、単純な CRUD ではなく、「ユーザーの行動がレコメンド結果にどう影響するか」「レコメンドをどう説明可能にするか」を考えることにあります。

これは Stage 2 の総合実践セクションです。「コンテンツ + 行動 + レコメンド」型製品の開発パターンに初めて触れる機会であり、このパターンは EC、コンテンツプラットフォーム、パーソナライズフィードなどのシナリオで非常に一般的です。

前提知識

このプロジェクトを始める前に、以下の内容をすでに習得している必要があります:

学習目標

本実践完了後、以下のことができるようになります:

  1. PRD を読み、レコメンドシステムの開発タスクリストを抽出する
  2. Spring Boot を使用してバックエンドプロジェクトを構築し、RESTful API を実装する
  3. 「ユーザー行動 → レコメンド」の完全なデータパイプラインを設計する
  4. 説明可能なレコメンドロジックを実装する
  5. エンドツーエンドの結合テストを完了し、デモ可能な製品プロトタイプを納品する

プロジェクト概要

あなたが構築する製品は、レコメンド機能付きの映画サイトです:

機能説明
閲覧と検索ユーザーは映画を閲覧・検索できる
評価とお気に入りユーザーは映画を評価し、お気に入りに追加できる
パーソナライズレコメンドシステムがユーザー行動に基づいてレコメンド結果を表示
管理バックエンド管理者が映画データを管理し、レコメンド効果を確認

PRD 入口

本プロジェクトの要件文書は GitHub にあります: PRD を表示

第 1 部:要件分析

1.1 PRD を読む

PRD 文書を開き、以下の質問に重点的に答えてください:

  • レコメンド戦略は何ですか?第 1 版では説明可能なバージョン(評価類似度に基づくなど)を使用しますか?
  • ユーザー行動データとして何を保存しますか?(評価、お気に入り、閲覧履歴など)
  • 管理者が確認すべきレコメンド効果指標は何ですか?
  • ページリストは完全ですか?

WARNING

以上の質問に対する明確な答えがない場合は、コードを書き始めないでください。要件の理解が不明確なのは、手戻りの最も一般的な原因です。

1.2 システムアーキテクチャの確認

mermaid
flowchart TD
  prd["PRD"] --> web["フロントエンドページ"]
  web --> auth["ユーザー認証"]
  web --> movie["映画リスト / 詳細"]
  web --> behavior["評価 / お気に入り"]
  behavior --> reco["レコメンドロジック"]
  reco --> db["データベース"]
  admin["管理バックエンド"] --> db

第 2 部:プロジェクトスケルトンの構築

2.1 フロントエンドページの生成

プロンプト参考:

text
現在の PRD に基づいて、Spring Boot 映画レコメンドシステムのフロントエンドスケルトンを生成してください。

要件:
1. ページには以下を含む:ホーム、映画リスト、映画詳細、レコメンドページ、個人センター、管理バックエンド
2. まずページ構造とモックデータのみを生成し、実際のインターフェースには接続しない
3. 授業のデモではなく、実際のコンテンツ製品のようなスタイルにする

2.2 プロジェクト構造の検証

項目ごとにチェック:

  • [ ] 映画リストページで検索とフィルタリングがサポートされている
  • [ ] 映画詳細ページに評価とお気に入りボタンがある
  • [ ] レコメンドページでレコメンド結果とレコメンド理由が表示できる
  • [ ] 管理バックエンドで映画データとレコメンド効果が確認できる

第 3 部:反復開発

3.1 モジュールごとに進める

  1. Spring Boot プロジェクト構築:プロジェクト構造、データベース設定、基本 CRUD
  2. 映画データ管理:映画リスト、詳細、検索インターフェース
  3. ユーザー行動:評価、お気に入りインターフェース、行動データ書き込み
  4. レコメンドロジック:ユーザー行動に基づくレコメンドアルゴリズムの実装
  5. レコメンド表示:レコメンド結果の表示、レコメンド理由を含む
  6. 管理バックエンド:映画データのメンテナンス、レコメンド効果の確認

3.2 モジュール自己チェック

チェック項目検証方法
基本機能リスト、詳細、評価、お気に入りのクロージャが完了しているか
レコメンド連動ユーザー行動がレコメンド結果に影響しているか
レコメンド説明可能性ユーザーがなぜこれらの映画をレコメンドされたか理解できるか
管理データ管理者が映画データとレコメンド効果を確認できるか

第 4 部:結合テストとリリース

4.1 エンドツーエンドテスト

少なくとも以下のシナリオを検証:

  • 映画を閲覧 → 評価 → お気に入り → レコメンドページを確認し、レコメンド結果が変化したことを確認
  • 管理者ログイン → 映画を追加 → レコメンド効果統計を確認

提出物

本プロジェクト完了後、以下の内容を提出する必要があります:

  • [ ] アクセス可能なオンラインデモリンク
  • [ ] ソースコードリポジトリリンク(README を含む)
  • [ ] PRD 文書
  • [ ] コアページのスクリーンショット(映画リスト、映画詳細、レコメンドページ、管理バックエンド)
  • [ ] 60 秒のデモ動画

評価基準

項目基本要件応用要件
PRD 整合性ページ、機能、データ構造が基本的に PRD に適合設計決定を明確に説明できる
製品クロージャ閲覧 → 評価 → お気に入り → レコメンドが動作する評価行動がレコメンド結果に明確に影響する
レコメンド品質レコメンド結果が合理的で、理由が説明可能複数のレコメンド戦略をサポート
管理機能映画データとレコメンド効果が確認可能レコメンド精度などの統計指標がある
エンジニアリング完成度フロントエンド、Spring Boot バックエンド、データベースのパイプラインが接続されているレコメンドインターフェースにキャッシュやパフォーマンス最適化がある

参考資料