iPhone에서 Google 로그인 (Local Metro server + Dev Build) - Part 5/7: Expo Router Setup

발행: (2026년 1월 15일 오전 10:52 GMT+9)
2 min read
원문: Dev.to

Source: Dev.to

빠른 요약!

1‑4단계에서 우리는 다음을 수행했습니다:

  • 필요한 패키지 설치 – Step 1
  • Clerk 프로젝트 생성 – Step 2
  • Clerk API 키 추가 – Step 3
  • Google Cloud Console 생성 및 구성 – Step 4

라우트 설정

이번 단계에서는 Expo Router “Protected” 라우트(Expo Router SDK 53 이후 사용 가능)를 이용해 보호된 페이지를 가드합니다.
루트 레이아웃은 이제 ClerkProvider 로 앱을 감쌉니다.

ClerkProvider가 포함된 루트 레이아웃

// _layout.tsx
export default function RootLayout() {
  const publishableKey =
    process.env.EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY ??
    EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY;

  if (!publishableKey) {
    throw new Error(
      "Missing EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY. Set it in your .env (see Clerk Expo quickstart) or in env.ts."
    );
  }

  return (
    
      
    
  );
}

보호된 화면이 포함된 네비게이션

// _layout.tsx
function RootLayoutNav() {
  const { isLoaded, isSignedIn } = useAuth();
  const isLoggedIn = isLoaded && isSignedIn;

  return (
    
      {/* Only available when NOT logged in */}
      
        
      

      {/* Only available when logged in */}
      
        
      

      {/* Public screens */}
      
    
  );
}

필요한 import

// _layout.tsx
import { ClerkProvider, useAuth } from "@clerk/clerk-expo";
import { tokenCache } from "@clerk/clerk-expo/token-cache";
import { Stack } from "expo-router";
import { EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY } from "../env";

디렉터리 구조

(자세한 내용은 Introduction 참고.)

OAuth Prototype App Directory structure

참고

Expo Router 보호 라우트에 대한 자세한 내용은: Expo Router – Protected routes

Back to Blog

관련 글

더 보기 »