실시간 설문조사 app 구현

Hyeseong·2023년 2월 27일
0

실시간설문조사앱

목록 보기
1/6

🔖 목차

1. 개요

2. 컨트롤러와 간단한 API 만들기

3. Injectable Service 셋업

4. Redis dynamic module 구현

5. RedisJSON을 이용하여 Repository 구현

6. AcessToken 구현을 위한 JWT 모듈 설정

7. 인증처리를 위한 라우트별 Guard 구현

8. Socket.io 게이트웨이 setup

9. Postman과 NestJS를 통한 Socket.io Connection처리

10. Socket.io Connection 인증

11. Validation and Advanced Exception

12. Redis에 설문 참여자 추가 및 Room join

13. 관리자용 게이트웨이 핸들러 구현

14. Nomination 이벤트 추가

15. Submitting Nomination

16. 설문조사 종료 및 투표 집계


☁️ 개요

최근 NodeJS를 이용한 간단한 앱 구현, REST API, GraphQL 프로토콜을 구현한 적이 있습니다. 이번에 구현하고 정리할 것은 실시간 설문조사 앱입니다.

🏛 아키텍처

도구

NestJS

  • 리액트에 Next.js가 있고 Vue.js에 Nuxt.js가 있다면 NestJS는 Node.js 기반 백엔드 프레임워크이다.
  • 기본적으로 Express 또는 Fastify 프레임워크를 기반으로 동작하며, 기본 설정은 - Express이다.
  • 데이터베이스, ORM, 설정, 유효성 검사 등 수 많은 기본 기능을 기본으로 제공하고 으며 필요한 라이브러리를 쉽게 설치하여 확장가능한 Node.js의 장점은 그대로 가지고 있다.
  • Augular로부터 영향을 많이 받아 모듈/컴포넌트 기반으로 프로그램을 작성함으로써 코드 재사용성을 높여준다.
  • TypeScript를 기본으로 채택하고 있다.

React

  • 클라이언트 사이드 자바스크립트 라이브러리의 하나로서 사용자 인터페이스를 만들기 위해 사용
  • 싱글 페이지 애플리케이션이나 모바일 애플리케이션의 개발 시 토대로 사용될 수 있습니다.
  • Data Flow, Componet 기반구조, 가상돔, Props and State, JSX(Javascript and XML)문법을 쓰는 등의 특징이 있음

Redis

  • 빠른 오프 오픈소스 인 메모리 키 값 데이터 구조 스토어
  • 사용 사례:
    • 세션관리
    • 세션관리
    • pub/sub
    • 속도제한
    • 대기열
    • 실시간 순위표
  • web, mobile, game, Ad tech, IoT 분야에서 널리 사용됨

Docker

  • Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼
  • Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있음
  • Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있으며 코드가 문제없이 실행 될 수 있도록 함
  • 사용이유 :
    • 운영 표준화
    • 더 많은 소프트웨어를 더 빨리 제공
    • 원활하게 이전
    • 비용 절감
  • UseCase
    - container를 이용한 분한 애플리케이션을 구축하고자 하는 경우
    • CI/CD를 이용하여 환경을 표준화하고 언어 스택 및 버전간의 충돌을 제거하여 서비스를 신속히 제공
    • 데이터 처리: 데이터 분석 패키지를 기술자가 아닌 사용자도 실행 할 수 있는 이동식 컨테이너로 패키징함
    • 서비스로서의 컨테이너 : 안전한 IT관리형 인프라와 콘텐츠로 분산 앱 구축 및 제공

Wouter : react minimal routing library

Valtio : React에서 proxy기반의 상태(반응형)관리 해주는 라이브러리.

출처

profile
어제보다 오늘 그리고 오늘 보다 내일...

0개의 댓글