Build Rich Text Editor + Image Upload (Tiptap + UploadThing + Prisma)
- Tiptap의 'simple editor' 템플릿을 활용하여 풍부한 기능을 갖춘 리치 텍스트 에디터를 빠르고 쉽게 구현할 수 있으며, MIT 라이선스로 자유롭게 사용 가능합니다. 🚀
- UploadThing을 활용하여 드래그 앤 드롭 방식으로 이미지를 업로드하고, 업로드된 이미지는 에디터에 즉시 렌더링되며 데이터베이스에 URL이 저장됩니다. 🖼️
- Prisma를 사용하여 에디터의 콘텐츠(제목, 내용, 이미지 URL 포함)를 PostgreSQL 데이터베이스에 저장하고 관리하는 방법을 보여줍니다. 💾
- Next.js 환경에서 Shadcn/UI 컴포넌트(Input, Button)를 활용하여 사용자 인터페이스를 구축하고, 클라이언트 컴포넌트(
"use client")를 통해 이벤트 핸들러를 처리합니다. 💻
- Tiptap 템플릿은 다크/라이트 모드, 반응형 디자인, 텍스트 정렬, 볼드, 이탤릭, 목록 등 다양한 서식 기능을 기본 제공하며, CSS 조정을 통해 레이아웃을 최적화합니다. ✨
- 최신 Prisma 버전(5.16+)에서는
.env 파일 로드를 위해 dotenv 패키지 설치 및 prisma.config.ts 파일에 import 'dotenv/config' 추가가 필요합니다. ⚙️
- Tiptap 에디터 내
imageUploadNode를 통해 이미지 파일 형식, 최대 크기(기본 5MB), 업로드 개수 제한(기본 3개) 등을 설정할 수 있으며, handleImageUpload 함수에서 실제 업로드 로직을 구현합니다. 📏
create-next-app, @tiptap/cli, shadcn-ui 등의 명령어를 통해 프로젝트를 빠르게 설정하고 필요한 컴포넌트를 추가하는 개발 워크플로우를 소개합니다. 🛠️