Next.js 기반 CMS + 커뮤니티 + 쇼핑몰 통합 솔루션
NexiBase는 Next.js + I + Base의 합성어로, Next.js를 기반으로 한 차세대 웹 서비스의 기본 구조(Base)를 의미합니다.
한국어로는 넥시베이스라고 표기합니다.
- 게시판 CRUD (무제한 생성)
- 게시글 작성 (Tiptap 에디터)
- 이미지 업로드 (자동 리사이징, WebP 변환)
- 파일 첨부 기능
- 갤러리 뷰 (썸네일 표시)
- 댓글/대댓글
- 리액션 (좋아요, 추천 등)
- 전문 검색 (MySQL FULLTEXT)
- 상품 관리 (카테고리, 다중 이미지)
- 3단계 옵션 (색상/사이즈/소재 등)
- 장바구니, 위시리스트
- 주문/결제 (KG이니시스 연동)
- 배송비 관리 (지역별, 무료배송 조건)
- 주문 상태 관리 (결제대기 → 배송완료)
- 주문 상태 변경 시 이메일 알림
- 상품 리뷰/Q&A
- 인기상품, 신상품, 최근 본 상품 추천
- 정렬 옵션 (최신순, 판매순, 후기순, 가격순)
- 회원가입/로그인
- 이메일 인증 (준비 중)
- 소셜 로그인 (Google, Naver, Kakao)
- 브라우저 세션 로그인 (브라우저 종료 시 자동 로그아웃)
- 배송지 관리
- 대시보드 (통계/분석)
- 회원/게시글/활성사용자 통계
- 쇼핑몰 현황 (주문, 매출, 상품, 처리대기)
- 7일간 주문/매출 추이 차트
- 7일간 신규 가입자 추이 차트
- 인기 상품/게시글 순위
- 최근 주문/회원 현황
- 회원 관리
- 게시판 관리
- 상품/주문 관리
- 리뷰/Q&A 관리
- 쇼핑몰 설정 (PG, 배송비 등)
| 영역 | 기술 |
|---|---|
| Frontend | Next.js 16, React 19, Tailwind CSS 4 |
| Backend | Next.js API Routes |
| Database | MySQL + Prisma ORM |
| Auth | NextAuth.js (JWT + 브라우저 세션) |
| Editor | Tiptap |
| Image | Sharp |
| Payment | KG이니시스 |
- Node.js 18+
- MySQL 8.0+
- npm, yarn 또는 bun
git clone https://github.com/gnuboard/nexibase.git
cd nexibasenpm install.env.example 파일을 .env로 복사 후 수정:
cp .env.example .env.env 파일 편집:
# MySQL 연결 정보
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASS=your-password
MYSQL_DB=nexibase
# Prisma용 DATABASE_URL (위 값을 조합)
DATABASE_URL="mysql://${MYSQL_USER}:${MYSQL_PASS}@${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_DB}"
# SMTP 설정 (이메일 인증용)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email@gmail.com
SMTP_PASS=your-app-password
# 앱 URL
NEXT_PUBLIC_APP_URL=http://localhost:3000
# NextAuth 설정
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your-secret-key
# 소셜 로그인 (선택사항)
GOOGLE_CLIENT_ID=xxx
GOOGLE_CLIENT_SECRET=xxx
NAVER_CLIENT_ID=xxx
NAVER_CLIENT_SECRET=xxx
KAKAO_CLIENT_ID=xxx
KAKAO_CLIENT_SECRET=xxxMySQL에서 데이터베이스 생성:
CREATE DATABASE nexibase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;# 마이그레이션 적용 및 Prisma Client 생성
npm run db:setup# 새로운 마이그레이션 적용
npm run db:migratenpm run devhttp://localhost:3000 에서 확인
- http://localhost:3000/signup 에서 첫 회원가입
- 첫 번째 가입자는 자동으로 관리자로 등록됩니다
- 관리자로 로그인
- http://localhost:3000/admin/boards 접속
- "기본 게시판 생성" 버튼 클릭
- http://localhost:3000/admin/shop/settings 접속
- 쇼핑몰 기본 정보 입력
- PG 설정 (이니시스 MID, SignKey 등)
- 배송비 설정
- Google Cloud Console 접속
- 프로젝트 생성 → API 및 서비스 → 사용자 인증 정보
- OAuth 2.0 클라이언트 ID 생성
- 승인된 리디렉션 URI:
http://localhost:3000/api/auth/callback/google .env에GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET설정
- Naver Developers 접속
- 애플리케이션 등록 → 네이버 로그인 선택
- 서비스 URL:
http://localhost:3000 - Callback URL:
http://localhost:3000/api/auth/callback/naver .env에NAVER_CLIENT_ID,NAVER_CLIENT_SECRET설정
- Kakao Developers 접속
- 애플리케이션 추가 → 카카오 로그인 활성화
- Redirect URI:
http://localhost:3000/api/auth/callback/kakao - 동의항목에서 이메일 필수 설정
.env에KAKAO_CLIENT_ID(REST API 키),KAKAO_CLIENT_SECRET설정
src/
├── app/
│ ├── (auth)/ # 인증 (로그인, 회원가입)
│ ├── admin/ # 관리자 페이지
│ ├── api/ # API 라우트
│ ├── board/ # 게시판
│ └── shop/ # 쇼핑몰
├── components/ # 공통 컴포넌트
└── lib/ # 유틸리티
MySQL FULLTEXT 인덱스를 활용한 고성능 검색을 지원합니다.
/search?q=검색어&board=free&sort=relevance
| 파라미터 | 설명 | 기본값 |
|---|---|---|
q |
검색어 (2자 이상) | 필수 |
board |
게시판 slug | all |
sort |
정렬 (relevance, latest, popular) | relevance |
MIT