이 레포지토리는 원티드 프리온보딩 백엔드 코스 1차 과제를 위해 만들어졌습니다.
- 일정 : 2021년 11월 1일(월) 오후 11시 ~ 11월 3일(수) 오전 10시
팀장 박상수 | 팀원 김성연 | 팀원 최준호 |
---|---|---|
blog: Plus Ultra github: epitone |
blog: sudocorp github: SibaDoge1 |
blog: raejun92.log github: raejun92 |
개발 환경 설정 | 개발 환경 설정 | 개발 환경 설정 |
사용자 API, 게시글 API | 댓글 API | 게시글 API |
프로젝트 회고 | 프로젝트 회고 | 프로젝트 회고 |
- 원티드 지원 과제 내용 포함
- 게시글 카테고리
- 게시글 검색
- 대댓글(1 depth)
- 대댓글 pagination
- 게시글 읽힘 수
- 같은 User가 게시글을 읽는 경우 count 수 증가하면 안 됨
- Rest API 설계
- Unit Test
- 1000만건 이상의 데이터를 넣고 성능테스트 진행 결과 필요
- Node.js, express, mongoDB, mongoose를 활용해서 게시판 CRUD API, 회원가입 로그인 API, 댓글 CRUD를 구현했습니다.
- 인증, 인가를 위해 JWT를 활용했습니다.
- 코드 컨벤션, 커밋 컨벤션, Git Flow를 지켜가며 작업했습니다.
- Github Project, 마일스톤을 활용해서 백로그, 이슈 관리를 진행했습니다.
- 계층 분리를 통해 코드의 가독성을 높였습니다.
- 게시글마다 게시글 카테고리를 구분할 수 있게 설정했습니다.
- 게시글 검색을 할 때, 게시글 제목 검색, 게시글 본문 검색, 게시글 제목+본문 검색을 할 수 있게 설정했고, 정규식을 활용한 검색방법을 도입했습니다.
- 게시글 읽힘 수의 경우, 한 유저가 하나의 게시글을 중복으로 들어간 경우, 읽힘 수가 증가하지 않도록 설정헀습니다.
-
레포지토리를 clone 받거나, 압축을 해제한 후 npm install을 통해 환경 셋팅을 진행합니다.
-
npm start를 통해 서버를 구동합니다.
-
src 폴더에 .env 파일을 설정해서, 환경변수를 설정합니다.
-
.env 파일 설정 방법
MONGO_URL="mongoURL" PORT=4000 JWT_SECERT="wanted" JWT_ALGO="HS256"
- Postman을 활용하여 API 작동 테스트를 진행했습니다.
- root 디렉토리의 1weak-1st.postman_collection.json 파일을 Postman에 import하여 테스트 가능합니다.
- 배포된 서버 주소 및 자세한 API 명세는 아래에서 확인 가능합니다.
- 🗂 API Description Link
📦src
┣ 📂bin
┃ ┗ www
┣ 📂config
┃ ┣ db.js
┃ ┗ secretKey.js
┣ 📂controllers
┃ ┣ postController.js
┃ ┗ userController.js
┣ 📂global
┃ ┗ routes.js
┣ 📂lib
┃ ┣ encryption.js
┃ ┗ jwt.js
┣ 📂middlewares
┃ ┗ auth.js
┣ 📂models
┃ ┣ postModel.js
┃ ┗ userModel.js
┣ 📂routes
┃ ┣ globalRouter.js
┃ ┣ postRouter.js
┃ ┗ userRouter.js
┣ 📂service
┃ ┣ postService.js
┃ ┗ userService.js
┣ 📂utils
┃ ┣ 📂db
┃ ┃ ┣ auto-id-setter.js
┃ ┃ ┗ index.js
┃ ┣ responseMessage.js
┃ ┣ statusCode.js
┃ ┗ util.js
┣ 📂views
┃ ┣ error.jade
┃ ┣ index.jade
┃ ┗ layout.jade
┣ .babelrc
┣ .env
┣ .eslintrc.json
┣ .gitignore
┣ .prettierrc.json
┣ app.js
┣ package-lock.json
┗ package.json