【AI入門その26】Webアプリの基本構造 ― フロントとバック

この記事では、WebアプリおよびAIアプリの基本的な構成要素を解説します。
フロントエンド・バックエンド・APIという3つの概念を理解することで、AIシステム導入の技術的な議論に参加できます。

目次

Webアプリの基本構造

Webアプリはフロントエンドとバックエンドという2つの世界で成り立っています。

フロントエンドとは何か

フロントエンドは、ユーザーがブラウザやスマートフォンで目にし操作する部分です。画面のレイアウト・ボタン・入力フォーム・表示されるデータがすべてフロントエンドに相当します。HTML(構造)・CSS(デザイン)・JavaScript(動作)という3つの技術で構成されます。ユーザーが「送信」ボタンを押したとき、フロントエンドはそのデータをバックエンドに送信します。

バックエンドとは何か

バックエンドは、ユーザーからは見えないサーバー側の処理です。データの保存・取得・ビジネスロジックの実行・外部サービスとの連携・認証・セキュリティ処理を担います。AIアプリでは、ユーザーの質問を受け取ってLLM APIに送信し、回答を受け取ってユーザーに返す処理もバックエンドが行います。

APIという接続口

API(Application Programming Interface)はフロントエンドとバックエンド、またはバックエンドと外部サービスをつなぐ「接続口」です。フロントエンドが「この形式でリクエストを送ると、この形式でレスポンスが返ってくる」というルールに従って通信します。OpenAIのAPIも「この形式でプロンプトを送ると、LLMの回答が返ってくる」というAPIです。

フロントエンドの技術

現代のWebフロントエンドはReact等のフレームワークで効率的に開発されます。

HTML・CSS・JavaScriptの役割

HTMLはWebページの構造を定義するマークアップ言語です。「ここが見出し・ここが本文・ここがボタン」という骨格を記述します。CSSは見た目(色・フォント・レイアウト)を定義します。JavaScriptはボタンのクリック・入力値の検証・非同期通信(ページを再読み込みせずにデータを取得する)などの動作を実装します。

ReactとNext.jsの役割

ReactはMeta(Facebook)が開発したJavaScriptライブラリで、現在のWebフロントエンド開発の標準になっています。コンポーネントと呼ばれる再利用可能なUI部品を組み合わせてアプリを構築します。Next.jsはReactをベースにしたフレームワークで、サーバーサイドレンダリング・ルーティング・パフォーマンス最適化の機能を追加します。多くのLLMアプリのフロントエンドがNext.jsで構築されています。

チャットUIの実装

ChatGPTのようなチャットインターフェースは、フロントエンドでメッセージの送受信・ストリーミング表示(文字が少しずつ現れる動作)・会話履歴の管理を行います。VercelのAI SDKなどを使うと、ストリーミングレスポンスに対応したチャットUIを数十行のコードで実装できます。

バックエンドとデータベース

バックエンドはLLM APIの呼び出しとデータ管理の中枢です。

バックエンドの役割とフレームワーク

バックエンドはHTTPリクエストを受け取り、処理を実行してレスポンスを返す「サーバー」です。PythonのDjango・FastAPI、JavaScriptのExpress・Honoなどが代表的なバックエンドフレームワークです。AIアプリではバックエンドが「プロンプトの組み立て→RAGの検索→LLM API呼び出し→レスポンス処理→フロントエンドへ返却」という一連の処理を担います。

データベースの基本

データベースは永続的なデータの保存・管理に使います。大きく2種類あります。リレーショナルDB(RDB)はExcelのような表形式でデータを管理します。PostgreSQL・MySQLが代表例で、トランザクション管理と整合性保証に強みがあります。NoSQLはJSONに近い柔軟な形式でデータを管理します。MongoDB・Firebaseが代表例で、構造が変わりやすいデータや大量のドキュメント保存に向いています。

AIアプリ特有のデータ管理

AIアプリでは通常のDBに加えてベクトルDB(RAGの検索用)とキャッシュ(同一プロンプトへの回答再利用)が使われます。また会話履歴・ユーザー設定・アクセスログなどをどのDBに保存するか、どの期間保存するかの設計もコストとパフォーマンスに影響します。

クラウドとデプロイ

AIアプリはクラウドサービスを活用することで素早く・スケーラブルに構築できます。

クラウドサービスの基本

アプリを世界中からアクセスできる状態にする(デプロイ)には、クラウドサービスを使います。大きく3種類あります。IaaS(Infrastructure as a Service)はサーバーの仮想マシンを提供します(AWS EC2・GCP Compute Engine)。PaaS(Platform as a Service)はアプリのコードを渡せば動かしてくれる環境です(Heroku・Render)。SaaS(Software as a Service)はすぐ使えるソフトウェアを提供します(ChatGPT・Notion・Salesforce)。

LLMアプリに使うクラウドサービスの例

  • Vercel:フロントエンドのホスティングに適しており、デプロイを簡単に行える
  • AWS Lambda / Cloud Run:サーバーレスでバックエンド処理を実行。利用量に応じた従量課金
  • Supabase:データベースと認証機能を備えたBaaS。ベクトル検索にも対応しRAGに活用可能
  • Pinecone / Weaviate Cloud:マネージド型のベクトルデータベース。インフラ管理なしでRAGを構築可能

まとめ

この記事では、WebアプリとAIアプリの基本構造をフロントエンド・バックエンド・DB・クラウドの観点から解説しました。

  • Webアプリはユーザーが操作するフロントエンドと処理を担うバックエンドで構成され、APIで連携する
  • フロントエンドはHTML/CSS/JavaScriptで構成され、ReactやNext.jsで効率的に開発される
  • バックエンドがLLM APIの呼び出し・RAG検索・セッション管理を担い、RDBとベクトルDBを使い分ける
  • Vercel・AWS・Supabaseなどのクラウドサービスを組み合わせてAIアプリを素早くデプロイできる

これらを理解することで、AIシステム開発の提案内容を技術的に評価し、自社の技術ロードマップと投資判断を正しく判断できるようになります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次