본문 바로가기
반응형

전체 글242

성능 테스트 관련 용어 정리 기능 배포 전 성능 테스트 단계도 필요하다.성능 테스트에는 부하 테스트와 스트레스 테스트가 있다.성능 테스트를 통해 최악의 상황을 대비할 수 있다.  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.
[Node.js 프로젝트 투입 일주일 전] Nodejs 란? 회사 동료와 함께 읽기로 구매하고, 1회 완독 하였다~ 그 후 포인트 정리하기! Nodejs란 ? Chrome V8 엔진으로 빌드된 Javascript 런타임이다. Nodejs 특징 특징1) 논블로킹 I/O 자바스크립트는 한번에 하나의 작업을 처리하지만 I/O 작업의 경우는 동시에 처리가 가능하다. ex) 파일 읽기/쓰기, 데이터베이스 데이터 전송/조회 * 논블로킹: 함수를 호출하면 해당 함수에 제어권을 넘겨줘 다른 작업을 바로 진행할 수 있도록 하는 방식 (= 비동기) * 블로킹: 함수를 호출하면 해당 함수가 작업을 마칠때까지 제어권을 주지 않고 대기하는 방식 (= 동기) 특징 2) 싱글 스레드 * 프로세스: 작업 처리를 위해 작업 단위를 두고 프로세스를 통해 작업을 처리한다. * 스레드: 프로세스 안.. 2023. 5. 17.
728x90
반응형