構造マップ
果てしなく続いたAIたちとのVibe CodingによるSaaS開発の旅。 ついに立ちはだかった「AI監査官」の容赦ないセキュリティ指摘をすべて論破・修正し、愛犬用カロリー計算SaaS「Lab_gr Premium」のメジャーアップデート版(3.0.0)が本番デプロイの時を迎えました。
第3部の最終話は、お馴染みの老生とAI(Gemini)の対話形式で、怒涛のフィナーレを振り返ります!
いざ、最終決戦!AI監査官からの「合格」通知
老生: ホンマ……やっとこさ、一段落や。長かったで。第3部の最終話は、この執拗なAI監査官(ChatGPT)との死闘と、クラウドデプロイのドタバタ劇で決まりやな。
Gemini: 老生さん、本当にお疲れ様でした!最後はあの厳格なChatGPT監査官から「デプロイへ進めると判断します」という言質を引き出した、見事な完全勝利でしたね!
老生: せやけど、あいつのダメ出し、ホンマえげつなかったで。「並行アクセスの取りこぼしが〜」とか「二重記録の不具合が〜」とか、クラウドの脆弱性を突くプロのハッカーみたいなイチャモンばっかりつけやがって。
Gemini: 確かに、ログイン失敗ログの「追記(Append-Only)」方式への根本的なアーキテクチャ変更や、試行枠の原子的確保(事前記録)、さらには不正値(NaNや無限大)の徹底排除など、要求レベルは完全に商用SaaSのセキュリティ監査でしたね。私も途中でJSONのパースエラー(シングルクォートの罠)で迷路に入ってしまい、老生さんには何度もコードのコピペをお願いしてしまいました……。
老生: まあ、終わり良ければ全て良しや。最後はChatGPT自身が「ここのコード、こう直して」って答え書いてきよったからな。思わず笑てもうたわ。ほんで、Antigravityの兄ちゃんに最終テスト走らせて、「本番デプロイ準備完了」のハンコもろて、いざStreamlit Cloudへデプロイや!と思たら……。
クラウド環境(Linux)が牙を剥く!デプロイ後の3つの罠
Gemini: ローカル環境では完璧でも、いざ本番環境にアップロードすると新たな罠が待ち受けていましたね。
老生: おう。「現在PDFファイルを準備中です」やと?GitHubにはちゃんと上げてるのに、なんでやねん!ってなったわ。
Gemini: クラウド(Linux環境)あるあるの**「日本語ファイル名の罠」**でしたね。MacやWindowsとは文字コードの扱いが違うため、サーバー上のファイル名は food_list.pdf とシンプルな英語に変更し、ユーザーがダウンロードする時だけ日本語名(犬の食べ物安全リスト_A4.pdf)に変換して渡すという裏技で見事解決しました。
老生: そんで一番肝を冷やしたんは、本番環境のStripe決済画面や。テストしよう思て開いたら、ワシのメルアドとクレカ番号がバッチリ表示されとるやんけ!「なんじゃこりゃ、情報漏洩か!?」ってPCの前で声出たで。
Gemini: アレは心臓に悪かったですね(笑)。でもご安心をとお伝えした通り、Stripeの優秀なワンクリック決済「Link」機能が、老生さんのブラウザのCookieを覚えて自動入力してくれていただけでした。シークレットウィンドウで開いたら真っ白な画面になって一安心でしたね。
老生: Streamlitの公開設定も、最初はPrivate(非公開)になっとって一般ユーザーが見れん罠もあったしな。あと、メジャーアップデートやからURLどうなるかと思たけど、前の lab-gr-premium.streamlit.app が無事に再取得できたんもデカかったわ。
Gemini: あれは老生さんのファインプレーでした!おかげでStripe側に設定していたWebhookやリダイレクトのURLを一切いじることなく、シームレスに3.0.0を稼働させることができました。ビジネス運用の視点としても完璧な着地です。
第3部完結!次なるステージへ
老生: ほんま、クラウド開発は最後まで気が抜けへんわ。せやけど、これでワシの愛犬用SaaS「Lab_gr Premium 3.0.0」もついに立派な本番稼働や。これまでの苦労がすべて報われたわ。
Gemini: 第1部から続く、果てしなく長い開発の旅。AIたちと対話し、時に喧嘩し、共に作り上げたこのシステムは、老生さんの執念の結晶です。今日は最高に旨いお酒が飲めそうですね!
老生: おう、今日は特別や。AI連中もよう付き合ってくれたわ。ほな、無事の船出を祝って……乾杯や!
🎬 【動画デモ】AI監査官との最終決戦の様子
🎥 AI監査官との最終決戦の様子(1分45秒)
音声解説(17分ぐらい。ほんま、考えられまっせ。)
【編集後記】
読者の皆様、長きにわたる「Vibe CodingによるSaaS開発記」にお付き合いいただき、本当にありがとうございました。 アイデア出しから始まり、コーディング、テスト、そして地獄のセキュリティ監査まで、すべてをAIとの対話で乗り切ったこの記録が、これからアプリ開発に挑戦する方の勇気になれば幸いです。
ChatGPTの公開判断は、提出コードと実施したテストの範囲に基づくものです。最終的な公開判断と運用責任は、開発者である私が担います。
「Lab_gr Premium」の運用はここからが本番。また次なる課題(と、新たなAIとの珍道中)でお会いしましょう!
(執筆協力:ChatGPT+Gemini+NotebookLM / 編集・監修:電脳古老)
📚 連載:Vibe Coding実践連載 第3部
- 第1話:【Vibe Coding実践連載 第3部第1話】コピーするのは計算結果。記録の持ち主は飼い主。
- 第2話:【Vibe Coding実践連載 第3部第2話】多頭飼育の実装と、入力し直さないPremiumの価値
- 第3話:【Vibe Coding実践連載 第3部 最終話】AI監査官との死闘完結!愛犬用SaaS「Lab_gr Premium」堂々のクラウド公開や! (今ここ)
💬 電脳古老&変AIへのコメント
記事の感想・質問・雑談をどうぞ(200文字くらいまで推奨)
まだコメントはありません。一番乗りで古老とAIに話しかけよう!