[Node.js] 실시간 진행 상황을 사용자에게 보여주기 – SSE(Server-Sent Events) 적용기
·
Node.js
1. 왜 실시간이 필요했을까?최근, 엑셀 파일을 업로드하면 Cosmos DB와 Blob Storage를 활용해 데이터를 조회하고 결과를 반영한 엑셀을 다시 다운로드할 수 있는 기능을 개발했습니다.기능 자체는 잘 작동했지만, 처리량이 많거나 엑셀 파일이 클 경우, 서버 측 처리 시간이 10초 이상 걸리는 경우가 잦았습니다.그런데 문제는…사용자 입장에서는 아무런 피드백도 없이 ‘기다리기만’ 해야 한다는 것이었습니다.UX 문제사용자: “지금 서버가 멈춘 건가?”, “정상적으로 처리 중인가?”개발자: “처리 시간 동안 아무런 정보를 주지 못해 답답…”이 문제를 해결하기 위해 실시간으로 상태를 전달하는 방법을 고민하다가 SSE(Server-Sent Events)를 도입하게 되었습니다.2. 기존 방식의 한계처음에는..
[Azure] Azure Cosmos DB Emulator 설치 및 Node.js 연결 방법 정리
·
Azure
Cosmos DB Emulator는 로컬 환경에서 Azure Cosmos DB를 시뮬레이션할 수 있도록 도와주는 도구입니다. 클라우드에 직접 연결하지 않고도 애플리케이션을 개발 및 테스트할 수 있어, 비용이나 배포 부담 없이 Cosmos DB를 연습하거나 개발하는 데 유용합니다.이 포스팅에서는 Cosmos DB Emulator 설치부터 Node.js에서 데이터를 읽어오는 예제까지 간단하게 소개합니다.1. Cosmos DB Emulator 설치공식 문서를 참고하여 설치를 진행합니다.설치 가이드:https://learn.microsoft.com/ko-kr/azure/cosmos-db/how-to-develop-emulator 개발 및 CI에 에뮬레이터 사용 - Azure Cosmos DBAzure Cosmo..
Cosmos DB란?
·
데이터베이스
Azure Cosmos DB는 Microsoft Azure에서 제공하는 완전 관리형 NoSQL 데이터베이스 서비스입니다. 글로벌 분산 아키텍처를 바탕으로 뛰어난 확장성과 고가용성을 제공하며, 다양한 API를 통해 여러 형태의 데이터 모델을 지원하는 것이 특징입니다.Cosmos DB의 특징1. NoSQL 기반 멀티 모델 지원Cosmos DB는 단일 데이터베이스 서비스 내에서 여러 데이터 모델을 지원합니다. 대표적으로는 문서형(Document), 키-값(Key-Value), 그래프(Graph), 컬럼형(Column-Family) 데이터 모델이 있으며, 각각의 모델에 적합한 API를 제공합니다.2. 다양한 API 호환성Cosmos DB는 다음과 같은 API를 통해 다양한 쿼리 언어를 사용할 수 있도록 지원합니..