Pingu
영차영차! Backend

설문조사용 폼 서비스에 임시저장 기능을 개발하며, MongoDB의 NoSQL 기반 대량 JSON 데이터 관리 방식이 고속·고빈도 데이터 송수신 요구사항에 적합하지 않음을 발견했습니다. 이 글에서는 이를 해결하기 위한 설계 과정과 아키텍처를 소개합니다.

2026. 1. 21.
7개 태그
읽기
임시저장
SQLite
MongoDB
Nestjs
아키텍처
데이터베이스
Better-SQLite3

SQLite 임시 저장소에 데이터를 저장하기 위해 TypeORM, Sequelize, Drizzle ORM과 RAW 쿼리 방식을 비교 검토한 후, 유지보수성과 성능을 고려해 Drizzle ORM을 선택한 과정을 소개합니다.

2026. 1. 21.
8개 태그
읽기
임시저장
ORM
TypeORM
Drizzle ORM
SQLite
데이터베이스
Better-SQLite3
RAW 쿼리

HTTP 통신의 반복적 요청 부하를 해결하기 위해 WebSocket을 활용한 실시간 임시저장 기능을 구현했습니다. NestJS Gateway, Kubernetes 다중 Pod 환경에서의 세션 관리, Redis를 활용한 중앙 집중식 세션 저장 전략을 소개합니다.

2026. 1. 21.
8개 태그
읽기
임시저장
WebSocket
Socket.io
Nestjs
Kubernetes
Pod
네임스페이스
Gateway

휘발성 임시 저장 데이터의 일관성을 보장하기 위해 BullMQ의 repeatable job을 활용한 주기적 백업, 소켓 연결 해제 시 즉시 백업, Kubernetes Pod 종료 시 Graceful Shutdown을 통한 데이터 보존 전략을 구현했습니다.

2026. 1. 21.
7개 태그
읽기
임시저장
Cron Job
백업
Bull Queue
Nestjs
반복 작업
Graceful Shutdown

임시저장 기능 고도화 연재의 마지막 글입니다. SQLite 임시 저장소, WebSocket 실시간 통신, Redis 세션 관리, MongoDB 영구 저장소, 백업 전략을 포함한 전체 아키텍처를 정리합니다.

2026. 1. 21.
3개 태그
읽기
임시저장
마무리
아키텍처