Introduction

Setup

이 νŽ˜μ΄μ§€μ—μ„œλŠ” Supaplateλ₯Ό μ‹€ν–‰ν•˜λŠ” 데 ν•„μš”ν•œ μ΅œμ†Œν•œμ˜ μ„€μ • 방법을 λ°°μ›λ‹ˆλ‹€.

λŒ€λΆ€λΆ„μ˜ κΈ°λŠ₯은 기본적으둜 λΉ„ν™œμ„±ν™”λ˜μ–΄ 있으며, 이후 νŽ˜μ΄μ§€μ—μ„œ 각 κΈ°λŠ₯을 ν•˜λ‚˜μ”© ν™œμ„±ν™”ν•˜κ³  μ΄ν•΄ν•˜λŠ” 과정을 λ‹€λ£Ήλ‹ˆλ‹€.


μš”κ΅¬ 사항

  • Node.js 20.x 이상
  • Git
  • μ½”λ“œ 에디터 (VSCode, Cursor, etc)

μ‹œμž‘ν•˜κΈ°

ν”„λ‘œμ νŠΈ μ••μΆ• ν’€κΈ°

λ‹€μš΄λ‘œλ“œν•œ .zip 파일의 압좕을 ν’€κ³  μ½”λ“œ μ—λ””ν„°μ—μ„œ 폴더λ₯Ό μ—½λ‹ˆλ‹€.

μ˜μ‘΄μ„± μ„€μΉ˜

cd <your-project-name>
npm install

ν™˜κ²½ λ³€μˆ˜

SupaplateλŠ” ν™˜κ²½ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 앱을 κ΅¬μ„±ν•˜λ©°, '.env.example'λΌλŠ” 예제 파일이 ν•¨κ»˜ μ œκ³΅λ˜λ―€λ‘œ 이 파일의 이름을 '.env'둜 λ³€κ²½ν•΄μ•Ό ν•©λ‹ˆλ‹€.

Linux/MacOS

mv .env.example .env

Windows (PowerShell)

ren .env.example .env

개발 μ„œλ²„λ₯Ό μ‹€ν–‰ν•˜κΈ° 전에 '.env' νŒŒμΌμ—μ„œ ν•„μš”ν•œ ν™˜κ²½ λ³€μˆ˜λ₯Ό μ„€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€. κ·Έλ ‡μ§€ μ•ŠμœΌλ©΄ λ‹€μŒκ³Ό 같은 μ—λŸ¬κ°€ λ°œμƒν•©λ‹ˆλ‹€:

Internal server error: supabaseUrl is required.
Error: Missing Supabase environment variables

Supabase Setup

URL κ³Ό Keys

Supabase에 λ‘œκ·ΈμΈν•œ ν›„ μƒˆ ν”„λ‘œμ νŠΈλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.

κ°•λ ₯ν•œ λ°μ΄ν„°λ² μ΄μŠ€ λΉ„λ°€λ²ˆν˜Έλ₯Ό μ„€μ •ν•œ ν›„ λ‚˜μ€‘μ— λ‹€μ‹œ λ³Ό 수 없도둝 μ•ˆμ „ν•œ 곳에 기둝해 λ‘μ„Έμš”. 이후 λ‹€μ‹œ 확인할 수 μ—†μŠ΅λ‹ˆλ‹€.

λ˜ν•œ μœ μ €μ—κ²Œ κ°€μž₯ κ°€κΉŒμš΄ 지역을 μ„ νƒν•˜μ„Έμš”.

ν”„λ‘œμ νŠΈκ°€ μƒμ„±λ˜λ©΄ ν”„λ‘œμ νŠΈ μ„€μ •μ˜ "Data API" μ„Ήμ…˜μœΌλ‘œ μ΄λ™ν•©λ‹ˆλ‹€.

ν”„λ‘œμ νŠΈ URL, anon public key 그리고 service role keyκ°€ ν‘œμ‹œλ©λ‹ˆλ‹€.

