본문 바로가기

노드js41

[nodeJS] Node.js에서 생명 주기 활용하기 Node.js는 서버 측 애플리케이션을 효율적으로 관리하기 위한 다양한 내장 이벤트를 제공합니다. 그중 process.on 이벤트 리스너는 애플리케이션의 생명 주기 동안 발생하는 중요한 이벤트를 처리하는 데 유용합니다.1. process.on 이벤트 리스너Node.js의 process 객체는 실행 중인 애플리케이션의 상태를 제어하고 정보를 제공하는 핵심 객체process.on 메서드는 특정 이벤트를 감지하고 해당 이벤트가 발생했을 때 실행할 리스너 등록 가능주요 이벤트exit: 애플리케이션이 종료될 때 발생.SIGINT: Ctrl+C 입력 시 발생.uncaughtException: 처리되지 않은 예외가 발생했을 때 발생.SIGTERM: 운영 체제에서 종료 신호를 보낼 때 발생.warning: 경고가 발생.. 2025. 1. 31.
[nodeJS] Node.js에서 이벤트 기반 아키텍처 구현하기 Node.js는 이벤트 기반 아키텍처를 사용하여 비동기 작업을 처리하는 데 최적화된 환경을 제공합니다.이벤트 기반 아키텍처는 애플리케이션의 주요 동작을 이벤트로 정의하고, 해당 이벤트가 발생했을 때 적절한 리스너가 동작하도록 설계하는 방식입니다.  이벤트 중심의 설계는 코드의 응집력과 유지 보수성을 높이는 데 큰 도움을 줍니다. 1. 이벤트 기반 아키텍처 장점비동기 처리: 작업을 비동기로 처리하여 효율성과 응답성을 높임.확장성: 새로운 기능을 추가하기 쉽고, 특정 이벤트 처리 로직을 독립적으로 작성 가능.유지 보수성: 모듈화된 설계로 코드 가독성과 유지 보수성을 높임. 2. EventEmitter 소개이벤트를 생성하고, 리스너를 등록하거나 제거하며, 이벤트를 발생시키는 기능을 제공하는 클래스 EventE.. 2025. 1. 24.
[nodeJS] Node.js에서 DB 프로시저 활용하기 데이터베이스 프로시저는 반복적인 작업이나 복잡한 비즈니스 로직을 데이터베이스 레벨에서 처리할 수 있게 해주는 강력한 도구입니다. Node.js와 MariaDB를 연동하면 애플리케이션의 효율성과 유지 보수성을 높일 수 있습니다. 1. 프로시저란프로시저(Stored Procedure)는 데이터베이스에 저장된 SQL 쿼리의 집합으로, 미리 정의된 작업 수행 가능효율성: 클라이언트-서버 간 데이터 전송 감소.재사용성: 동일한 로직을 여러 애플리케이션에서 재사용 가능.보안성: SQL 쿼리를 애플리케이션 외부에 노출하지 않음.유지 보수성: 비즈니스 로직을 데이터베이스 레벨에서 관리. 2. MariaDB와 Node.js 설정1) MariaDB 설치 및 초기화MariaDB를 설치한 후 데이터베이스와 사용자 계정 생성C.. 2024. 12. 31.
[nodeJS] Node.js에서 SQLite를 사용한 로컬 데이터베이스 구축하기 SQLite는 경량화된 데이터베이스 관리 시스템(DBMS)으로, 로컬 환경에서 간단히 사용할 수 있는 강력한 도구입니다.Node.js와 SQLite를 통합하면 서버나 클라우드 기반 데이터베이스 없이 로컬에서 데이터를 저장하고 관리할 수 있습니다. 1. SQLiteSQLite는 파일 기반의 경량화된 관계형 데이터베이스 관리 시스템간단한 프로젝트나 로컬 데이터 관리에 적합[주요 특징]경량성: 설치가 간단하며 별도의 서버 없이 작동 가능독립성: 데이터베이스가 하나의 파일로 관리빠른 처리 속도: 소규모 애플리케이션이나 로컬 데이터 저장에 최적화SQL 지원: 대부분의 표준 SQL 구문 지원로컬 개발에 적합: 테스트 환경이나 간단한 애플리케이션 개발에 적합 2. Node.js와 SQLite의 통합1) Node.js.. 2024. 12. 18.
[nodeJS] Node.js에서 JWT를 활용한 권한 관리 및 역할 기반 접근 제어 구현하기 JWT(JSON Web Token)는 웹 애플리케이션에서 사용자 인증 및 권한 관리를 구현하는 데 널리 사용됩니다. 역할 기반 접근 제어(RBAC)를 통해 사용자의 권한을 관리하고, 보안을 강화할 수 있습니다. 이번 포스팅에서는 JWT를 사용하여 사용자 권한과 역할을 관리하는 방법을 Node.js 환경에서 구현하는 과정을 설명하겠습니다.  1. 역할 기반 접근 제어RBAC(Role-Based Access Control)사용자의 역할에 따라 시스템 자원에 대한 접근 권한을 제어하는 방법각 사용자는 특정 역할(role)을 할당받으며, 각 역할은 시스템에서 수행할 수 있는 작업(permissions)을 정의하고, 이를 통해 사용자별로 세분화된 권한을 설정하고 보안을 강화.예시 역할: 사용자(User), 관리자.. 2024. 10. 1.
[nodeJS] Node.js로 GraphQL API 구현하기 GraphQL은 효율적인 데이터 쿼리를 가능하게 하는 강력한 API 쿼리 언어입니다. 기존의 REST API와 비교했을 때, 클라이언트가 필요한 데이터만 정확하게 요청하고 받을 수 있어 네트워크 효율성과 응답 성능을 크게 향상시킬 수 있습니다. 이번 포스팅에서는 Node.js 환경에서 GraphQL API를 구현하고 사용하는 방법을 자세히 설명하겠습니다. 1. GraphQL[GraphQL의 주요 특징]유연한 쿼리: 클라이언트가 원하는 데이터의 형태를 지정할 수 있어, 과도한 데이터 전송을 줄일 수 있음.타입 시스템: 스키마를 통해 API의 데이터 구조와 타입을 명확히 정의하여, 타입 안정성 보장.단일 엔드포인트: 모든 요청이 하나의 엔드포인트로 처리되므로, API 엔드포인트가 간결해짐.효율적인 데이터 페.. 2024. 9. 18.
[nodeJS] Node.js와 Elasticsearch를 사용한 검색 기능 구현하기 Elasticsearch는 Apache Lucene 기반의 검색 엔진으로, JSON 문서를 인덱싱하고 검색하는 기능을 제공합니다.Elasticsearch는 RESTful API를 통해 상호작용하며, 실시간으로 대량의 데이터를 검색할 수 있는 뛰어난 성능을 자랑합니다.[Elasticsearch의 주요 특징]확장성: 클러스터링을 통해 데이터와 작업을 분산시켜 대규모 데이터 처리를 지원합니다.실시간 검색: 거의 실시간으로 데이터를 인덱싱하고 검색할 수 있습니다.분석 기능: 데이터를 빠르게 분석하고 통계 정보를 추출할 수 있습니다.다양한 데이터 형식 지원: JSON 형식의 문서를 기본으로 다양한 데이터 타입을 지원합니다.[Elasticsearch 사용 이유]고성능 검색: 대용량 데이터를 빠르게 검색할 수 있어,.. 2024. 9. 13.
[nodeJS] Node.js로 PDF 생성 및 처리하기 PDF(Portable Document Format)는 문서를 전자적으로 표시하고 공유하기 위한 표준 파일 형식입니다. Node.js에서 PDF 문서를 생성하고 조작하기 위해 PDFKit이라는 강력한 모듈을 사용할 수 있습니다. PDFKit은 복잡한 PDF 문서를 쉽게 생성할 수 있도록 다양한 기능을 제공합니다. 이 라이브러리는 문서, 그래픽, 이미지, 링크 등의 요소를 PDF에 추가할 수 있도록 도와줍니다. 1. PDFKit 설치 및 기본 설정프로젝트 초기화 및 PDFKit 설치mkdir pdfkit-nodejscd pdfkit-nodejsnpm init -ynpm install pdfkit "Hello, PDFKit!"이라는 텍스트를 포함한 PDF 파일을 생성하여 output.pdf로 저장// app.. 2024. 9. 9.
[nodeJS] Node.js에서 시계열 데이터베이스 적용하기 [시계열 데이터 (Time Series Data) ]시간 순서대로 수집된 데이터주로 금융 시장의 주가, 센서 데이터, 서버 로그, IoT 기기 데이터 등 시간에 따라 변하는 데이터에서 발생 타임스탬프: 데이터를 기록한 시점측정값: 시점에 기록된 데이터의 값태그: 데이터를 구분하거나 분류하기 위한 추가 정보[시계열 데이터베이스 (Time Series Database, TSDB)]시계열 데이터를 효율적으로 저장하고 처리하기 위한 데이터베이스높은 쓰기 및 조회 성능: 대량의 데이터를 빠르게 기록하고 조회 가능압축 저장: 데이터 압축을 통해 저장 공간을 절약쿼리 최적화: 시계열 데이터를 위한 특화된 쿼리 기능을 제공 1. InfluxDBInfluxDB는 시계열 데이터를 저장하고 처리하는 데 특화된 오픈 소스 .. 2024. 9. 3.