1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

# AIデバッグ対決:なぜClaude Opus 4.5はGemini 3.0が解けなかった問題を10分で解決できたのか

Last updated at Posted at 2025-11-24

🎯 概要

Next.js 15 + Supabase認証の実装で発生した401 Unauthorizedエラー。Gemini 3.0と3時間格闘して解決できなかった問題を、Claude Opus 4.5は10分で解決した。その違いは何だったのか?実際のデバッグプロセスを比較分析する。

🐛 問題の内容

症状:Google OAuth認証は成功するが、独自セッションCookieが作成されず無限ループ
原因:sessionsテーブルが存在しなかった(初歩的なミス)
解決時間:Gemini 3時間 vs Claude 10分

📊 アプローチの違い

Gemini 3.0のアプローチ(うまくいかなかった)

// Geminiが提案した解決策の優先順位
1. Cookie処理の修正Next.js 15の非同期問題
2. DB接続タイムアウトの調整
3. 環境変数の再設定
4. ライブラリの変更pg  @neondatabase/serverless

特徴: 複雑な技術的問題から疑い始めた

Claude Opus 4.5のアプローチ(成功した)

// Claudeが実装した段階的デバッグ
console.log('[Auth] Step 1: OAuth exchange...');
console.log('[Auth] Step 2: User save...');
console.log('[Auth] Step 3: Session creation...'); // ← ここで失敗を特定
console.error('[Auth] Full error:', JSON.stringify(error, null, 2));

特徴: エラーの詳細を完全に可視化することを最優先

🔍 決定的な違い:5つのポイント

1. エラーメッセージへの執着度

Gemini:

} catch (error) {
  console.error('Error:', error.message);
  // メッセージの一部だけを見る
}

Claude:

} catch (error: any) {
  console.error('[詳細]', {
    message: error.message,
    code: error.code,
    details: error,  // ← オブジェクト全体を出力
    stack: error.stack
  });
}

2. デバッグの粒度

Gemini: 大きな単位で問題を推測

  • 「Cookie処理全体に問題がある」
  • 「DB接続全体がタイムアウト」

Claude: 細かいステップで問題を特定

  • 「Step 1: OAuth → 成功」
  • 「Step 2: User保存 → 成功」
  • 「Step 3: Session作成 → 失敗(ここだ!)」

3. 仮説の立て方

Gemini: 統計的に頻出する問題から推論

Next.js 15 + Cookie → よくある非同期問題だろう
Vercel + Supabase → 接続タイムアウトだろう

Claude: 事実ベースで仮説を絞り込む

1. どこで失敗? → Session作成
2. エラーコードは? → PGRST205
3. メッセージは? → "table not found"
4. 結論 → テーブルが存在しない

4. 基本確認のタイミング

Gemini: 複雑な解決策を試した後に基本を確認
Claude: 最初から「テーブルは存在するか?」も選択肢に含める

5. ユーザーへの指示の明確さ

Gemini:

「環境変数を確認してください」
「接続設定を変更してみてください」

Claude:

// 具体的なコードを提供
console.error('[Auth Callback] Error details:', {
  message: error.message,
  code: error.code,
  details: error  // ← これを必ず追加してください
});

💡 学んだこと

デバッグの黄金則

  1. エラーメッセージを完全に読む

    • error.messageだけでなく、エラーオブジェクト全体を確認
    • 特にSupabaseのcodeフィールドは重要
  2. 段階的ログは必須

   // 悪い例
   try {
     // 100行の処理
   } catch (e) {
     console.log("エラー");
   }

   // 良い例
   console.log('Step 1...');
   // 処理
   console.log('Step 2...');
   // 処理
   console.log('Step 3...');
  1. 基本から確認
    • テーブルは存在する?
    • 権限はある?
    • 接続できている?

🎯 結論

Claude Opus 4.5が優れていた点:

  1. エラーメッセージへの徹底的なこだわり
  2. 段階的デバッグの即座の実装
  3. 基本的な確認を後回しにしない

最も重要な違いは、「推測」より「観察」を優先したことでした。

Gemini: こうだろう → 確認 → 違った → 次の推測
Claude: 詳細ログ → 事実確認 → 原因特定 → 解決

どちらのAIも優秀ですが、デバッグにおいては仮説駆動より事実駆動のアプローチが効果的だということが証明されました。


タグ

#Claude #Gemini #AI比較 #デバッグ #Next.js #Supabase

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?