최근 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기반의 상태(반응형)관리 해주는 라이브러리.