HTTP 요청을 처리하고 응답을 보내주는 프로그램을 웹 서버(Web Server)라고 부른다.
옛날의 서버 클라이언트(지금보다는 비교적 단순화) -> 의심의 여지가 없다
최근의 서버 클라이언트 -> 고도화 된 웹으로 인하여 여러곳에 있는 리소스를 활용할 필요가 생겼다 (cross origin에서 리소스를 요청 사용)
우선 이번 스프린트를 진행하면서 모르는 문법과 메소드들이 계속 나와서 1차 당황🤢
심지어 메소드가 여기서 왜 쓰인지도 모르겠어서 2차 당황🤢
당황의 연속으로 어찌저찌 이해하려고 해봤지만 생소한 언어들 뿐이여서 페어분과 함께 여러 MDN이랑 HTTP 트랜잭션 해부 를 정독해봤다.
우선 모르는 메소드를 정리하는게 우선이니 새로 알게 된 언어를 정리해보자!
const http = require('http');
const PORT = '5000';
// 특정포트를 제외하고는 거의 변경가능하다
const ip = 'localhost';
const server = http.createServer((request, response) => {
})
- 모든 node 웹 서버 애플리케이션은 createServer를 이용하여 웹 서버 객체를 만들어야 한다.
- 포트가 열리지 않을 경우 터미널을 실행해주고 그냥 웹 서버창 주소에 해당 로컬 주소를 복붙해서 입력하자
OPTION : CORS 요청을 처리해 준다.
GET : Client가 처리 가능한 데이터로 넘겨준다.
POST : results에 올라온 데이터를 넣어주고 데이터를 반환해 준다.
Access-Control-Allow-Origin 을 특정 도매인으로 설정->
해당 도메인이 아닐 경우는 본요청을 보내지 않는다 ->
서버가 보내는 예비응답(defaultCorsHeader)이 브라우저가 본 요청을 보낼지 말지 결정하는데 조건
클라이언트의 도메인과 같은 도메인의 서버로부터 리소스를 받아오려고 할 때는 문제가 없다.
하지만 다른 도메인의 서버로부터 리소스를 받아오고 싶다면? ➡️ CORS
데이터 조각
하나의 파일을 효과적으로 다루기 위하여 여러가지의 파일로 다시 나누는 것
chunk(['a,'b','c','d'],2) // 이렇게 호출하면?
-> [['a','b'],['c','d']] // 각각 두개씩 묶은 배열을 반환한다.
chunk(['a,'b','c','d'],3) // 이렇게 호출하면?
-> [['a','b','c'],['d']] // 호출된 3개는 한배열에 묶어주지만 나머지는 남은 배열에 넣어서 반환해준다
한줄 요약 -> 데이터 전송시 잠깐 저장하는 임시 메모리

만약에 어떤 작업이 데이터를 처리하는 시간보다 데이터가 도착하는 게 더 빠르다고 가정해보자. 미리 도착한 데이터는 어디에선가 처리되기를 기다리고 있어야 할 것이다.
반대로 어떤 작업이 데이터를 처리하는 시간이 데이터가 도착하는 것보다 빠르다고 가정할 경우. 이 경우에도 어느 정도의 데이터량이 쌓일 때까지 기다려야한다. (버퍼링이 걸리는 상황)
buffer가 다 차면 이를 전송하고 다시 buffer를 채우는 버퍼링 작업을 연속하는 것
아는한에서 정리해봤는데 여전히 모르는것들 투성이다.
내일 리뷰시간에 집중해서 봐야지!😎