導入事例一覧へ戻る
EC・小売·株式会社ネットショップA·Cursor·期間: 3週間
ECサイトのAI生成コードを全面リファクタリング
Next.jsTypeScriptパフォーマンス改善DB最適化
課題
株式会社ネットショップAは、CursorのAIアシスタント機能を活用してECサイトを構築しました。リリース当初は問題なく動作していましたが、商品数が500点を超えたあたりから以下の問題が発生しました。
- 商品一覧ページの表示に8秒以上 かかるようになった
- 注文処理中にタイムアウトエラーが頻発
- 管理画面での商品更新が反映されるまで数分かかる
- サーバーのメモリ使用量が常時90%以上
診断結果
無料コード診断を実施したところ、以下の問題点が判明しました。
1. N+1クエリ問題
商品一覧の取得で、商品ごとにカテゴリ情報を個別クエリで取得していました。500商品で500回の追加クエリが発生し、レスポンスタイムが著しく悪化。
2. キャッシュ戦略の欠如
すべてのリクエストでデータベースに直接アクセスしており、キャッシュが一切実装されていませんでした。
3. 不適切なデータ構造
AIが生成した型定義が過度にネストされており、JSON のシリアライズ/デシリアライズで不要なオーバーヘッドが発生。
改善内容
| 改善項目 | 施策 | |---------|------| | DB クエリ | JOIN句による一括取得に変更、インデックス追加 | | キャッシュ | Redis を導入し、商品データを5分間キャッシュ | | 型定義 | フラットな構造にリファクタリング | | API設計 | ページネーション対応、不要なフィールドの除外 |
結果
- 商品一覧の表示時間: 8秒 → 0.3秒(96%改善)
- 注文処理のタイムアウト: 月30件 → 0件
- サーバーメモリ使用量: 90% → 45%
- 保守性スコア(SonarQube): D → A
「AIで素早く作れたのは良かったのですが、お客様が増えて問題が噴出しました。レスキューチームに入ってもらい、安心して運用できるサイトになりました。」 — 株式会社ネットショップA 代表取締役