본문 바로가기
반응형

전체 글243

Nodejs 환경에서 Artillery로 부하테스트 하기 설치 프로덕션 레벨에서는 쓰이지 않기때문에 npm i -D artillery 맛보기 실행 --count : 가상의 사용자 수 -n : 요청 횟수 --rate : 초당 요청 ex) 100명의 사용자가 50번의 요청을 각각 보내는 것 = 5000번 요청 npm start npx artillery quick --count 100 -n 50 http://localhost:8001 ex) 60초 동안 5명이 초당 10번 요청을 보낸다. = 3000번 요청 artillery quick --duration 60 --rate 10 -n 5 http://localhost:5000 시나리오 설정 파일 (yaml 또는 json) config target : 테스트할 URL phases ex) 60초 동안 매초 1개의 요청을.. 2023. 5. 29.
성능 테스트 관련 용어 정리 기능 배포 전 성능 테스트 단계도 필요하다.성능 테스트에는 부하 테스트와 스트레스 테스트가 있다.성능 테스트를 통해 최악의 상황을 대비할 수 있다.  OOM (Out of Memory) 문제코드에 문법 문제가 없더라도, 서버에서 사용자마다 일정한 메모리를 할당할 때 서버의 메모리 용량을 넘으면 문제가 발생할 수 있다.  부하 테스트예상 부하에서 사용할 때 소프트웨어가 어떻게 수행되는지 테스트하는 것의도적으로 부하를 증가시켜 좋은 성능을 위한 임계값을 찾고, 정상적인 트래픽에서 시스템이 어떻게 작동하는지 테스트할 수 있다. 스트레스 테스트예상치 못한 극도의 압력 부하를 받을 때 소프트웨어가 어떻게 수행되는지 테스트하는 것복구하는 방법을 찾기 위해 부하를 상한까지 높여 테스트한다. 부하 테스트 시 주의할점실.. 2023. 5. 29.
Express 웹서버 구축 - route, body-parser, compression, cookie-session, express-session, session-file-store, cors, morgan, multer, response-time, connect-timeout Express.js Nodejs 에서 API 서버를 구축하는 데 가장 많이 사용되는 대표적인 프레임워크 미들웨어 모듈: 요청과 응답의 중간에서 목적에 맞는 특정 기능을 하는 함수 같이 사용하는 모듈 route body-parser compression cookie-session / express-session session-file-store cors morgan multer response-time connect-timeout package.json 생성 npm init Express 설치 node_modules라는 폴더가 자동으로 생성된다. npm i express nodejs 실행 node app.js 라우팅 특정 엔드 포인트에 대한 클라이언트 요청에 응답하는 방법을 결정하는 것 const expr.. 2023. 5. 28.
[NodeJS] json-server 이용하기 json-server json 기반으로 가상의 REST API 서버를 구축할 수 있는 npm 모듈 프론트엔드 개발자가 아직 웹서버가 구축 되지 않았을 때 프런트엔드 개발을 진행할 수 있도록 도와준다. 설치 npm i -g json-server json server 실행 json-server --watch db.json Fetch API로 GET/POST/PUT/DELETE 조회 POST 조회 예시 fetch("http://localhost:3000/posts", { method: "POST", body: JSON.stringify({ title: "The Great", author: "Jermy" }) headers: { "content-type": "application/json; charset=UTF.. 2023. 5. 27.
Nodejs 내장 모듈과 객체 Console console.log() console.error() console.table() console.time() / console.timeEnd() console.dir() Timers setTimeout(콜백함수, 밀리초) : 설정한 밀리초 이후에 지정된 콜백함수 수행 반드시 설정한 밀리초 후에 실행된다는 보장은 없다 --> 이벤트 루프를 블로킹하거나 이벤트 큐에 보유하고 있는 다른 실행 코드가 타임아웃의 실행을 뒤로 밀 수 있기 때문에 setInterval(콜백함수, 밀리초) : 설정한 밀리초마다 지정된 콜백 함수 수행 setImmediate(콜백함수) : 현재 이벤트 루프 주기 끝에 코드를 실행 Process 현재 실행되고 있는 Node.js 프로세스에 대한 정보와 제어를 제공 Proce.. 2023. 5. 27.
자주 사용하는 자바스크립트 문법 let 선언자 재선언 되면 에러를 발생 재선언으로 코드 전체에 영향을 주는 것을 예방하기 위해 var 대신 let을 사용하는 것이 권장된다. const 선언자 이미 선언된 변수에 값을 재할당하거나 재선언 하려고 하면 에러가 발생한다. ex) 날짜 포맷 값 const dateFormat = 'yyyy.MM.dd'; 화살표 함수 Arrow function 일반 함수 선언식에 비해 구현해야하는 코드의 양이 줄어든다. sort() 배열 오름차순 정렬 실무에서는 object의 특정 키를 기준으로 sort let persons = [ { name: "aa", point: 78 }, { name: "bb", point: 50 }, { name: "cc", point: 99 } ] persons.sort(functio.. 2023. 5. 27.
NodeJS 크롤링 만들어보기 (cheerio) 크롤링 웹페이지 안에 있는 필요한 데이터를 추출하는 것 크롤링에 필요한 모듈은 2가지가 있다. axios Promise API를 활용하는 HTTP 비동기 통신 라이브러리 크롤링 할 웹페이지를 가져오는데 사용한다. cheerio HTML 문서를 파싱하여 필요한 정보만을 가져올 수 있도록 도와주는 모듈이다. jQuery 문법과 유사하다. 1. 폴더 생성 2. npm 초기화 npm init -y 3. 필요한 패키지 설치 axios, cheerio, express npm i axios cheerio express nodemon npm i -g nodemon 4. index.js 코드작성 크롤링 할 사이트와 DOM 구조에 맞게 가져오도록 작성하기 나는 조만간 일본 여행을 갈 예정이라서 네이버에 “도쿄 여행” 이라.. 2023. 5. 27.
[Node.js 프로젝트 투입 일주일 전] 클러스터 모드 Nodejs는 싱글 스레드로 동작하고 단일 CPU 코어에서 실행된다. Nodejs 클러스터 = Primary 프로세스 + Worker 프로세스 primary 프로세스는 CPU 수만큼 포크해서 worker 프로세스를 만든다. worker 프로세스는 처리해야 할 비즈니스 로직을 구현해서 CPU 자원을 모두 사용하여 병렬로 처리하도록 한다. PM2 Nodejs의 프로세스 관리 대표적인 도구이며, 더 쉽게 클러스터 모드 실행이 가능하다 2023. 5. 21.
[Node.js 프로젝트 투입 일주일 전] 모듈 Module Require/Import 모듈 Module : 분리된 각각의 자바스크립트 파일, 각 파일은 특정한 목적을 가진 여러 개의 함수와 변수의 집합 사용하는 이유: 재사용을 위해! 함수와 변수를 객체에 담고 다른 자바스크립트 파일에서 사용하기 위해 module.exports에 대입하면 모듈로 적용된다. 모듈로 만들어진 자바스크립트 파일은 require()함수를 통해 가져올 수 있다. Require VS Import 둘 다 외부 모듈/라이브러리를 불러오는데 사용된다. Import라는 es6 모듈 시스템을 많이 사용하는 추세이지만, 태그를 사용하는 브라우저 환경에서나, NodeJS 환경 또는 Babel 사용이 불가할 때 Require 를 사용하므로 알아둬야한다. commonjs equire / exports es6 import / expo.. 2023. 5. 21.
728x90
반응형