← 강의 노트
APPENDIX A · 실습 준비

가입 & 키 발급 가이드

실습에 필요한 서비스의 가입 → 키 발급 위치 → 붙여넣을 변수명을 화면 목업과 함께 단계별로 정리했습니다. 모든 키는 마지막의 .env.local 한 파일로 모읍니다.

🖼 아래 화면 그림은 실제 UI를 본뜬 안내용 목업입니다 — 버튼 이름과 위치는 실제와 같게 맞췄어요. 서비스가 디자인을 바꾸면 다를 수 있으니 버튼 텍스트를 기준으로 찾으세요.
1

GitHub — 소스 호스팅 · Vercel 연동

무료 한도: 무료

실습 코드 저장소이자, Vercel 자동 배포의 연결 고리입니다. 대부분 토큰 없이 OAuth로 연결돼요.

🔒 github.com/settings/tokensDeveloper settings → Personal access tokensToken namehans17-labExpiration · Repository access90 daysGenerate new token← 여기를 클릭

💡 Vercel 자동 배포만 쓸 거면 토큰 없이 OAuth 연결로 충분합니다.

  1. 1[github.com](https://github.com)Sign up → 이메일·비밀번호·username 입력 → 메일 인증 코드 확인.
  2. 2우상단 +New repository → 이름 입력(예: hans17-lab) → Private 선택 가능 → Create repository.
  3. 3Vercel 연동은 다음 단계에서 자동 — Vercel이 권한을 요청하면 Authorize만 누르면 됩니다(별도 키 불필요).
  4. 4스크립트/CI에서 직접 접근이 필요할 때만: 우상단 프로필 → Settings → Developer settings → Personal access tokens → Fine-grained tokens → Generate new token (대상 repo + 권한 최소화).
.env.local 변수
(보통 불필요)GITHUB_TOKEN(선택)
2

OpenAI — GPT · 임베딩

무료 한도: 소액 충전(최소 $5 권장)

GPT 호출과 임베딩(text-embedding-3-small, 1536차원)에 씁니다. RAG의 벡터를 만드는 핵심 키예요.

🔒 platform.openai.com/api-keysAPI keys기존 키 목록(비어 있음)+ Create new secret key← 여기를 클릭생성 직후 1회만 표시 — 즉시 복사sk-proj-••••

💡 키가 안 보이면 Billing에 결제수단/크레딧을 먼저 등록하세요.

  1. 1[platform.openai.com](https://platform.openai.com) → Google/이메일로 Sign up.
  2. 2먼저 결제 등록: 우상단 ⚙ Settings → Billing → Add payment method → 크레딧 충전(최소 $5). 결제 없으면 키가 401을 냅니다.
  3. 3좌측 API keys(또는 platform.openai.com/api-keys) → + Create new secret key → 이름 지정 → Create.
  4. 4키는 생성 직후 한 번만 표시됩니다 → 바로 복사해 .env.localOPENAI_API_KEY에 붙여넣기(다시 못 봄, 잃으면 재발급).
.env.local 변수
OPENAI_API_KEY
3

Vercel + V0 — 배포 · AI Gateway · UI 생성

무료 한도: Hobby 무료

production 배포·커스텀 도메인·AI Gateway(LLM 통합 라우팅)의 본진입니다. v0.dev로 UI도 프롬프트로 생성해요.

🔒 vercel.com/account/tokensAccount Settings → TokensToken Namehans17-cliScope · ExpirationFull Account · 90dCreate Token← 여기를 클릭

💡 대부분의 배포는 vercel login만으로 됩니다. 토큰은 CI/스크립트용.

  1. 1[vercel.com](https://vercel.com/signup)Continue with GitHub(권장) → GitHub이 권한을 물으면 Authorize Vercel → Hobby(무료) 선택.
  2. 2CLI 설치·로그인: npm i -g vercelvercel login → 브라우저 인증.
  3. 3토큰(스크립트/CI용): 우상단 아바타 → Account Settings → Tokens → Create Token → 범위·만료 설정 → Create → 복사.
  4. 4AI Gateway: 대시보드 → AI Gateway 활성화 → "provider/model" 문자열로 Claude·GPT를 한 엔드포인트로 호출(fallback·관측 포함).
  5. 5V0: [v0.dev](https://v0.dev) → Vercel 계정으로 로그인 → 프롬프트로 UI 생성 → Add to Codebase로 코드 반영.
.env.local 변수
VERCEL_TOKEN(선택)AI_GATEWAY_API_KEY(선택)
4

Supabase — pgvector RAG DB

무료 한도: 무료 플랜

학습자 문서 RAG(pgvector)·대화 로그·FAQ를 담는 Postgres입니다. 대규모 벡터 검색은 여기서 합니다(M8).

🔒 supabase.com → Project Settings → APIProject API keysProject URLhttps://xxxx.supabase.coanon publiceyJhbG••••service_role 🔒 (서버 전용)eyJhbG••••

💡 service_role은 절대 클라이언트/깃에 노출 금지. 서버 코드(.env.local)에서만 사용.

  1. 1[supabase.com](https://supabase.com/dashboard)Continue with GitHub(권장)로 가입.
  2. 2New project → 조직 선택 → 프로젝트 이름 + Database Password(반드시 따로 저장!) + Region(가까운 곳, 예: Northeast Asia) → Create new project → 1~2분 프로비저닝 대기.
  3. 3좌측 하단 ⚙ Project Settings → API → 세 값 복사: Project URL · anon public · service_role(비밀 — 서버 전용).
  4. 4pgvector 켜기: Database → Extensionsvector 검색 → Enable(이게 있어야 임베딩 검색이 됩니다).
.env.local 변수
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEY
5

Vercel Blob — 파일 · 상태 저장

무료 한도: 무료 한도 포함

DB 없이 KV처럼 쓰는 저장소입니다. 대용량 파일 direct upload·상태(JSON) 저장에 써요(M9). Vercel 안에서 생성합니다.

🔒 vercel.com/dashboard → StorageCreate Database → BlobBlob Store namehans17-blobCreate← 여기를 클릭Connect Project → 토큰 자동 주입BLOB_READ_WRITE_TOKEN

💡 토큰을 직접 복사하지 않아도 됩니다 — vercel env pull 로 가져오세요.

  1. 1Vercel 대시보드 → 상단 Storage 탭 → Create DatabaseBlob 선택.
  2. 2이름 입력(예: hans17-blob) → Create.
  3. 3Connect Project로 실습 프로젝트에 연결 → BLOB_READ_WRITE_TOKEN 환경변수가 자동 주입됩니다(직접 복사할 필요 없음).
  4. 4로컬로 받기: vercel link(프로젝트 연결) → vercel env pull .env.local → 토큰이 로컬 파일로 동기화됩니다.
.env.local 변수
BLOB_READ_WRITE_TOKEN
6

ElevenLabs — STT · TTS · 보이스 클로닝

무료 한도: 월 무료 크레딧(음성은 유료 권장)

음성→텍스트(Scribe)·텍스트→음성(TTS)·내 목소리 클로닝에 씁니다(M11). 강사 Agent의 음성이 이 키로 동작해요.

🔒 elevenlabs.io/app/settings/api-keysSettings → API KeysNamehans17-labCreate API Key← 여기를 클릭생성 후 Copysk_••••

💡 TTS에는 Voice ID도 필요합니다 — Voices에서 복사하세요.

  1. 1[elevenlabs.io](https://elevenlabs.io/app/sign-up) → 이메일/구글로 Sign up.
  2. 2우하단 프로필 아이콘 → API Keys(또는 elevenlabs.io/app/settings/api-keys) → Create API Key → 이름 지정 → 생성 후 Copy.
  3. 3복사한 키를 .env.localELEVENLABS_API_KEY에 붙여넣기.
  4. 4보이스: Voices에서 원하는 보이스를 고르거나(또는 30초 샘플 업로드로 클로닝) → Voice ID 복사 → TTS 호출에 사용.
.env.local 변수
ELEVENLABS_API_KEYELEVENLABS_VOICE_ID(선택)

마무리 — `.env.local` 한 파일로

발급한 키를 프로젝트 루트의 .env.local에 모읍니다. 이 파일은 절대 깃에 커밋하지 않습니다(`.gitignore`에 포함).

# ── Hans17 Academy 실습 .env.local (절대 커밋 금지) ──
# OpenAI
OPENAI_API_KEY=sk-proj-...
# Supabase
NEXT_PUBLIC_SUPABASE_URL=https://xxxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGc...
SUPABASE_SERVICE_ROLE_KEY=eyJhbGc...
# Vercel Blob (vercel env pull 로 자동 주입)
BLOB_READ_WRITE_TOKEN=vercel_blob_rw_...
# ElevenLabs
ELEVENLABS_API_KEY=sk_...
ELEVENLABS_VOICE_ID=...
# Vercel / GitHub (선택)
VERCEL_TOKEN=
AI_GATEWAY_API_KEY=
GITHUB_TOKEN=
체크리스트 — GitHub 저장소 ✔ · OpenAI 결제+키 ✔ · Vercel 로그인 ✔ · Supabase 프로젝트+pgvector ✔ · Blob 연결 ✔ · ElevenLabs 키+Voice ID ✔ → 이제 M5로!