Buffer.from() Buffer.from()메서드로 새로운 버퍼 생성 배열과 문자 둘다 가능 new Buffer() 생성자 함수는 더이상 사용하지 않음 //주어진 배열의 값을 사용하여 새로운 Buffer 생성 const bufferArray = Buffer.from([1, 2, 3, 4, 5]); //생성한 버퍼 출력 console.log(bufferArray) //주어진 문자열의 값을 사용하여 새로운 Buffer 생성 const bufferString = Buffer.from('Hello, World!'); //생성한 문자열 버퍼 출력 console.log(bufferString) //버퍼를 문자열로 변환(utf-8) console.log(bufferString.toString('utf-8')) ..
모듈 (Module) 모듈은 프로그래밍에서 기능별로 나누어진 독립적인 단위 코드의 재사용성을 높이고 유지보수를 용이하게 하기 위해 사용 특정 기능을 수행하는 함수, 변수, 클래스 등의 코드들을 묶어놓은 것 모듈화를 통해 코드를 구성하면 전체코드가 단순해지고 관리하기 쉬워짐 Node.js 내장 모듈 사용법 Node.js 기본적으로 내장되어 있는 모듈사용 require 키워드를 사용하여 모듈을 사용할 수 있음 // http 모듈 사용 예시 const http = require('http'); http.createServer((req, res) => { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello, World!'); }).listen(..
Node.js 보안 의존성 취약성: Node.js 프로젝트는 수많은 외부 패키지와 모듈을 사용합니다. 이러한 의존성들은 보안 취약점을 포함할 수 있으며, 이로 인해 공격자가 악용할 수 있습니다. 주기적으로 프로젝트의 의존성을 검사하고 최신 버전으로 업데이트하여 보안 취약점을 최소화해야 합니다. 비동기 프로그래밍과 콜백 지옥: Node.js는 비동기 프로그래밍을 강조합니다. 이로 인해 콜백 지옥(callback hell)이 발생할 수 있고, 비즈니스 로직에서 오류 처리를 놓치는 등 보안 위험을 야기할 수 있습니다. 콜백 지옥을 피하기 위해 async/await 또는 Promise를 사용하는 등의 방법을 적극적으로 활용해야 합니다. Cross-Site Scripting (XSS): 사용자가 제공한 입력을 적..
Cluster 싱글스레도 방식으로 동작하는 노드를 여러개의 코어를 사용할 수 있도록 해주는 노드 내장모듈 노드는 기본적으로 cpu 코어를 1개만 사용하는 싱글스레드 방식으로 동작함, 다른 코어는 놀고있음 서버를 기본적으로 cpu의 코어의 갯수만큼 실행 하면 됨 ex) 4개의 코어 => 서버 4개실행, 효율적으로 서버 실행가능 서버를 cpu코어 갯수만큼 실행하면 요청이 분산되어 서버에 무리가 덜감 성능이 코어의 갯수만큼 배가되는 것은 아니지만 상향됨 단점으로는 컴퓨터 자원(메모리, 세션)을 공유하지 못함 (로그인 한 상태로 새로 고침할때마다 로그인이 풀렸다 로그인했다를 반복함) redis등 별도 서버로 해결가능 워커쓰레드와 비슷한 동작방식 => 워커쓰레드는 쓰레드를 여러개만듬 클러스터는 프로세스를 여러개만..
process 모듈 - 설치된 노드의 버전을 확인 할수 잇음 process.version //v16.18.0 - 프로세서 아키텍쳐 정보 process.arch //'x64' - 프로세스가 실행되는 폴더 위치 process.cwd() //'C:\\Users\\user\\Desktop\\소켓모음\\Square-with-me-BE' - 프로세스가 실행되는 플랫폼 정보 process.platform //'win32' - 현재프로세스의 아이디 프로세스를 여러개 가질때 구분할 수 있음 process.pid // 15168 - 프로세스가 시작된 이후 흐른 시간 단위는 초. process.uptime() //303.592022 - 노드가 설치된 경로 process.execPath //C:\\Program Files\\..
morgan - morgan에 연결후 서버를 실행하면 추가적인 로그를 표현해줌, 요청과 응답에 대한 정보를 콘솔에 기록해주는 미들웨어 npm 설치 npm i morgan 미들웨어 연결 const morgan = require('morgan') 기본구문 인자 format은 미리정의된 이름의 문자열, 형식문자열, 또는 로그 항목을 생성하는 함수가 됨 morgan(format, options) format combined 배포환경에서 사용함 불특정 다수가 접속하기 때문에 IP를 로그에 남겨줌 :remote-addr - :remote-user [:date[clf]] ":method :url HTTP/:http-version" :status :res[content-length] ":referrer" ":user-..
Preview package.json 생성 - 터미널에 npm init명령어를 입력해 package.json을 생성한후 pacakage.json에서 모듈을 관리한다. 라이브러리 설치 - 노드 환경에서 터미널창에 아래 명령어를 입력하여 라이브러리를 설치한다. npm install figlet - package.json 파일에서 figlet 라이브러리의 버전을 확인할 수 있다. 사용법 - figlet함수에 첫번째 인자로 아스키 코드로 바꾸고싶은 텍스트를 입력한다 var figlet = require("figlet"); figlet("아스키 코드로 바꾸고 싶은 텍스트입력", function (err, data) { if (err) { console.log("Something went wrong..."); co..