Backend-dev/nodeJS & express 6

nodejs로 라우팅 서버 실습해보기!

-라우팅 : 서로 다른 일을 하게 하기 ⇒ 요청에 따른 다른 응답 결과를 보내는 것-요청에 대한 정보-헤더 구성요소요청URL요청 메소드상태코드(응답)지금은 아무것도 안 뜬다..노드의 http 모듈로 서버를 간단히 만들어서 다시 조회해보자포스트맨으로 다시 요청해보기-옵션 추가결과-응답에 대한 정보 추가-응답 형식(MIME)이란? “나 이렇게 응답할거야~”text/plaintext/htmlapplication/json : 자바스크립트 객체 json 형태로 응답등등등…다음을 참고하자.MIME types (IANA media types) - HTTP | MDN MIME types (IANA media types) - HTTP | MDNA media type (also known as a Multipurpose ..

[javascript] express로 사용자 req 분석하기

node.Js express로 req를 분석해보자. 1. 사용자 ip 받아오기루프백 서버const express = require('express');const app = express();// IPv6 주소에서 IPv4 주소를 추출하는 함수function extractIPv4(ip) { if (ip === '::1') { return '127.0.0.1'; }else if (ip.includes('::ffff:')) { return ip.split('::ffff:')[1]; } return ip; } app.get('/', (req, res) => { // IP 주소 가져오기 const ip = req.headers['x-forwarded-f..

[javascript] Buffer(버퍼)란? | 장,단점과 노드js를 활용한 예시

버퍼 파일을 읽거나 쓸 때 한 덩어리로 처리하지않고 작은 단위로 시간을 절약하는 방법이다.전송 속도를 조절하거나, 데이터의 흐름을 제어하기 위해 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 물리적인 메모리 영역이다.주로 입출력시에 많이 사용하는데, 예를 들어 파일을 읽어올 때  데이터가 바로 전달되지 않고 우선 출력버퍼에 데이터가 저장된다.그러다가 버퍼가 가득 차거나 특정 경우가 발생 시(개행 문자, 엔터 등) 그 내용을 전달한다.보통 이렇게 버퍼 단위로 전송할 때, '버퍼를 비운다'고 표현하며,전달받은 입장에서는 전체 내용을 한번에 다 가져오지 않고 버퍼 하나 크기 만큼만 받게 된다.    - 버퍼의 크기는 고정되지 않을 수 있다. 버퍼의 크기는 시스템 설정이나 프..

[javascript] Stream(스트림)이란? | 장,단점과 노드js를 활용한 예시

스트림 스트림(Stream)은 대용량의 데이터를 효율적으로 처리하기 위한 추상화된 인터페이스이다.파일을 읽거나 쓸 때 한 덩어리로 처리하지않고 작은 단위로 시간을 절약하는 방법으로,한 방향으로 흐르는 데이터의 큰 흐름이라고 볼 수 있다.스트림은 운영체제에 의해 생성되며, 가상의 연결고리로써 데이터가 흐르는 중간 다리 역할을 한다.또한 스트림은 데이터를 작은 청크(chunk) 단위로 처리하므로,메모리 사용을 최소화하고 데이터 처리를 효율적으로 할 수 있다.참고로 개발 시 스트림을 만들면, RAM에 쌓이기 때문에 다 쓰고 반드시 닫아줘야 한다.강물이 넘쳐흐르면 안되기 때문이다.   스트림은 이벤트 기반의 API를 사용하여데이터 읽기, 쓰기, 변환 등의 작업을 비동기적으로 수행한다.    Readable St..

[javascript] Node.js와 express 비교

자바스크립트는 Html 태그를 동적으로 추가하고 웹의 동적인 동작을 처리할 때 사용된다.뿐만 아니라 클라이언트에 동적인 기능을 제공함과 동시에 단일 언어로 클라이언트와 서버를 모두 개발할 수 있는 가능성이 있다. 자바스크립트를 통해 서버를 개발하고 구동할 수 있는 방법엔 두 가지가 있다.바로 Node.js와 express다. 오늘은 이 두가지를 통해 서버를 구동하고그 문법에는 어떤 차이가 있으며 각 특징은 어떤지 포스팅하고자 한다.  Node.js 특징   1. 비동기 I/ONode.js는 비동기식 입출력을 기본으로 하여 높은 성능을 발휘한다. 이는 많은 요청을 동시에 처리할 수 있게 한다.ex:) 채팅 애플리케이션많은 사용자가 동시에 메시지를 주고받는 실시간 애플리케이션에 비동기 I/O를 사용하면 각 ..

[javascript] 콜 스택과 이벤트 루프 | 동기/비동기 처리 차이?

동기 처리란, 쉽게 말해 순차적인 처리를 의미한다.만약 응답과 요청이 동기라면, 어떤 일이 발생할까?A 클라이언트가 요청을 보냈다고 하자. Aa서버는 요청을 받고 응답을 한다.문제 없다. 케이스를 바꿔보자.A 클라이언트와 B 클라이언트가 요청을 보냈다고 하자. Aa 서버는 요청을 각각 받고 각각 응답을 한다.여기까진 괜찮을 지도 모른다.   그런데 보통, 클라이언트:서버는 다:1 관계다.서버는 다중 처리를 해야 하는 경우가 대부분이다.이렇게 요청을 받을 때는 참고로 콜 스택을 사용하기 때문에 계속 요청이 쌓이게 되는 것이다.이렇게 되면 나중으로 갈수록 대기 시간이 천문학적으로 길어지게 되고이러한 불편함은 클라이언트가 감수해야 된다. 성능은 크게 떨어지고 서버의 부하도 심해질 것이다. ⇒ 고로 서버를 동기..