이λ₯Ό λͺ¨λ‘ λ³΅μ‚¬ν•˜μ—¬ '.env' νŒŒμΌμ— λΆ™μ—¬λ„£μŠ΅λ‹ˆλ‹€:

# example
SUPABASE_URL="https://your-project-url.supabase.co"
SUPABASE_ANON_KEY="your-anon-key"
SUPABASE_SERVICE_ROLE_KEY="your-service-role-key"

λ°μ΄ν„°λ² μ΄μŠ€ URL

Drizzle ORM을 μ‚¬μš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό κ΄€λ¦¬ν•˜λ €λ©΄ DATABASE_URL ν™˜κ²½ λ³€μˆ˜λ₯Ό μ„€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

Supabase ν”„λ‘œμ νŠΈμ˜ 상단 ν‘œμ‹œμ€„μ—μ„œ "Connect" λ²„νŠΌμ„ ν΄λ¦­ν•˜κ³  'Shared Pooler' μ„Ήμ…˜μ˜ URL을 λ³΅μ‚¬ν•˜μ—¬ '.env' νŒŒμΌμ— λΆ™μ—¬λ„£μŠ΅λ‹ˆλ‹€.

# example
DATABASE_URL="postgresql://postgres:your-database-password@your-project-region.pooler.supabase.co:5432/postgres"

λ°μ΄ν„°λ² μ΄μŠ€ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜(Migration) μ‹€ν–‰

λ°μ΄ν„°λ² μ΄μŠ€μ— μ„€μ • λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ„ μ μš©ν•˜λ €λ©΄ λ‹€μŒ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜μ„Έμš”:

npm run db:migrate

이 λͺ…λ Ήμ–΄λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ— profiles 및 payments ν…Œμ΄λΈ”μ„ μƒμ„±ν•˜κ³  μœ μ € 등둝을 μ²˜λ¦¬ν•˜λŠ” νŠΈλ¦¬κ±°μ™€ updated_at μ—΄ μ—…λ°μ΄νŠΈλ₯Ό μ²˜λ¦¬ν•˜λŠ” ν•¨μˆ˜λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.

이에 λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ λ°μ΄ν„°λ² μ΄μŠ€ μŠ€ν‚€λ§ˆ νŽ˜μ΄μ§€μ—μ„œ ν™•μΈν•˜μ„Έμš”.

Windows Users Only

Windowsλ₯Ό μ‚¬μš©ν•˜λŠ” 경우 터미널에 cross-env λͺ…령을 μ„€μΉ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.

npm install --save-dev cross-env

그런 λ‹€μŒ dev μŠ€ν¬λ¦½νŠΈμ—μ„œ cross-envλ₯Ό μ‚¬μš©ν•˜λ„λ‘ package.json νŒŒμΌμ„ μˆ˜μ •ν•©λ‹ˆλ‹€.

"dev":"cross-env NODE_OPTIONS='--import ./instrument.server.mjs' react-router dev",

개발 μ„œλ²„ μ‹€ν–‰

λͺ¨λ“  ν™˜κ²½ λ³€μˆ˜λ₯Ό μ„€μ •ν•œ ν›„ 개발 μ„œλ²„λ₯Ό μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

npm run dev

앱이 http://localhost:5173μ—μ„œ μ‹€ν–‰λ˜κ³ , ν™ˆ νŽ˜μ΄μ§€κ°€ ν‘œμ‹œλ˜λŠ” 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

ν”„λ‘œμ νŠΈλŠ” 아직 ν”„λ‘œλ•μ…˜(Production) μ€€λΉ„κ°€ λ˜μ§€ μ•Šμ•˜μœΌλ―€λ‘œ, μΆ”κ°€ 섀정이 ν•„μš”ν•©λ‹ˆλ‹€. 계속 μ½μœΌλ©΄μ„œ μ„€μ • 방법을 μ•Œμ•„λ³΄μ„Έμš”.

Previous
Welcome