crypto.pbkdf2()는 비밀번호 기반 키 유도 함수(Password-Based Key Derivation Function)라고도 불리며, Node.js crypto 모듈에서 키 유도 작업을 비동기 방식으로 수행하는 메서드입니다. 지정된 알고리즘의 HMAC 다이제스트를 사용하여 비밀번호(password), 솔트(salt), 반복 횟수(iterations)로부터 원하는 길이의 키를 생성합니다.PBKDF2는 비밀번호를 안전하게 저장할 때 무차별 대입 공격(brute-force attack)을 방지하기 위해 널리 사용되는 표준 방식
개요crypto.pbkdf2Sync()는 PBKDF2(Password-Based Key Derivation Function 2)라고도 불리며, 키 유도 함수의 동기식(synchronous) 구현을 제공하는 Node.js crypto 모듈의 메서드입니다. 지정된 알고리즘의 HMAC 다이제스트를 기반으로, 비밀번호(password), 솔트(salt), 반복 횟수(iterations)를 사용해 새로운 키를 유도합니다. 이 메서드는 동기 방식으로 작동하므로, 키 생성이 완료될 때까지 프로그램의 실행이 차단(blocking)됩니다.참고로 동
crypto.randomBytes()는 암호학적으로 안전한(cryptographically strong) 의사 난수 데이터를 생성하는 Node.js 내장 메서드입니다. 이 메서드는 생성된 바이트에 충분한 엔트로피(entropy)가 확보될 때까지 작업을 완료하지 않지만, 실제로는 대기 시간이 몇 밀리초를 넘지 않으므로 성능상 부담 없이 사용할 수 있습니다.생성된 무작위 바이트는 세션 토큰, 비밀번호 재설정 링크, API 키, 솔트(salt) 값 등 보안이 중요한 다양한 용도로 활용됩니다.문법(Syntax)crypto.randomByt
agent.maxFreeSockets 속성은 유휴(free) 상태로 열어 둘 소켓(socket)의 최대 개수를 정의합니다. 이 속성은 Node.js의 http 모듈 인터페이스에 포함되어 있으며, keepAlive 옵션이 활성화된 에이전트에서만 실질적으로 적용됩니다. 문법 agent.maxFreeSockets : number 매개변수 이 속성은 다음과 같은 매개변수를 사용합니다. number – 유휴 상태에서 유지할 수 있는 소켓의 개수를 지정합니다. 기본값은 256입니다. 예제 maxFreeSockets.js라는 이
agent.maxSockets 속성은 HTTP 에이전트가 각 오리진(origin)별로 동시에 열 수 있는 소켓의 최대 개수를 정의합니다. 기본값은 Infinity(무한대)로 설정되어 있으며, 이 속성은 Node.js의 http 모듈에 포함되어 있습니다.문법(Syntax)agent.maxSockets: number매개변수(Parameters)number – 에이전트가 유지할 수 있는 동시 소켓의 개수를 지정합니다. 기본값은 Infinity이며, 값을 설정하면 해당 오리진으로의 동시 연결 수가 제한됩니다.예제(Example)
async 모듈은 Node.js 애플리케이션에서 비동기(Asynchronous) 자바스크립트를 효율적으로 다룰 수 있도록 다양한 기능을 제공합니다. 그중 async.queue() 메서드는 큐(queue) 객체를 반환하며, 이를 활용하면 여러 작업 항목을 한 번에 동시(concurrent) 처리할 수 있습니다. async.queue() 설치 및 사용 방법 1단계 – 아래 명령어로 Node 패키지 매니저(npm)를 초기화합니다. npm init 2단계 – 다음 명령어로 async 모듈을 설치합니다. npm install --save a
Node.js에서 cipher.final() 메서드는 암호화(cipher) 객체의 최종 결과 값을 Buffer 또는 String 형태로 반환하는 데 사용됩니다. 이 메서드는 crypto 모듈 내 Cipher 클래스가 기본적으로 제공하는 내장 메서드 중 하나입니다.주요 동작 방식은 다음과 같습니다.출력 인코딩(outputEncoding)을 지정하면 문자열(String)을 반환합니다.출력 인코딩을 지정하지 않으면 Buffer 객체를 반환합니다.cipher.final() 메서드를 두 번 이상 호출하면 에러가 발생합니다.문법(Syntax)
cipher.update() 메서드는 지정된 인코딩 형식에 따라 수신된 데이터로 암호화 객체(cipher)를 갱신하는 데 사용됩니다. 이 메서드는 Node.js의 crypto 모듈 내 Cipher 클래스에서 기본적으로 제공하는 내장 메서드 중 하나입니다.입력 인코딩(inputEncoding)이 지정되면 data 인자는 문자열(string)로 처리되고, 지정되지 않으면 data 인자는 버퍼(Buffer) 타입이어야 합니다.문법(Syntax)cipher.update(data, [inputEncoding], [outputEncoding]
crypto.createCipheriv() 메서드는 지정된 알고리즘과 키(key), 초기화 벡터(iv)를 기반으로 암호화 객체(cipher object)를 생성한 후 반환하는 Node.js crypto 모듈의 핵심 함수입니다. 이 메서드를 사용하면 AES 계열 알고리즘 등 다양한 대칭키 암호화를 손쉽게 구현할 수 있습니다. 문법(Syntax) crypto.createCipheriv(algorithm, key, iv, options) 매개변수(Parameters) algorithm – 암호화에 사용할 알고리즘을 지정합니다. aes-
Node.js의 assert 모듈은 함수 검증(assertion)을 위한 다양한 기능을 제공하는 내장 모듈입니다. 그중 assert.ifError() 함수는 전달된 값이 null 또는 undefined가 아닐 경우 에러를 발생시키는 역할을 합니다. 주로 콜백 함수에서 첫 번째 인자로 전달되는 에러 객체를 간편하게 처리할 때 유용하게 사용됩니다.구문(Syntax)assert.ifError(value)매개변수(Parameters)value – 에러 여부를 검사할 값입니다. 이 값이 null 또는 undefined인 경우에는
Node.js의 assert 모듈은 코드 내에서 조건을 검증(어설션)하기 위한 다양한 기능을 제공합니다. 그중 assert.notDeepEqual() 함수는 실제 값(actual)과 기대 값(expected)이 서로 같지 않은지, 즉 깊이(deep) 수준에서 동일하지 않은지를 검사하는 역할을 합니다. 만약 두 값이 깊이 동일하다면 조건이 충족되지 않았다고 판단하여 AssertionError가 발생합니다.문법(Syntax)assert.notDeepEqual(actual, expected[, message])매개변수(Parameters
Node.js의 assert 모듈은 코드 검증을 위한 다양한 어설션(assertion) 기능을 제공합니다. 그중 assert.notDeepStrictEqual() 메서드는 두 객체가 깊은 엄격 동등(deep strict equal)하지 않음을 검증하는 데 사용됩니다. 만약 두 객체가 깊은 수준에서 엄격하게 동일하다면 AssertionError가 발생합니다.문법assert.notDeepStrictEqual(actual, expected, [message])매개변수 설명actual – 실제 값으로, 비교 대상이 되는 원본 값을 담습니다
Node.js의 assert 모듈은 함수 검증(assertion)을 위한 다양한 기능을 제공합니다. 그중 assert.notEqual() 함수는 두 값이 서로 같지 않은지를 검사하는 메서드로, 실제 값(actual)과 기대값(expected)이 동일할 경우 AssertionError를 발생시킵니다.문법(Syntax)assert.notEqual(actual, expected, [message])매개변수(Parameters)actual – 비교 대상이 되는 실제 값을 담는 매개변수입니다.expected – actu
Node.js의 assert 모듈은 함수 검증(assertion)을 위한 다양한 기능을 제공합니다. 그중 assert.ok() 함수는 전달된 값이 참(truthy)인지 여부를 테스트하며, 값이 참이 아닐 경우 AssertionError를 발생시킵니다.문법assert.ok(value, [message])매개변수 설명value – 참인지 검사할 값으로, 이 값이 falsy(거짓으로 평가되는 값)이면 에러가 발생합니다.message – 선택적 매개변수로, 에러 발생 시 출력할 사용자 정의 메시지를 지정할 수 있습니다
assert.rejects() 함수란?Node.js의 assert 모듈은 함수 검증(assertion)에 필요한 다양한 기능을 제공합니다. 그중 assert.rejects() 함수는 전달된 비동기 함수(asyncFn)가 반환하는 프로미스가 거부(reject)되는지 확인하는 역할을 합니다.만약 asyncFn이 함수라면 즉시 호출되고, 해당 함수가 반환한 프로미스가 완료될 때까지 대기합니다. 이후 그 프로미스가 거부되었는지 검사하며, 거부되지 않으면 AssertionError가 발생합니다.문법(Syntax)assert.rejects(a
Node.js의 assert 모듈은 함수의 동작을 검증(어설션)하는 데 필요한 다양한 기능을 제공합니다. 그중 assert.strictEqual()는 두 값이 엄격하게(strictly) 같은지 비교하는 함수로, 자바스크립트의 일치 연산자(===)와 동일한 기준으로 타입과 값까지 모두 비교합니다. 두 값이 다르면 AssertionError를 발생시킵니다.문법(Syntax)assert.strictEqual(actual, expected[, message])매개변수 설명actual – 실제 평가 대상이 되는 값입니다. 기대값과
crypto.createDiffieHellman() 메서드는 Node.js의 crypto 모듈에서 제공하는 기능으로, 전달받은 소수(prime) 값과 선택적인 생성자(generator)를 기반으로 디피-헬만(DiffieHellman) 키 교환 객체를 생성합니다.생성자(generator) 인수는 문자열(string), 숫자(number), Buffer 타입 중 하나를 사용할 수 있으며, 별도로 지정하지 않으면 기본값인 2가 적용됩니다.문법(Syntax)crypto.createDiffieHellman(prime, [primeEncodi
Node.js의 crypto.createDiffieHellman(primeLength, [generator]) 메서드는 지정한 비트 길이의 소수(prime number)를 생성하고, 이를 기반으로 디피-헬만(Diffie-Hellman) 키 교환 객체를 만들 때 사용됩니다. 두 통신 주체가 사전에 비밀 정보를 공유하지 않고도 안전하게 공통 암호화 키를 만들 수 있도록 도와주는 핵심 기능입니다.생성자(generator) 값은 선택적으로 지정할 수 있으며, 별도로 전달하지 않으면 기본값 2가 사용됩니다.문법(Syntax)crypto.cr
개요Node.js의 crypto.createHash() 메서드는 지정된 알고리즘을 기반으로 해시(Hash) 객체를 생성한 후 이를 반환합니다. 반환된 해시 객체는 update()와 digest() 메서드를 체이닝하여 데이터의 해시 다이제스트를 손쉽게 생성할 수 있습니다. 선택 사항인 options 매개변수는 스트림 동작을 제어하는 용도로 사용되며, XOF 또는 shake256처럼 가변 길이 출력을 지원하는 해시 함수의 경우 outputLength 옵션으로 원하는 출력 길이를 바이트 단위로 지정할 수 있습니다.문법(Syntax)cry
Node.js 애플리케이션의 시작 스크립트(start script)는 특정 작업을 수행하기 위해 사용되는 명령어들의 집합입니다. Node.js 프로젝트를 처음 생성하거나 초기화할 때 애플리케이션을 실행하기 위한 여러 사전 정의된 스크립트가 자동으로 만들어지며, 이 스크립트들은 프로젝트의 필요에 따라 언제든지 자유롭게 수정할 수 있습니다.스크립트 명령어는 Node.js와 React 모두에서 프로그램의 다양한 시작 스크립트를 구성할 때 널리 활용됩니다. 특히 npm start를 사용하면 긴 실행 명령어를 매번 직접 입력하지 않고도 시작