본문 바로가기

전체 글61

[nodeJS] Node.js에서 Bcrypt를 사용한 비밀번호 해싱 및 검증하기 비밀번호 보안은 웹 애플리케이션에서 매우 중요한 요소입니다. 사용자 비밀번호를 안전하게 저장하기 위해서는 해싱(Hashing) 기법을 사용해야 합니다. Bcrypt는 비밀번호 해싱에 널리 사용되는 라이브러리로, 강력한 암호화 기능과 사용의 편리성을 제공합니다.  1. Bcrypt란[Bcrypt의 개요]Bcrypt는 비밀번호를 안전하게 해싱하기 위해 설계된 암호화 알고리즘Bcrypt는 해싱된 결과를 생성할 때 Salt를 추가하여 동일한 비밀번호라도 서로 다른 해시 값 생성 가능[Bcrypt의 특징]Salt를 통한 보안 강화: Bcrypt는 비밀번호 해싱 시 임의의 Salt 값을 추가하여 보안 강화반복적인 해싱: 해싱 과정에서 여러 번 반복 연산을 수행하므로, 무차별 대입 공격(Brute Force Atta.. 2024. 11. 21.
[nodeJS] Node.js에서 Worker Threads 사용하기 Node.js는 싱글 스레드 기반의 이벤트 루프를 사용하여 비동기 작업을 효율적으로 처리합니다. 하지만 CPU 집약적인 작업, 예를 들어 복잡한 계산이나 데이터 분석 등을 처리할 때는 멀티스레딩이 필요할 수 있습니다. Node.js는 이러한 작업을 위해 Worker Threads를 제공합니다.  1. Worker Threads란[정의와 개념]Threads는 Node.js에서 멀티스레딩을 구현하기 위한 모듈기본적으로 Node.js는 싱글 스레드로 작동하지만, Worker Threads를 사용하면 CPU를 많이 사용하는 작업을 별도의 스레드에서 실행 가능메인 이벤트 루프가 차단되지 않으면서도 성능 향상 가능[Worker Threads 사용 이유]CPU 집약적인 작업 처리: 비동기 작업은 이벤트 루프에서 잘 .. 2024. 11. 13.
[nodeJS] Node.js에서 재귀 함수 이해하고 활용하기 재귀 함수는 프로그래밍에서 중요한 개념으로, 함수가 자기 자신을 호출하여 문제를 해결하는 방법입니다. 재귀를 잘 활용하면 복잡한 문제를 간단하게 해결할 수 있지만, 잘못 사용하면 무한 루프나 메모리 초과를 초래할 수 있습니다. 1. 재귀 함수란재귀 함수(Recursive Function)함수가 자기 자신을 호출하는 함수재귀는 특정 문제를 더 작은 하위 문제로 나누어 반복적으로 해결하는 데 유용재귀는 수학적 개념이나 알고리즘 문제를 해결할 때 자주 사용기본 구조기본 종료 조건(Base Case): 재귀가 끝나는 조건. 이 조건이 없으면 함수는 계속해서 자기 자신을 호출하여 무한 루프에 빠질 수 있음.재귀 단계(Recursive Step): 문제를 더 작은 하위 문제로 나누어 자기 자신을 호출하는 부분. 2.. 2024. 11. 5.
[PowerToys] 윈도우 생산성 향상을 위한 Microsoft PowerToys 활용법 Microsoft PowerToys는 Windows 사용자의 작업 효율성을 크게 높여주는 다양한 유틸리티 모음을 제공하는 도구입니다. PowerToys는 윈도우 환경에서 더 빠르고 효율적인 워크플로우를 만들 수 있도록 돕는 다양한 기능을 제공합니다. 이번 포스팅에서는 PowerToys의 핵심 기능들을 살펴보고, 이를 활용하여 작업 효율을 높이는 방법을 설명하겠습니다.  1. PowerToys 설치 방법PowerToys는 GitHub에서 최신 버전을 다운로드하여 설치할 수 있습니다. PowerToys GitHub 페이지에서 설치 파일을 찾아 다운로드하면 됩니다.설치 후에는 각 기능을 설정하고 사용자에 맞게 커스터마이징할 수 있습니다. 2. 주요 기능 소개1) PowerToys RunWindows의 검색 기.. 2024. 10. 7.
[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 서브스크립션 구현하기 GraphQL 서브스크립션은 클라이언트와 서버 간의 실시간 데이터 업데이트를 가능하게 해주는 강력한 기능입니다. 이를 통해 클라이언트는 서버로부터 실시간으로 데이터 변경 사항을 받아볼 수 있으며, 실시간 채팅, 라이브 데이터 피드, 알림 시스템 등 다양한 애플리케이션에 활용할 수 있습니다. 1. GraphQL 서브스크립션이란 무엇인가?[GraphQL 서브스크립션의 개요]GraphQL의 세 가지 기본 작업 중 하나로, 데이터의 실시간 업데이트를 클라이언트에게 푸시(push) 방식으로 제공하는 기능.쿼리(Query)와 변형(Mutation)은 클라이언트가 요청을 보내고 서버가 응답을 반환하는 단방향 통신 방식.서브스크립션은 양방향 통신을 지원하여 서버가 클라이언트에 데이터를 푸시 가능. [GraphQL 서브.. 2024. 9. 23.
[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.