환경 설정
딸깍문서의 환경 변수 및 설정 옵션에 대해 상세히 안내합니다.
환경 변수
필수 환경 변수
.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-4o | OpenAI 대안 | 선택적 지원 |
데이터베이스 설정
Supabase 테이블 구조
주요 테이블:
| 테이블 | 설명 |
|---|---|
Document | 문서 메타데이터 및 내용 |
DocumentVersion | 문서 버전 히스토리 |
DocumentFile | 첨부 파일 정보 |
Prompt | AI 대화 히스토리 |
PdfBlanks | PDF 빈칸 정보 |
마이그레이션 파일
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 대시보드에서 다음 환경 변수를 설정:
ANTHROPIC_API_KEYNEXTAUTH_SECRETNEXTAUTH_URL(프로덕션 URL)NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_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 컴포넌트 사용으로 자동 최적화