본문 바로가기

개발정리 (nodeJS)35

[nodeJS] Node.js에서 대규모 파일 업로드 처리하기 웹 애플리케이션에서 이미지, 비디오, 문서 등의 파일을 업로드하는 기능은 필수적입니다. 특히 대용량 파일을 업로드할 때는 서버 메모리의 효율적 사용과 사용자 경험을 고려해야 합니다. 스트리밍과 버퍼링을 이용하면 메모리 사용량을 최소화하고, 파일 업로드 속도를 최적화할 수 있습니다. 1. 스트리밍과 버퍼링의 기본 개념스트리밍데이터를 작은 조각으로 나누어 전송하는 방식파일을 스트리밍하면 전체 파일을 메모리에 저장하지 않고, 데이터를 순차적으로 처리 가능메모리 사용을 절약하고, 대용량 파일을 효율적으로 처리하는 데 유리버퍼링데이터를 일정량 모아 한꺼번에 처리하는 방식파일 업로드 시 일정 크기의 버퍼를 사용해 데이터를 저장하고, 일정량이 모이면 처리데이터 전송의 효율성을 높이고, 네트워크 자원을 효과적으로 활용.. 2024. 6. 28.
[nodeJS] Node.js에서 세션 관리 구현하기 웹 애플리케이션에서 세션 관리는 사용자 인증과 상태 유지를 위해 매우 중요합니다.Express-session을 사용해 Node.js 애플리케이션에서 사용자 세션을 관리하는 방법을 설명하겠습니다.1. 세션(Session) 이해하기세션은 서버 측에 사용자 정보를 저장하는 방식입니다. 사용자가 웹사이트를 방문할 때 서버는 고유한 세션 ID를 생성하고, 이를 클라이언트(브라우저)에 쿠키로 전달합니다. 클라이언트는 이 쿠키를 통해 서버와 통신하며, 서버는 세션 ID를 기반으로 사용자의 상태와 정보를 추적합니다.  [세션의 역할]- 로그인 상태 유지: 사용자가 로그인한 후, 다른 페이지로 이동하더라도 로그인 상태 유지 가능- 사용자 맞춤형 설정: 사용자별로 다른 설정이나 데이터 유지 가능- 쇼핑 카트: 전자 상거래.. 2024. 5. 29.
[nodeJS] Node.js에서 스케줄링 작업 자동화하기 자동화된 스케줄링 작업은 시스템 관리, 데이터 백업, 주기적인 보고서 생성 등 다양한 상황에서 매우 유용합니다. 이러한 작업들은 일정한 시간 간격으로 실행되어야 하며, 수동으로 수행하기에는 번거롭고 오류가 발생할 가능성이 높습니다. Node.js에서는 node-cron 모듈을 사용해 이러한 작업을 쉽게 자동화할 수 있습니다. 1. Node-cron 모듈 설치npm install node-cron 2. 기본 스케줄링 작업 설정하기* * * * *라는 표현식을 사용해 매분마다 작업을 실행하도록 설정 크론 표현식의 각 위치는 분, 시, 일, 월, 요일을 의미const cron = require('node-cron');// 매분마다 실행되는 작업cron.schedule('* * * * *', () => { .. 2024. 5. 28.
[nodeJS] Node.js로 페이징네이션 활용하기 페이징네이션은 전체 데이터셋을 일정한 크기로 나누어 페이지별로 데이터를 제공하는 방식입니다. 이를 통해 한 번에 모든 데이터를 불러오는 부담을 줄이고, 사용자는 필요한 데이터를 쉽게 탐색할 수 있습니다. 일반적으로 페이지 번호와 페이지당 항목 수를 사용해 특정 페이지의 데이터를 가져옵니다. 1. Node.js 프로젝트 설정하기Express는 웹 서버를 구축하는 데 사용하고, MySQL과 MongoDB 연결을 위해 각각 mysql과 mongoose를 사용mkdir pagination-examplecd pagination-examplenpm init -ynpm install express mysql mongoose 2. MySQL에서 페이징네이션 구현하기1) 데이터베이스 설정간단한 users 테이블을 생성C.. 2024. 5. 23.
[nodeJS] Node.js와 redis 연동하기 Redis는 "Remote Dictionary Server"의 약자로, 고성능 키-값 저장소로 널리 사용되는 오픈 소스 인-메모리 데이터 구조 서버입니다. 다양한 데이터 구조를 지원하며, 데이터베이스, 캐시, 메시지 브로커 역할을 할 수 있습니다. Redis는 메모리 내 데이터 저장소로서 빠른 읽기 및 쓰기 작업을 제공하며, 디스크에도 지속적으로 데이터를 저장할 수 있어 재시작 후에도 데이터를 유지할 수 있습니다. 1. Node.js에서 Redis 사용 준비하기Node.js에서 Redis를 사용하기 위해서는 먼저 Redis 서버가 설치되어 있어야 하며, Node.js 애플리케이션에서 Redis 클라이언트를 사용할 수 있도록 redis 패키지도 설치 필요npm install redis  2. Redis 연.. 2024. 5. 7.
[nodeJS] Node.js로 자연어 처리하기 자연어 처리(Natural Language Processing, NLP)는 인간의 언어를 컴퓨터가 이해하고 해석할 수 있도록 하는 기술 분야입니다. 이를 통해 컴퓨터는 텍스트나 음성 데이터로부터 의미를 추출하고, 이를 바탕으로 질문에 답하거나, 텍스트를 생성하고, 감정을 분석하는 등 다양한 작업을 수행할 수 있습니다. 자연어 처리는 정보 검색, 감정 분석, 기계 번역, 음성 인식 등 다양한 분야에서 활용되고 있습니다. 1. natural 모듈 설치하기npm install natural 2. 텍스트 분류하기'Natural' 라이브러리의 BayesClassifier 클래스를 사용하여 기본적인 텍스트 분류기를 구현하여 텍스트 데이터를 여러 카테고리로 분류 가능// 긍정적인 문장과 부정적인 문장을 분류하는 분류.. 2024. 5. 3.
[nodeJS] nodeJS에서 console.log 사용하지 않고 디버깅하기 Node.js 개발 중 발생하는 다양한 문제를 해결하기 위해 디버깅은 필수적인 과정입니다. 많은 개발자들이 console.log를 사용하여 디버깅을 시도하지만, 프로덕션 환경에서 불필요한 console.log는 성능을 저하시킬 수 있습니다. 1. debug 모듈 설치하기 npm install debug 2. debug 인스턴스 생성하고 로그 출력하기 debug 모듈을 사용하면 개발자는 코드 전체에 로그를 남길 수 있으며, 필요한 로그만 선택적으로 활성화 가능. 디버그 인스턴스를 생성하여 로그 출력 가능 // app.js const debug = require('debug')('app'); // 디버그 인스턴스를 사용하여 로그 출력하기 debug('Hello, %s!', 'world'); 3. 환경 변수 .. 2024. 3. 25.
[nodeJS] JWT를 이용한 로그인 시스템 구현하기 JWT(JSON Web Token)는 클라이언트와 서버간에 정보를 안전하게 전달하기 위한 방법입니다. JWT는 상태를 유지하지 않는 Stateless한 특성을 가지고 있어, 확장성 있는 시스템을 구축하는 데 매우 유용합니다. 하지만, JWT는 만료 시간이 있어 주기적으로 갱신해야 합니다. 1. 필요한 모듈 설치하기 npm install express jsonwebtoken body-parser 2. JWT 생성하기 로그인 요청이 들어오면, 서버는 클라이언트에게 JWT를 발급하기 위해 'jsonwebtoken' 모듈의 'sign' 메소드를 사용하여 JWT를 생성 app.post('/login', (req, res) => { const user = { id: 1, username: 'test', }; con.. 2024. 1. 6.
[nodeJS] fs 모듈을 이용하여 다중 폴더 생성하기 Node.js에서 파일 시스템을 조작할 수 있는 'fs' 모듈을 이용하여 다중 폴더를 생성하는 방법에 대해 알아보겠습니다. 'fs' 모듈은 Node.js의 내장 모듈로서, 파일을 생성, 읽기, 쓰기, 삭제하는 등의 다양한 기능을 포함하고 있습니다. 1. fs 모듈 불러오기 내장 모듈인 fs를 사용하기 위해 import 구문으로 불러오기 import fs from 'fs'; 2. 다중 폴더 생성하기 fs 모듈의 'mkdir' 함수를 이용하여 폴더를 생성하기 'recursive' 옵션을 true로 설정하면, 한 번에 여러 개의 폴더 생성 가능 fs.mkdir('./folder1/folder2/folder3', { recursive: true }, (err) => { if (err) throw err; con.. 2023. 12. 30.