境界決定

目的:システムをどのような責務単位に分割するかを定義する。 「何がどこに属するか」を明確にすることで、④UML・⑥技術選定・⑦実装の設計判断の根拠とする。


1. システム全体の境界図


📐 FigJam で閲覧・編集

https://www.figma.com/online-whiteboard/create-diagram/5539c88f-e618-456d-85c1-69d746746c24

2. 責務の定義

フロントエンド

責務 説明
画面描画・ルーティング ページ遷移・各画面のレンダリング
ペルソナ選択UI ユーザーがペルソナを選択・確認できるインターフェース(選択は任意。未選択時はランダム自動選択される旨を表示)
複数カラム回答表示 選択されたペルソナ数に応じたカラムレイアウトの制御
ストリーミング表示 バックエンドからの逐次レスポンスをリアルタイムに表示
認証状態の管理 ゲスト/ログインユーザーに応じた表示・操作の分岐
バリデーション 質問入力の文字数制限など、最低限のフロント側チェック

フロントエンドが持たないもの


バックエンド

責務 説明
認証・認可 認証基盤と連携し、ゲスト/ログインユーザーを識別。ログイン必須エンドポイントの保護
レート制限 User単位でのリクエスト回数を管理し、上限超過時はエラーを返す
LLM APIの呼び出し ペルソナのシステムプロンプトとQuestionを組み立て、複数ペルソナ分を並列リクエスト(Groq API経由)
APIキー管理 Groq APIキーをサーバー内の環境変数で管理。フロントエンドには一切公開しない
ペルソナ管理 PresetPersonaの定義管理・CustomPersonaのCRUD
データ永続化 CustomPersonaのCRUD・RateLimitの管理(ログインユーザーのみ)。チャット履歴はDBに保存しない
ストリーミング制御 Groqのストリーミングレスポンスをフロントエンドに中継

バックエンドが持たないもの