ReviewDeck은 리뷰를 효과적으로 관리하고 공유할 수 있는 웹 애플리케이션입니다. 사용자들은 다양한 제품이나 서비스에 대한 리뷰를 작성하고, 평점과 태그를 통해 체계적으로 관리할 수 있습니다.
- 리뷰 관리: 제품이나 서비스에 대한 리뷰 작성 및 관리
- 평점: 별점을 통한 리뷰 평가
- 태그: 리뷰를 카테고리별로 분류
- 댓글: 리뷰에 대한 댓글 작성
- 좋아요: 리뷰에 대한 좋아요/싫어요
- 사용자 인증: 세션 기반 회원가입 및 로그인 시스템
- 관리자: 관리자 전용 대시보드 및 관리 기능
- 반응형 디자인: 모바일과 데스크톱 모두 지원
- SvelteKit: 풀스택 프레임워크
- TypeScript: 타입 안정성을 위한 언어
- Tailwind CSS: 유틸리티 CSS 프레임워크
- Vite: 빌드 도구
- SvelteKit: 서버사이드 렌더링 및 API
- Prisma: ORM 및 데이터베이스 툴킷
- SQLite: 개발용 데이터베이스
- bcrypt: 비밀번호 해싱
- 세션 기반 인증: 메모리 기반 세션 관리
- ESLint: 코드 린팅
- Prettier: 코드 포맷팅
- TypeScript: 타입 체킹
다음 소프트웨어가 시스템에 설치되어 있어야 합니다:
- Node.js: 18.0.0 이상 (권장: 20.x LTS)
- npm: 8.0.0 이상 (Node.js와 함께 설치됨)
- Git: 버전 관리 시스템
node --version
npm --versionNode.js가 설치되어 있지 않다면 Node.js 공식 웹사이트에서 다운로드하세요.
git clone https://github.com/DoDAON/ReviewDeck.git
cd ReviewDecknpm install이 명령어는 package.json에 정의된 모든 의존성을 설치하고, postinstall 스크립트를 통해 Prisma 클라이언트를 자동으로 생성합니다.
프로젝트 루트 디렉토리에 .env 파일을 생성하고 다음 내용을 추가하세요:
# 데이터베이스 URL (SQLite 사용)
# 프로젝트 루트 기준으로 ./dev.db 파일이 생성됩니다
DATABASE_URL="file:./dev.db"
# 기타 환경 변수 (선택사항)
NODE_ENV="development"# Prisma 클라이언트 생성
npx prisma generate
# 데이터베이스 마이그레이션 적용
npx prisma migrate dev
# 시드 데이터 삽입 (선택사항 - 관리자, 사용자 계정과 샘플 리뷰 생성)
npm run db:seednpm run dev브라우저에서 http://localhost:5173에 접속하면 애플리케이션을 확인할 수 있습니다.
시드 데이터를 실행했다면 다음 계정으로 로그인할 수 있습니다:
관리자 계정:
- 이메일:
root@testtest.test - 비밀번호:
admin123!
일반 사용자 계정:
- 이메일:
test@example.com - 비밀번호:
test123!
이 프로젝트는 개발 환경에서 SQLite를 사용합니다. SQLite는 별도의 설치나 설정이 필요 없으며, 파일 기반 데이터베이스입니다.
주요 테이블:
User: 사용자 정보Review: 리뷰 데이터Comment: 댓글Like: 좋아요Image: 이미지 정보Tag: 태그
# 데이터베이스 스키마 변경 후 마이그레이션
npx prisma migrate dev
# Prisma Studio로 데이터베이스 GUI 접근
npx prisma studio
# 데이터베이스 초기화 (주의: 모든 데이터가 삭제됩니다)
npx prisma migrate reset.env 파일에 설정해야 할 환경 변수들:
| 변수명 | 설명 | 필수 | 예시값 |
|---|---|---|---|
DATABASE_URL |
데이터베이스 연결 URL | ✅ | file:./dev.db |
보안 주의사항: .env 파일은 절대 버전 관리에 포함하지 마세요. 이미 .gitignore에 포함되어 있습니다.
| 명령어 | 설명 |
|---|---|
npm run dev |
개발 서버 실행 |
npm run build |
프로덕션 빌드 |
npm run preview |
빌드된 앱 미리보기 |
npm run lint |
코드 린팅 검사 |
npm run format |
코드 포맷팅 |
npm run check |
TypeScript 타입 검사 |
npm run db:seed |
시드 데이터 삽입 |
ReviewDeck/
├── prisma/ # 데이터베이스 스키마 및 마이그레이션
│ ├── schema.prisma # Prisma 스키마 정의
│ ├── dev.db # SQLite 데이터베이스 파일
│ └── seed.ts # 시드 데이터
├── src/
│ ├── routes/ # SvelteKit 라우트
│ │ ├── (app)/ # 메인 애플리케이션 라우트
│ │ │ ├── about/ # 소개 페이지
│ │ │ ├── api/ # 앱 내 API 엔드포인트
│ │ │ ├── login/ # 로그인 페이지
│ │ │ ├── profile/ # 프로필 페이지
│ │ │ ├── register/ # 회원가입 페이지
│ │ │ └── reviews/ # 리뷰 페이지들
│ │ └── (admin)/ # 관리자 전용 라우트
│ │ └── admin/ # 관리자 대시보드
│ │ ├── posts/ # 게시글 관리
│ │ ├── tags/ # 태그 관리
│ │ └── users/ # 사용자 관리
│ ├── lib/ # 공통 컴포넌트 및 유틸리티
│ │ ├── components/ # 재사용 가능한 컴포넌트
│ │ └── server/ # 서버 사이드 유틸리티 (인증, 세션 등)
│ ├── data/ # 데이터 관련 파일 (더미 데이터 등)
│ ├── app.html # HTML 템플릿
│ ├── app.css # 글로벌 스타일
│ └── app.d.ts # TypeScript 타입 정의
├── static/ # 정적 파일 (이미지, 아이콘 등)
├── package.json # 프로젝트 설정 및 의존성
├── svelte.config.js # SvelteKit 설정
├── vite.config.ts # Vite 빌드 설정
├── tailwind.config.js # Tailwind CSS 설정
├── tsconfig.json # TypeScript 설정
└── README.md # 프로젝트 문서
# npm 캐시 클리어 후 재시도
npm cache clean --force
rm -rf node_modules package-lock.json
npm install.env파일이 존재하는지 확인DATABASE_URL이 올바르게 설정되었는지 확인- Prisma 클라이언트 재생성:
npx prisma generate
# TypeScript 캐시 클리어
rm -rf .svelte-kit
npm run check다른 포트로 실행:
npm run dev -- --port 3000로그인 상태에서 브라우저의 뒤로가기/앞으로가기 버튼을 사용한 후 로그인 버튼이 다시 표시되는 경우:
- 해결 방법: 브라우저에서
F5키를 누르거나 새로고침 버튼을 클릭하세요
이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.