Node.js 3

[Node.js] node.js 동작 방식: thread & thread pool

node.js 서버는 프로세스 안에 있는 하나의 단일 스레드(single thread)에서 실행된다. node.js 서버를 실행시키면 콜백 함수 안에 있지 않은 모든 코드인 top-level 코드들이 실행된다. 그 다음 서버 어플리케이션이 필요로 하는 모든 모듈들이 require되고 모든 콜백 이벤트가 등록된다. 마지막으로 이벤트루프가 실행된다. node.js는 이벤트 기반임으로 어플리케이션의 대부분의 일이 이벤트루프에서 처리된다. 어떤 작업들은 이벤트루프가 처리하기에 무겁다(heavy, expensive). 예를 들어 파일 처리 파일 압축, 비밀번호 hashing, DNS lookup 등이 있다. 만약 이러한 작업들이 이벤트루프에서 처리되면 스레드가 block 되어 시간이 많이 소요될 수 있다. 이렇게..

Node.js 2021.09.29

[Node.js] HTTP 모듈을 사용하여 RESTful한 서버 만들기

REST REpresentational State Transfer의 줄임말이며, 서버에 자원을 정의하고 자원에 대한 주소를 지정하는 방법을 가리킵니다. GET: 서버 자원을 가져오고자 할 때 사용합니다. 요청의 본문에 데이터를 넣지 않습니다. 데이터를 서버로 보내야 한다면 쿼리스트링을 사용합니다. POST: 서버에 자원을 새로 등록하고자 할 때 사용합니다. 요청의 본문에 새로 등록할 데이터를 넣어 보냅니다. PUT: 서버의 자원을 요청에 들어 있는 자원으로 치환하고자 할 때 사용합니다. 요청의 본문에 치환할 데이터를 넣어 보냅니다. PATCH: 서버 자원의 일부만 수정하고자 할 때 사용합니다. 요청의 본문에 일부 수정할 데이터를 넣어 보냅니다. DELETE: 서버의 자원을 삭제하고자 할 때 사용합니다. ..

Node.js 2021.08.25

[Node.js] Node.js?

Node.js란? 노드 공식 사이트에는 노드를 다음과 같이 설명하고 있습니다. Node.js는 Chrome V8 Javascript 엔진으로 빌드된 Javascript 런타임입니다. Node.js는 확장성이 있는 네트워크 어플리케이션 개발에 사용되는 소프트웨어 플랫폼이다. 특히 서버사이트에서 많이 사용되고 있습니다. 사용되는 언어로는 자바스크립트(Javascript)를 활용하며, Non-blocking I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있는 것이 특징입니다. 내장 HTTP 서버 라이브러리를 포함하고 있어 웹 서버에서 아파치 등의 별도 소프트웨어 없이 동작하는 것이 가능하며, 이를 통한 웹 서버의 동작에 있어 더 많은 통제에서 벗어나 여러 가지 기능을 가능하게 합니다. 자바..

Node.js 2021.08.24
반응형