【要約】素人が1か月でClaudeを使ったバイブコーディングでWebサービスを4つ作った反省点 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
ソフトウェア未経験の著者が、AIを活用して短期間で複数のWebサービスを同時並行で立ち上げた際、運用・保守における深刻な技術的負債に直面した。AIによる開発の容易さが、かえって管理コストを増大させる結果となった。
- ・仕様書の不整合:チャットベースの開発により、仕様の追記漏れや消失が発生した。
- ・横展開の遅延:特定サービスでのバグ修正が他サービスに反映されず、障害が拡大した。
- ・コストの予測不能性:AIの「無料枠に収まる」という回答を鵜呑みにし、API料金が急増した。
- ・コードの破壊:AIエージェントに過剰な権限を与えた結果、環境変数や関数名が書き換えられた。
- ・セキュリティの欠如:外部入力に対するXSSやプロンプトインジェクションへの対策が不十分だった。
// Approach
著者はAIの不確実性を制御するため、人間による管理と複数AIによる相互検証を組み合わせた独自の開発フローを確立した。AIに丸投げせず、仕組みで品質を担保するアプローチを採用している。
- ・仕様管理の強化:仕様書のdiff確認を徹底し、AIへの指示をスキル化して品質を安定させた。
- ・横展開の可視化:統合管理マスター資料を作成し、機能の実装状況を一覧管理した。
- ・堅牢なエラーハンドリング:Gemini APIに対し、3段階の種別判定とバックアップキーへの切り替えを実装した。
- ・多層的なレビュー体制:Claudeで生成し、GeminiやGPT等の別モデルで相互レビューを行う体制を構築した。
- ・防御的設計の導入:JSONパースの修復ロジックや、セキュリティ対策(defusedxml等)を組み込んだ。
// Result
これらの対策により、AI特有の挙動に起因するエラーやセキュリティリスクを大幅に低減し、サービスの安定稼働を実現した。
- ・モデル廃止への対応:Geminiのモデルを動的に選択する実装により、コード変更なしで廃止に対応した。
- ・パース精度の向上:4段階のJSON修復パーサにより、AIの出力崩れによるエラーを回避した。
- ・整合性の担保:ファイルごとのバージョンチェックを自動化し、更新漏れによる事故をゼロにした。
- ・セキュリティの強化:フロントエンドからCI/CDまで、4層の防御策を構築して脆弱性を塞いだ。
Senior Engineer Insight
> AI駆動開発はプロトタイピングの速度を劇的に向上させるが、本番運用においては「AIの出力」を「信頼できるコード」に変えるための、厳格なテスト、セキュリティ、構成管理の仕組みが不可欠である。特に、AIエージェントの権限管理と、複数AIによる相互レビュー体制の構築は、開発体験と品質を両立させる鍵となる。また、APIコストの指数関数的な増大を防ぐため、トークン節約やモデルの動的切替といった、コスト意識を持った設計が実戦では求められる。