본문으로 건너뛰기

환경변수 가이드

.env.example 파일을 복사하여 설정합니다.

cp .env.example .env.local # 로컬 개발
cp .env.example .env.production # 프로덕션

1. Firebase 클라이언트 SDK

브라우저에 노출되는 공개 키입니다. Firebase 콘솔 > 프로젝트 설정 > 앱에서 확인.

변수용도발급처
NEXT_PUBLIC_FIREBASE_PROJECT_ID프로젝트 IDFirebase 콘솔
NEXT_PUBLIC_FIREBASE_API_KEYWeb API 키Firebase 콘솔
NEXT_PUBLIC_FIREBASE_AUTH_DOMAINAuth 도메인Firebase 콘솔
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKETStorage 버킷Firebase 콘솔
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_IDMessaging Sender IDFirebase 콘솔
NEXT_PUBLIC_FIREBASE_APP_ID앱 IDFirebase 콘솔

2. Firebase Admin SDK (서버 전용)

절대 브라우저에 노출 금지. Firebase 콘솔 > 서비스 계정 > 새 비공개 키 생성.

변수용도발급처
FB_ADMIN_PROJECT_ID프로젝트 ID서비스 계정 JSON
FB_ADMIN_CLIENT_EMAIL서비스 계정 이메일서비스 계정 JSON
FB_ADMIN_PRIVATE_KEY비공개 키서비스 계정 JSON

3. AI 모델 설정

너홀로프로의 AI는 두 가지 경로로 동작합니다:

3.1 클라이언트 AI — Firebase AI Logic (주 기능)

AI 서류 생성, 전략 분석 등 주요 AI 기능은 클라이언트에서 Firebase AI Logic (firebase/ai)을 통해 호출합니다. 별도 환경변수 불필요 — Firebase 프로젝트 설정에 포함됩니다.

기능모델호출 위치
AI 서류 생성Gemini (Firebase AI Logic)클라이언트 (firebase/ai)
AI 전략 분석Gemini (Firebase AI Logic)클라이언트 (firebase/ai)
AI 대시보드 브리핑Gemini (Firebase AI Logic)클라이언트 (firebase/ai)
모델 교체 전략

현재 Firebase AI Logic을 통해 Gemini를 사용합니다. 향후 국산형 소버린 AI가 출시되면 LLM을 교체할 계획입니다.

3.2 서버 AI — LLM 공급자 (보조 기능)

서버 측 보조 AI 기능(lib/llm/)은 환경변수로 공급자를 교체할 수 있습니다.

변수용도기본값
LLM_PROVIDER공급자 선택anthropic
LLM_MODEL모델명claude-sonnet-4-6
LLM_API_KEYAPI 키-
LLM_BASE_URLAPI URL (openai-compatible 전용)-
ANTHROPIC_API_KEYAnthropic 전용 (하위호환)-

교체 가능한 공급자 목록:

공급자LLM_PROVIDERLLM_MODELLLM_BASE_URL
Anthropic Claudeanthropicclaude-sonnet-4-6(자동)
Google Geminiopenai-compatiblegemini-2.5-flashhttps://generativelanguage.googleapis.com/v1beta/openai
NAVER HyperCLOVA Xopenai-compatibleHCX-003https://clovastudio.stream.naver.com/v1
LG EXAONEopenai-compatibleEXAONE-3.5-7.8B-Instructhttps://api.exaone.ai/v1
Ollama (로컬)openai-compatiblellama3.2http://localhost:11434/v1
OpenAIopenai-compatiblegpt-4ohttps://api.openai.com/v1

4. 의뢰인 포털 인증

iron-session 세션 관리 + 카카오/네이버 OAuth 본인확인에 사용됩니다. 상세 설정 절차: OAuth 설정 가이드

변수용도발급처
PORTAL_SESSION_SECRETiron-session 쿠키 암호화 키 (32자 이상)openssl rand -base64 32
KAKAO_CLIENT_ID카카오 REST API 키developers.kakao.com
KAKAO_CLIENT_SECRET카카오 Client Secret카카오 앱 > 보안
NAVER_CLIENT_ID네이버 Client IDdevelopers.naver.com
NAVER_CLIENT_SECRET네이버 Client Secret네이버 앱 등록 시 발급
  • PORTAL_SESSION_SECRET 미설정 시 기본 더미값 사용 (개발 전용, 프로덕션 필수 설정)
  • 카카오/네이버 미설정 시 OAuth 버튼은 표시되지만 인증 실패 → OTP 폴백 사용

5. 이메일 발송 (Resend)

포털 OTP 인증, 직원 초대, 기일 알림 이메일에 사용됩니다.

변수용도발급처
RESEND_API_KEYAPI 키 (re_로 시작)resend.com
RESEND_FROM_EMAIL발신 이메일Resend 도메인 인증 필요

미설정 시 이메일 발송 대신 서버 로그에 출력됩니다.

6. 에러 모니터링 (Sentry)

변수용도발급처
NEXT_PUBLIC_SENTRY_DSNSentry DSNsentry.io
SENTRY_ORG소스맵 업로드용 (선택)sentry.io
SENTRY_PROJECT소스맵 업로드용 (선택)sentry.io
SENTRY_AUTH_TOKEN소스맵 업로드용 (선택)sentry.io

미설정 시 Sentry가 비활성화됩니다.

7. 결제 (토스페이먼츠)

현재 전환 예정 상태. 설정은 주석 처리되어 있습니다.

변수용도발급처
TOSS_CLIENT_KEY클라이언트 키 (전환 예정)developers.tosspayments.com
TOSS_SECRET_KEY시크릿 키 (전환 예정)동일
NEXT_PUBLIC_BASE_URL결제 콜백 URL프로덕션 도메인

8. 개발 도구

변수용도기본값
NEXT_PUBLIC_USE_EMULATORFirebase 에뮬레이터 사용false
NEXT_PUBLIC_ENABLE_AIAI 기능 활성화false
NEXT_PUBLIC_RECAPTCHA_SITE_KEYreCAPTCHA v3 사이트 키-