AIコーディングツールは、フルスタック開発を本質的に高速化します。
ただし、構造化されたワークフローが必須であり、ただプロンプトを投げるだけではうまくいきません。
このガイドでは、CursorとReplit Agentを使って実務レベルのCRUDアプリを
ゼロから作成する完全ワークフローを公開します。
AIの得意分野・苦手分界、そして本当に機能する手法を解説します。
目次
重要ポイントまとめ
・AIコーディングツールはフルスタック開発を加速させるが、構造化された利用が必須
・Replit Agentはスケルトン作成に最適。10分程度で実行可能な状態を生成
・Cursor Agentは明確なスコープのタスクで圧倒的に効率的
・AIが苦手:複雑な状態管理、認証のエッジケース、ドメイン知識が必要なロジック
・最終的な20%(エラーハンドリング・セキュリティ・エッジケース)は人間のレビューが必須
制作プロジェクト:タスク管理CRUDアプリ
今回作成するのは、基本的ながらフルスタックの要素をすべて含むタスク管理アプリです。
フロントエンド・バックエンドAPI・データベース・認証を網羅します。
仕様
・ユーザー認証(登録・ログイン・ログアウト) ・タスクの作成・表示・更新・削除 ・タイトル・説明・締切日・ステータスのフィールド ・ユーザーごとに自身のタスクのみ表示 ・Reactフロントエンド + Node.js/Expressバックエンド + PostgreSQL
・ユーザー認証(登録・ログイン・ログアウト) ・タスクの作成・表示・更新・削除 ・タイトル・説明・締切日・ステータスのフィールド ・ユーザーごとに自身のタスクのみ表示 ・Reactフロントエンド + Node.js/Expressバックエンド + PostgreSQL
フェーズ1:Replit Agentで高速スキャフォールド
デモ動画では「一文でアプリが完成」と見せかけますが、実際にはその後の問題が省略されています。
このガイドでは、AIが失敗する部分も含めて完全に解説します。
使用プロンプト
「ReactフロントエンドとNode.js/Expressバックエンドでフルスタックなタスク管理アプリを作成してください。 PostgreSQLを使用し、JWTによるユーザー認証を実装してください。 タスクはタイトル(必須)、説明(任意)、締切日、ステータス(todo/in-progress/done)を持ちます。 データベーススキーマ、APIルート、シンプルなReact UIを作成してください。」
「ReactフロントエンドとNode.js/Expressバックエンドでフルスタックなタスク管理アプリを作成してください。 PostgreSQLを使用し、JWTによるユーザー認証を実装してください。 タスクはタイトル(必須)、説明(任意)、締切日、ステータス(todo/in-progress/done)を持ちます。 データベーススキーマ、APIルート、シンプルなReact UIを作成してください。」
12分で生成された成果
・実行可能なExpressAPI(/auth /tasks) ・usersとtasksテーブルを持つPostgreSQLスキーマ ・ログインフォームとタスクリストのReactフロントエンド ・JWT認証機能
・実行可能なExpressAPI(/auth /tasks) ・usersとtasksテーブルを持つPostgreSQLスキーマ ・ログインフォームとタスクリストのReactフロントエンド ・JWT認証機能
即時修正が必要な問題点
・JWTシークレットがハードコードされている(重大なセキュリティ欠陥) ・タスクエンドポイントに入力バリデーションがない ・Reactの状態管理が複雑化
・JWTシークレットがハードコードされている(重大なセキュリティ欠陥) ・タスクエンドポイントに入力バリデーションがない ・Reactの状態管理が複雑化
セキュリティ修正はスキップできません。
認証コードは必ずAIまたは人間がレビューしてください。
フェーズ2:ローカル開発環境へ移行
Replitからコードをエクスポートし、gitリポジトリを初期化、
ローカルのPostgreSQLを設定します。
AIが本当に役立つ場面:環境設定ファイルの作成
Cursorに以下を指示し、env.exampleと起動スクリプトを生成させます。 「このプロジェクトの必須環境変数を文書化した.env.exampleを作成してください。 DATABASE_URL、JWT_SECRET、PORT、NODE_ENVを含め、 起動前に必須変数の存在を確認するスクリプトも作成してください。」
Cursorに以下を指示し、env.exampleと起動スクリプトを生成させます。 「このプロジェクトの必須環境変数を文書化した.env.exampleを作成してください。 DATABASE_URL、JWT_SECRET、PORT、NODE_ENVを含め、 起動前に必須変数の存在を確認するスクリプトも作成してください。」
フェーズ3:Cursor Agentで機能実装
オープンな依頼ではなく、明確でスコープを絞った指示を出すことが重要です。
悪いプロンプト vs 良いプロンプト
❌ 悪い例
タスクリストにフィルターとソートを追加✅ 良い例
タスクリストに3つのフィルターを追加:ステータス、締切日、文字検索。 ソート:締切日と作成日。 バックエンドAPIにクエリパラメータを追加し、Reactコンポーネントを更新してください。
Cursorが得意なこと
・明確な仕様の機能実装 ・標準パターンのデータベースクエリ ・既存コード構造に沿ったエンドポイント追加 ・既存スタイルに合わせたReactコンポーネント
・明確な仕様の機能実装 ・標準パターンのデータベースクエリ ・既存コード構造に沿ったエンドポイント追加 ・既存スタイルに合わせたReactコンポーネント
Cursorが苦手なこと
・複雑な状態管理 ・リアルタイム更新時の競合状態 ・暗黙的なビジネスロジックの考慮
・複雑な状態管理 ・リアルタイム更新時の競合状態 ・暗黙的なビジネスロジックの考慮
フェーズ4:AI支援でテスト作成
AIによってテスト作成時間が大幅に短縮されます。
プロンプト例
「Jestとsupertestを使ってタスクAPIのユニットテストを作成してください。 作成、取得、更新、削除の各ケース(正常・異常)を網羅し、 テスト用データベースを使用してください。」
「Jestとsupertestを使ってタスクAPIのユニットテストを作成してください。 作成、取得、更新、削除の各ケース(正常・異常)を網羅し、 テスト用データベースを使用してください。」
23のテストを自動生成。19個が初回から合格。
残り4個は設定・データ不備によるもので、すぐに修正可能。
フェーズ5:AIが苦手な部分
人間の介入が必須な項目
・エラーハンドリング:アプリ固有のエッジケース ・パフォーマンス:インデックスの必要性をAIは自発的に指摘しない ・セキュリティ:権限チェック・情報漏洩・詳細なエラーメッセージ ・ビジネスロジック:複雑な状態遷移や重複処理
・エラーハンドリング:アプリ固有のエッジケース ・パフォーマンス:インデックスの必要性をAIは自発的に指摘しない ・セキュリティ:権限チェック・情報漏洩・詳細なエラーメッセージ ・ビジネスロジック:複雑な状態遷移や重複処理
本当に機能するワークフロー
1. Replit Agentでスケルトンを10分で作成
2. 即時セキュリティレビュー
3. ローカル環境に移行
4. Cursorでスコープを絞った機能開発
5. AIでテスト自動生成
6. セキュリティ・パフォーマンス・エッジケースを手動レビュー
7. デプロイと監視
通常10~12時間かかる作業が、AI活用で約4時間に短縮。
AIが約60%の実装作業を担当し、人間は判断と修正に集中可能。
使用ツール
・Replit Agent:初期スケルトン作成
・Cursor:本開発・機能実装
・Node.js / Express:バックエンド
・React:フロントエンド
・PostgreSQL:データベース
よくある質問(FAQ)
AIだけで本番環境のアプリを作れますか?
機能的に完成させることはできますが、セキュリティ・エラーハンドリング・エッジケースを含めた本番品質にするには、開発者のレビューと修正が必須です。
フルスタック開発に最適なAIツールは?
初期スケルトンはReplit Agent、実開発はCursorが最も効率的です。テストや定型コードはどのAIツールでも効果的に活用できます。
AIによるセキュリティ脆弱性を防ぐには?
認証・権限管理・入力バリデーションは必ずレビューしてください。SQLクエリ・セッション管理・APIキー・CORS設定も同様です。
