[Node.js] Microsoft Teams 웹훅 연동하기
·
Node.js
기업에서 Node.js 기반의 API를 운영하다 보면, 특정 스케줄링 작업이 끝났을 때 결과를 팀즈로 알림 보내고 싶은 경우가 많습니다. 이 글에서는 Node.js 환경에서 스케줄러(node-cron)와 Teams Webhook을 연동해, API 작업 결과를 자동으로 알림 발송하는 방식을 소개합니다.1. 구조 개념Teams 채널에 Incoming Webhook을 등록하면, 팀즈가 발급한 Webhook URL로 메시지를 전송할 수 있습니다. Node.js에서 이 URL에 JSON 형태로 데이터를 POST하면, 채널에 메시지가 표시됩니다.스케줄러는 node-cron 같은 라이브러리를 통해 구현하고, 원하는 시각에 API를 실행한 뒤 팀즈로 결과를 알리는 형태로 구성할 수 있습니다.2. 사전 준비Teams 채..
[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] Node.js에서 MSSQL 데이터베이스 연결하기
·
Node.js
실무에서도 바로 사용할 수 있는 MSSQL + Node.js 연동 예제 1. 라이브러리 설치Node.js에서 MSSQL과 통신하려면 mssql 패키지를 사용합니다.npm install mssqlTypeScript 사용자는 타입 패키지도 함께 설치해주세요:npm install --save-dev @types/mssql2. 환경변수(.env) 설정DB 접속 정보를 코드에 하드코딩하지 않고 .env 파일에 안전하게 보관합니다.# .env 파일DB_USER=your_db_userDB_PASSWORD=your_passwordDB_SERVER=your_server_addressDB_PORT=1433DB_DATABASE=your_database_name 보안을 위해 .env는 반드시 .gitignore에 포함하세요...
[Node.js] 실시간 진행 상황을 사용자에게 보여주기 – SSE(Server-Sent Events) 적용기
·
Node.js
1. 왜 실시간이 필요했을까?최근, 엑셀 파일을 업로드하면 Cosmos DB와 Blob Storage를 활용해 데이터를 조회하고 결과를 반영한 엑셀을 다시 다운로드할 수 있는 기능을 개발했습니다.기능 자체는 잘 작동했지만, 처리량이 많거나 엑셀 파일이 클 경우, 서버 측 처리 시간이 10초 이상 걸리는 경우가 잦았습니다.그런데 문제는…사용자 입장에서는 아무런 피드백도 없이 ‘기다리기만’ 해야 한다는 것이었습니다.UX 문제사용자: “지금 서버가 멈춘 건가?”, “정상적으로 처리 중인가?”개발자: “처리 시간 동안 아무런 정보를 주지 못해 답답…”이 문제를 해결하기 위해 실시간으로 상태를 전달하는 방법을 고민하다가 SSE(Server-Sent Events)를 도입하게 되었습니다.2. 기존 방식의 한계처음에는..
[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빠..