[Node.js] Node.js에서 스케줄링 구현: node-cron vs node-schedule
·
Node.js
Node.js로 개발하다 보면 반복 작업이나 예약 작업을 구현할 때가 많습니다. 예를 들어, 매일 자정에 데이터 백업을 실행하거나 매주 특정 시간에 레포트를 생성하는 등의 작업이 필요하죠. 이런 스케줄링을 Node.js에서 처리하려면 대표적으로 node-cron과 node-schedule 두 가지 라이브러리를 많이 사용합니다.이번 글에서는 이 두 가지 라이브러리의 특징과 장단점을 비교해보고, 실제로 어떤 상황에 어떤 것을 선택하면 좋을지 정리해보겠습니다.node-cron 특징리눅스/유닉스 cron 표현식과 동일한 문법을 사용매분, 매시간, 매일 등 반복 주기를 단순하게 작성 가능가볍고 설치가 간단반복 작업(주기성 스케줄)에 특히 적합예를 들어 매일 자정에 실행하고 싶다면 다음처럼 표현합니다.cron.sc..
[Node.js] 서버 환경 분리
·
Node.js
Node.js 프로젝트를 실제 운영 환경에 배포하다 보면 “개발 서버”, “테스트(스테이징) 서버”, “운영(프로덕션) 서버”를 분리해 관리할 필요가 있습니다. 이번 글에서는 Node.js 기반 백엔드에서 환경별 설정을 어떻게 분리하고 관리할지 구체적으로 정리해 보겠습니다.1. 왜 서버 환경을 분리해야 할까?운영 환경(프로덕션)에 개발 중 코드를 잘못 배포하는 실수를 막기 위해실서버 데이터(운영 DB)를 보호하기 위해개발자는 마음껏 테스트할 수 있고, 운영 사용자는 안정적인 서비스를 보장받을 수 있도록외부 API(결제, 문자 등)나 보안 키 값이 운영/개발/스테이징 환경마다 다르기 때문에즉, 같은 코드라도 환경에 따라 다른 설정을 주입해서 다른 동작을 하도록 만들어야 합니다.2. 환경 변수로 분리하기No..
[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..
[Node.js] 미들웨어란?
·
Node.js
Node.js에서 Express를 사용할 때 가장 자주 접하게 되는 개념 중 하나가 미들웨어(middleware)입니다. Spring에서 필터(Filter)나 인터셉터(Interceptor)를 사용해본 분이라면, 미들웨어가 낯설지 않을 겁니다. 이 글에서는 미들웨어의 개념부터, 어떻게 사용하는지, 실전에서 어떤 역할을 하는지까지 정리해보자.미들웨어란?미들웨어는 요청(Request)과 응답(Response) 사이에서 중간에 실행되는 함수입니다. Express에서는 이 미들웨어를 활용하여 인증, 로깅, 오류 처리 등 공통 로직을 모듈화할 수 있습니다.Express 공식 문서에서는 다음과 같이 설명합니다:"미들웨어는 요청-응답 주기에서 실행되는 함수이며, req, res, next 세 개의 인자를 가집니다."..
[Node.js] Node.js Express 기본 및 주요 모듈 정리
·
Node.js
Node.js와 Express를 사용한 웹 개발에서 자주 쓰이는 모듈들을 정리해봤습니다. 각 모듈의 역할과 사용 시점을 중심으로 설명합니다.1. Node.js 내장 모듈Node.js에 기본적으로 포함되어 있어서 별도 설치 없이 사용할 수 있는 모듈입니다.http역할: 기본 웹 서버 생성 기능을 제공사용 시점: Express 없이 순수 Node.js로 서버를 만들 때const http = require('http');http.createServer((req, res) => { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World!');}).listen(3000);path역할: 파일 및 디렉토리 경로 관련 유틸리티 제공사용 시점..
[Node.js] Node.js 엑셀 라이브러리 총정리 – xlsx 중심 사용법과 활용 가이드
·
Node.js
Node.js에서 Excel 파일을 다뤄야 할 일이 생기면 가장 먼저 고민되는 게 바로 라이브러리 선택입니다. 오늘은 대표적인 Excel 관련 라이브러리들의 특징, 그리고 가장 널리 쓰이는 xlsx (SheetJS)의 사용법과 예제, 언제 사용하면 좋은지까지 한눈에 정리해봤습니다.주요 Excel 라이브러리 비교라이브러리특징장점단점설치xlsx (SheetJS)가장 널리 쓰이는 라이브러리다양한 포맷 지원 (.xls, .xlsx, .csv, 등), 안정성 높음복잡한 Excel 서식(차트, 수식 등)은 제한적npm install xlsxexceljs.xlsx 전문스타일링, 수식, 머지 셀 등 UI 처리 가능.xls(구버전) 미지원npm install exceljsnode-xlsx경량화된 xlsx wrapper빠..
[Node.js] Node.js란? 자바스크립트가 브라우저 밖으로 나온 이유
·
Node.js
자바스크립트를 브라우저 밖에서도 실행할 수 있다고? 그게 바로 Node.js입니다.어떻게 등장했고, 왜 쓰이며, 어떤 특징과 단점이 있는지 쉽게 풀어봅니다.Node.js란?Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임입니다.쉽게 말해, Node.js는 브라우저 없이도 자바스크립트 코드를 실행할 수 있게 해주는 환경입니다.런타임(Runtime)이란?런타임이란 특정 언어로 만든 프로그램을 실행할 수 있는 환경을 의미합니다.Node.js는 자바스크립트 실행 환경이고, 자바스크립트를 브라우저 밖에서도 사용할 수 있게 해줍니다.자바스크립트와 브라우저의 관계원래 자바스크립트는 브라우저 전용 언어였습니다.브라우저가 HTML을 조작할 수 있게 돕기 위해 만든 언어죠.?..