-
Notifications
You must be signed in to change notification settings - Fork 3
Tech Spec
김강년 edited this page Nov 22, 2022
·
2 revisions
부스트 캠퍼들이 자발적으로 쉽게 참여할 수 있는 설문조사 플랫폼
Google Forms는 상당히 많은 기능들을 제공하지만 설문조사에 필수적으로 요구되는 기능들은 많지 않고 구현 난이도가 적절하다고 판단되었다. 필수기능들을 구현하고나서 추가적으로 도전해볼 기능들이 다양하다고 생각해 프로젝트를 진행함에 수월하다고 생각하여 주제를 선정하였다.
또한 이번 프로젝트를 통해 비정형적인 데이터 구조 관리를 어떻게 할 것인지에 대해서도 학습할 수 있을 것이라고 생각하였다. 그리고 설문에 대한 다수의 동시 응답이 발생하는 상황에 대처해보며 서버의 부하에 대처해보는 경험을 해보고자 하였다.
-
설문조사를 위한 필수적 기능들을 모두 구현
- 설문조사를 만들 수 있다.
- 설문조사를 제공할 수 있다.
- 설문조사 결과를 확인 할 수 있다.
- 설문조사에 대한 동시 응답자가 몰리는 경우를 대비하여 스트레스 테스트를 진행
- 백엔드 단에서 할 수 있는 다양한 개선 방안을 찾고 시도하며 대용량 트래픽 처리에대한 경험
- 보안
- 예쁜 디자인
- 고도의 ui/ux
- Github oauth 이외의 추가적인 로그인 방식
- 날짜 기반의 설문조사 응답 기간 설정
- 모바일 지원
- API 요청 유형이 많지 않고, 구조가 단순함 -> 심플한 express
- 설문조사 양식, 결과는 유연한 json(nosql db)에 저장한다.
- 저장 구조를 사용자중심, 설문지중심 어느쪽으로 할지 고민 중
- 백엔드
- 한번에 10만개의 요청을 처리할 수 있다
- 프론트엔드
- 라이트하우스를 이용하여 Score 90점 이상으로 유지
- 사용자 행동 추적에 대한 논의를 하였으나, 현업에서도 대부분 GA를 사용한다는 조언에 따라 구현하지 않기로 결정
Week1
- 기획
Week2
- 프로젝트 구성
- CI/CD
- 로그인 및 회원가입
- 설문조사 관리 페이지
Week3
- 설문조사 작성 페이지 - FE/BE
- 설문조사 응답 페이지 - BE
- 설문조사 결과 페이지 - BE
- 설문조사 게시판 - BE
Week4
- 설문조사 응답 페이지 - FE
- 설문조사 게시판 - FE
- 스트레스 테스트
Week5
- 스트레스 테스트
- 백엔드 성능 개선
- 캐싱
- 로드 벨런싱
- 메시지 큐
- DB 분산화
Week6
- 리팩토링
- 데모준비
- 도커 + 쿠버네티스 환경을 이용한 분산 환경을 구축하여 NCP의 쿠버네티스 서비스에 배포하는 것을 목표로 한다
- 깃허브 액션으로 CI/CD