AI를 사용해 OAuth를 해결하는 방법 (정신을 잃지 않고)
Source: Dev.to
OAuth는 무섭게 보일 수 있습니다—불가능해서가 아니라 한 번에 너무 많은 변수가 바뀌기 때문이죠: 대시보드, SDK, 리다이렉트, 그리고 모호한 오류 메시지들.
React Native + Expo와 함께 작업할 때는 딥 링크와 환경 차이 때문에 복잡성이 두 배가 됩니다. 저는 AI를 잡음이 아니라 고수준 페어 프로그래머로 전환시키는 워크플로우를 다듬었습니다.
1. 코드를 건드리기 전에 아키텍처를 매핑하기
AI에게 “Redirect URI” 오류를 어떻게 고치냐고 묻기 전에, 누가 누구와 통신하고 있는지 이해하세요. 모바일 흐름에서 OAuth를 릴레이 경주에 비유해 보면 도움이 됩니다:
- 앱: 요청을 시작합니다.
- 브로커 (예: Clerk/Supabase): 로직을 조정합니다.
- 아이덴티티 제공자 (예: Google/GitHub): 사용자를 검증합니다.
- 키체인: 결과 토큰을 안전하게 저장합니다.
프로 팁: 흐름을 릴레이로 시각화하면 실제 문제는 대시보드의 “핸드쉐이크” 설정이라는 것을 알게 되어 “앱 버그”를 찾는 데 시간을 낭비하지 않게 됩니다.
2. AI에게 “전체 컨텍스트” 제공하기 (개발자 프롬프트)
AI가 여러분의 스택을 안다고 가정하지 마세요. OAuth는 라이브러리 버전마다 다르게 동작합니다. 항상 포함하세요:
- 핵심 스택: 라이브러리 이름 + 버전 (예:
expo-auth-sessionv8.x). - 라우팅 전략: Expo Router vs. React Navigation.
- 환경: iOS 시뮬레이터 vs. 실제 디바이스.
- 빌드 타입: Development Client vs. Expo Go vs. Production build.
프롬프트 예시 시작
“저는 Clerk를 사용한 Expo Router 앱을 만들고 있습니다. 물리 iOS 디바이스에서 Development Build로 테스트하고 있어요…”
3. 코드를 단순하게 유지하기
디버깅할 때 OAuth와 관계 없는 모든 것을 제거하세요. 복잡한 상태 관리(Redux/Zustand)는 건너뛰세요.
- 복잡한 네비게이션 가드를 제거합니다.
- 샌드박스 페이지 만들기: “Sign In” 버튼 하나와 결과를 로그로 남기는 페이지.
// sandbox.js
import React from 'react';
import { Button } from 'react-native';
import * as AuthSession from 'expo-auth-session';
export default function Sandbox() {
const handleSignIn = async () => {
const result = await AuthSession.startAsync({ /* …config… */ });
console.log('Auth result:', result);
};
return ;
}
4. 생태계‑특화 AI 활용하기
모든 LLM이 모든 작업에 동일하게 적합한 것은 아닙니다.
- Google Cloud / Firebase Console: Gemini 사용 – Google UI 라벨과 “Consent Screen” 특성을 학습했음.
- 코드 스니펫: GPT 또는 Claude 사용 – React Native의 훅 기반 패턴을 더 깔끔하게 따름.
5. “스크린샷 루프” 📸 사용하기
OAuth 오류 메시지는 종종 일반적입니다(예: “Error 400: invalid_request”). 실제 답은 여러분이 아직 보지 못한 대시보드 체크박스에 숨겨져 있습니다.
- 스크린샷을 찍어 대시보드 설정을 캡처합니다.
- AI에게 질문: “내 코드 기준으로 이 UI에 뭐가 빠졌나요?”
- 제안된 변경을 적용합니다.
- 다시 스크린샷을 찍고 AI에게 검증을 요청합니다.
6. 작은 단계로 진행하기 (15분 규칙)
OAuth는 개념적으로 무겁습니다. 제 규칙: 한 번에 하나씩 설정하고 멈추기.
Google, Apple, Facebook 로그인을 한 번에 모두 설정하려 하면 실패 원인을 절대 찾을 수 없습니다. 하나의 제공자를 작동시킨 뒤 짧은 휴식을 갖고, 다음으로 넘어가세요.
마무리 생각: AI는 증폭기
AI는 여러분의 이해를 대체하지 않으며, 오히려 증폭시킵니다. 깨끗한 컨텍스트, 격리된 코드, 시각적 데이터(스크린샷)를 제공하면 AI는 강력한 디버깅 파트너가 됩니다.
OAuth가 불가능하게 느껴졌다면, 그것은 여러분이 아니라 복잡성 때문일 가능성이 높습니다. 여기서 소개한 도구와 워크플로우를 사용하면 미로를 빠져나와 정상적으로 동작시킬 수 있었습니다.