본문 바로가기

전체 글45

[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.
[API] REST API, GraphQL, gRPC, SOAP, WebSocket, SSE 구분하기 API(Application Programming Interface)는 소프트웨어 간의 상호작용을 가능하게 하는 인터페이스입니다. API를 사용하면 서로 다른 소프트웨어 시스템이 서로 상호작용하고 데이터를 주고받을 수 있습니다. 예를 들어, 스마트폰 앱이 서버에 저장된 데이터를 가져오거나, 웹사이트가 외부 서비스의 기능을 이용할 때 API를 사용합니다. API는 웹사이트나 앱에서 날씨 정보를 가져오거나, 온라인 쇼핑몰에서 결제를 처리하는 등 다양한 용도로 사용됩니다.다양한 API 스타일이 존재하며, REST API, GraphQL, gRPC, SOAP, WebSocket, SSR의 개념을 이해하고 각각을 구분해 보겠습니다. 1. REST APIREST(Representational State Transf.. 2024. 5. 24.
[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.
[Chocolatey] 윈도우용 패키지 관리자 사용하기 코드 한 줄로 간편하게 프로그램을 설치할 수 있는 Chocolatey는 Windows에서 사용하는 패키지 관리자입니다. 설치, 업그레이드, 설정 변경 등의 작업을 간소화하면서도 일관성을 유지하는데 도움이 됩니다. 1. Chocolatey 설치 방법 https://chocolatey.org/install Installing Chocolatey Chocolatey is software management automation for Windows that wraps installers, executables, zips, and scripts into compiled packages. Chocolatey integrates w/SCCM, Puppet, Chef, etc. Chocolatey is trusted .. 2024. 1. 22.