본문으로 건너뛰기

환경 설정

딸깍문서의 환경 변수 및 설정 옵션에 대해 상세히 안내합니다.

환경 변수

필수 환경 변수

.env.local
# Anthropic AI API
ANTHROPIC_API_KEY=sk-ant-api03-xxxxx

# NextAuth.js 설정
NEXTAUTH_SECRET=your-32-character-secret
NEXTAUTH_URL=http://localhost:3000

# Supabase 데이터베이스
NEXT_PUBLIC_SUPABASE_URL=https://xxxxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJxxxxx
SUPABASE_SERVICE_ROLE_KEY=eyJxxxxx

선택적 환경 변수

.env.local
# Google OAuth (소셜 로그인)
GOOGLE_CLIENT_ID=xxxxx.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=GOCSPX-xxxxx

# OpenAI (추가 AI 모델)
OPENAI_API_KEY=sk-xxxxx

# 애플리케이션 URL
APP_URL=https://your-domain.com

# 개발 모드 설정
NODE_ENV=development

AI 모델 설정

Anthropic Claude

딸깍문서는 기본적으로 Claude Sonnet 4를 사용합니다.

src/lib/anthropic-models.ts
export async function getLatestSonnetModel(): Promise<string> {
return "claude-sonnet-4-20250514";
}

지원 모델

모델용도특징
Claude Sonnet 4기본 문서 작성빠른 응답, 고품질
Claude Opus복잡한 작업더 정교한 추론
GPT-4oOpenAI 대안선택적 지원

데이터베이스 설정

Supabase 테이블 구조

주요 테이블:

테이블설명
Document문서 메타데이터 및 내용
DocumentVersion문서 버전 히스토리
DocumentFile첨부 파일 정보
PromptAI 대화 히스토리
PdfBlanksPDF 빈칸 정보

마이그레이션 파일

supabase/migrations/
├── add_sfdt_support.sql # SFDT 문서 지원
├── add_chat_history_field.sql # 채팅 히스토리
├── add_glossary_field.sql # 용어집 기능
├── create_pdf_blanks_table.sql # PDF 빈칸 테이블
└── create_storage_bucket.sql # 파일 스토리지

국제화 (i18n) 설정

지원 언어

src/i18n/config.ts
export const locales = ["ko", "en"] as const;
export const defaultLocale = "ko";

번역 파일

messages/
├── ko.json # 한국어
└── en.json # 영어

번역 키 구조

messages/ko.json
{
"common": {
"save": "저장",
"cancel": "취소",
"delete": "삭제"
},
"aiSidebar": {
"greeting": "안녕하세요! 문서 작성을 도와드릴게요.",
"placeholder": "무엇을 도와드릴까요?"
}
}

에디터 설정

TipTap 확장 기능

활성화된 확장:

확장기능
StarterKit기본 편집 기능
Table표 편집
Image이미지 삽입
Link하이퍼링크
Highlight형광펜
TextAlign텍스트 정렬
Placeholder플레이스홀더
CharacterCount글자 수 카운트

커스텀 확장

src/components/tiptap-extension/
├── link-extension.ts       # 커스텀 링크
├── selection-extension.ts # 선택 영역 처리
└── trailing-node-extension.ts # 후행 노드

배포 설정

Vercel 설정

vercel.json
{
"buildCommand": "npm run build",
"outputDirectory": ".next",
"framework": "nextjs",
"regions": ["icn1"]
}

환경 변수 (Vercel)

Vercel 대시보드에서 다음 환경 변수를 설정:

  1. ANTHROPIC_API_KEY
  2. NEXTAUTH_SECRET
  3. NEXTAUTH_URL (프로덕션 URL)
  4. NEXT_PUBLIC_SUPABASE_URL
  5. NEXT_PUBLIC_SUPABASE_ANON_KEY
  6. SUPABASE_SERVICE_ROLE_KEY

보안 설정

API 보안

  • 모든 API 라우트는 세션 인증 필요
  • Rate limiting 적용
  • CORS 설정

파일 업로드 제한

const MAX_FILE_SIZE = 10 * 1024 * 1024; // 10MB
const ALLOWED_TYPES = [
"application/pdf",
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"application/msword",
];

성능 최적화

캐싱 전략

리소스캐시 정책
정적 자산1년
API 응답no-cache
문서 내용revalidate

이미지 최적화

Next.js Image 컴포넌트 사용으로 자동 최적화