3D 선글라스 커스터마이징 이커머스의 백엔드 API 서버입니다.
Node.js + Express + MongoDB로 2주간 개발했습니다.
Frontend: https://r3f-shopping-website-fe.vercel.app/
- 이메일 회원가입/로그인
- Google OAuth 소셜 로그인 지원
- JWT 토큰 기반 세션 관리
- 관리자/일반유저 권한 분리
- 상품 CRUD (생성, 조회, 수정, 삭제)
- 이름/카테고리별 검색 및 필터링
- 페이지네이션
- SKU 중복 방지 및 재고 관리
- 상품 추가/수정/삭제
- 색상별 상품 구분 관리
- 중복 상품 자동 수량 증가
- 실시간 장바구니 아이템 수 조회
- 주문 생성 및 내역 조회
- 주문 상태 업데이트 (preparing → shipping → delivered)
- 주문 완료 시 장바구니 자동 초기화
- 관리자용 전체 주문 관리
- Node.js 18+ - JavaScript 런타임
- Express.js 4.19.2 - 웹 프레임워크
- MongoDB - NoSQL 데이터베이스
- Mongoose 8.0.0 - MongoDB ODM
- JWT - 토큰 기반 인증
- bcryptjs 2.4.3 - 패스워드 해싱
- google-auth-library 9.6.3 - Google OAuth
- cors 2.8.5 - CORS 정책 관리
- dotenv 16.3.1 - 환경변수 관리
POST /api/user- 회원가입GET /api/user/me- 내 정보 조회
POST /api/auth/login- 이메일 로그인POST /api/auth/login/google- Google 로그인
GET /api/product- 상품 목록 (검색/필터링)POST /api/product- 상품 생성 (관리자)PUT /api/product/:id- 상품 수정 (관리자)DELETE /api/product/:id- 상품 삭제 (관리자)
GET /api/cart- 장바구니 조회POST /api/cart- 장바구니 추가PUT /api/cart/:id- 수량 변경DELETE /api/cart/:id- 아이템 삭제GET /api/cart/qty- 장바구니 아이템 수
GET /api/order/me- 내 주문 내역POST /api/order- 주문 생성GET /api/order- 전체 주문 조회 (관리자)PUT /api/order/:id- 주문 상태 변경 (관리자)
├── controllers/ # API 비즈니스 로직
├── models/ # MongoDB 스키마 정의
├── routes/ # Express 라우터
├── utils/ # 유틸리티 함수
├── middlewares/ # 인증, 권한 체크
└── app.js # Express 앱 설정
2025.08.01 ~ 2025.08.17 (2주)