본문 바로가기

nodejs33

[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] 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.
[nodeJS] node 버전 변경하기 (nvm) 다양한 프로젝트를 동시에 진행할 때 nodeJS 버전 때문에 고생하신 적 있으신가요? NVM을 사용하면 그 문제를 해결할 수 있습니다. 1. NVM 설치 Download Now! -> nvm-setup.zip 다운로드 https://github.com/coreybutler/nvm-windows/ GitHub - coreybutler/nvm-windows: A node.js version management utility for Windows. Ironically written in Go. A node.js version management utility for Windows. Ironically written in Go. - GitHub - coreybutler/nvm-windows: A node.js .. 2023. 11. 30.
[nodeJS] html-escaper 모듈을 이용하여 HTML 이스케이프 문자 파싱하기 HTML 이스케이프는 HTML 코드에서 특수 문자를 안전하게 처리하거나 보여주기 위해 필요합니다. 웹 페이지의 구조를 파괴할 수 있는 특수 문자를 방지하거나, 사용자가 입력한 데이터를 안전하게 표시할 수 있습니다. 1. html-escaper 모듈 설치 Node.js에서 HTML 이스케이프를 쉽게 다룰 수 있게 해주는 'html-escaper' 모듈 설치 npm install html-escaper 2. html-escaper 모듈 불러오기 import 구문을 이용해 'html-escaper' 모듈 불러오기 import {escape, unescape} from 'html-escaper'; 3. 이스케이프 처리하기 'html-escaper' 모듈의 'escape' 함수를 이용하여 HTML 문자열에서 특수.. 2023. 11. 11.