Skip to content

Another-Glass/Assignment1_Team2

Repository files navigation

원티드 백엔드 프리온보딩 1차 과제

👨‍💻 원티드 프리온보딩 어나더글라스 팀입니다.

6명의 안경잡이 개발자들의 시선과 관점이 담긴 과제입니다.

무던히 포기하지 않고 견디고 견뎠던 그 시간들이 변함없는 단 하나의 해답임을 믿습니다.

PRs Welcome Hits issues






🎤 소개

이 레포지토리는 원티드 프리온보딩 백엔드 코스 1차 과제를 위해 만들어졌습니다.

  • 일정 : 2021년 11월 1일(월) 오후 11시 ~ 11월 3일(수) 오전 10시


🧑🏻‍💻 팀원 소개

팀장 어유선 팀원 김현길 팀원 이동훈
blog: Makkiato
github: Makkiato
blog: gusrlf14
github: hyunghilkim
blog: dongjay00.log
github: dongjay00
sprint1 sprint1 sprint1
개발 환경 설정 개발 환경 설정 개발 환경 설정
테크리더, QA, devops API DB
프로젝트 회고 프로젝트 회고 프로젝트 회고



📕 과제 내용

개발 요구사항

  • 원티드 지원 과제 내용 포함
  • 게시글 카테고리
  • 게시글 검색
  • 대댓글(1 depth)
    • 대댓글 pagination
  • 게시글 읽힘 수
    • 같은 User가 게시글을 읽는 경우 count 수 증가하면 안 됨
  • Rest API 설계
  • Unit Test
  • 1000만건 이상의 데이터를 넣고 성능테스트 진행 결과 필요


📕 과제 해결 방안

  • Node.js, express, mongoDB, mongoose를 활용해서 게시판 CRUD API, 회원가입 로그인 API, 댓글 CRUD를 구현했습니다.
  • 짧은 시간내에 효율적으로 완성을 하기위해 DB, API, QA 및 Devops로 업무를 분담하였습니다.
  • 앞으로 한달간의 일정을 위해 앞서가기보다는 함께가기로 했습니다.
  • Commit마다 함께 더 나은 코드를 위해 고민했습니다.
  • 게시글과 댓글 대댓글을 함께 불러오는 과정에서 Promise로부터 여러개의 Promise로 나뉘는 logic을 발견하였습니다. 이렇게 나뉜 Promise가 다 처리되는 것을 기다리면서도, 무작정 chainning 하는 것은 지양하기위에 Promise의 Queue를 사용해보자 하는 아이디어가 나왔고, Array.push를 이용해 임시로 활용해보았습니다


🛠 실행 방법

  • 레포지토리를 clone 받거나, 압축을 해제한 후 npm install을 통해 환경 셋팅을 진행합니다.

  • npm start를 통해 서버를 구동합니다.

  • src 폴더에 .env 파일을 설정해서, 환경변수를 설정합니다.

  • .env 파일 설정 방법
    MONGO_URL="mongoURL"
    JWT_SECERT_KEY="wanted"
    


🗂 과제 확인 및 평가 API 명세서

  • Postman을 활용하여 API 작동 테스트를 진행했습니다.
  • 자세한 API 명세는 아래에서 확인 가능합니다.
  • 🗂 API Description Link


😎 컨벤션 설정



🛠 Dependencies



🌲 File Tree


📦src
 ┣ 📂functions
 ┃ ┣ auth.js
 ┃ ┣ board.js
 ┃ ┗ comment.js
 ┣ 📂middleware
 ┃ ┗ auth.js
 ┣ 📂models
 ┃ ┣ Board.js
 ┃ ┣ Comment.js
 ┃ ┣ Count.js
 ┃ ┗ User.js
 ┣ 📂PostmanTest
 ┃ ┣ TestRun_Collection_Sample.json
 ┃ ┗ TestRun_Sample_Result.json
 ┣ 📂routes
 ┃ ┣ auth.js
 ┃ ┣ comment.js
 ┃ ┗ post.js 
 ┣ .gitignore
 ┣ README.md
 ┣ app.js
 ┣ package-lock.json
 ┣ package.json
 ┗ server.js

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •