이 프로젝트는 Node.js 백엔드와 React 프론트엔드를 사용하여 개발된 맛집 커뮤니티 웹 애플리케이션입니다. 사용자들은 맛집 정보를 공유하고, 게시글을 작성하며, 서로 소통할 수 있는 플랫폼을 제공합니다.
- Node.js
- Express.js
- MongoDB (Mongoose)
- JWT Authentication
- bcrypt
- React
- React Router DOM
- Styled Components
- Axios
- Docker
- Docker Compose
- Nginx
- 회원가입
- 로그인/로그아웃
- JWT 기반 인증
- 사용자 프로필 관리
- 게시글 CRUD 작업
- 댓글 시스템
- 좋아요 기능
- 게시글 검색 (제목, 작성자)
- 네이버 API 연동
- 지역별 맛집 검색
- 사용자 관리
- 게시글 관리
POST /api/users/register - 회원가입
POST /api/users/login - 로그인
GET /api/users/profile - 프로필 조회
PUT /api/users/profile - 프로필 수정
GET /api/posts - 게시글 목록 조회
POST /api/posts - 게시글 작성
GET /api/posts/:postId - 특정 게시글 조회
PUT /api/posts/:postId - 게시글 수정
DELETE /api/posts/:postId - 게시글 삭제
POST /api/comments/:postId - 댓글 작성
GET /api/comments/:postId - 댓글 목록 조회
DELETE /api/comments/:commentId - 댓글 삭제
POST /api/likes - 좋아요 추가
GET /api/likes/:postId - 좋아요 수 조회
DELETE /api/likes/:postId - 좋아요 취소
GET /api/admin/users - 전체 사용자 조회
GET /api/admin/posts - 전체 게시글 조회
DELETE /api/admin/users/:userId - 사용자 삭제
DELETE /api/admin/posts/:postId - 게시글 삭제
project/
├── Back/
│ └── node.js/
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ ├── middleware/
│ └── app.js
└── Front/
└── front-react/
├── public/
└── src/
├── components/
├── services/
├── context/
└── styles/
- 저장소 클론
git clone [repository-url]- 환경 변수 설정
- Back/node.js/.env 파일 생성
MONGODB_URI=mongodb://mongodb:27017/restaurant-db
JWT_SECRET=your_jwt_secret
NAVER_CLIENT_ID=your_naver_client_id
NAVER_CLIENT_SECRET=your_naver_client_secret
- Docker Compose로 실행
docker-compose up --build- 접속
- 프론트엔드: http://localhost:8888
- 백엔드: http://localhost:5000
- MongoDB: mongodb://localhost:27017
- 백엔드 설정
cd Back/node.js
npm install
node app.js- 프론트엔드 설정
cd Front/front-react
npm install
npm startThis project is licensed under the MIT License - see the LICENSE file for details




