네트워크를 통해 클라이언트에 정보나 서비스를 제공하는 컴퓨터(또는 프로그램)
var: 함수 스코프를 가짐, 재선언 가능let, const: 블록 스코프를 가짐문자열을 백틱으로 표현하고 ${}로 변수를 포함할 수 있는 것참고: 따옴표로 문자를 표현하면 '문자열 리터럴', 그냥 숫자로 쓰면 숫자 리터럴이라고 함.속성명과 변수명이 동일한 경우 한 번
Asynchronous Javascript And XML페이지 이동 없이 서버에 요청을 보내고 응답을 받는 기술요즘은 XML보다 JSON을 사용함.FormData
Read(읽기)Eval(해석)Print(결과물 반환)Loop(종료할 때까지 반복)노드의 콘솔이다.터미널에서 node를 입력하면 실행할 수 있다.즉, JS코드를 실행하게 해주는 일종의 node 내장 프로그램(또는 환경)브라우저에서는 콘솔을 이용할 수 있고, node에서는
브라우저에서는 일부를 제외하고 파일 시스템 접근이 금지되어 있지만,노드에서는 fs모듈로 파일 시스템 접근 가능!파일 읽기/쓰기 방식은1\. 버퍼2\. 스트림방식이 있다.버퍼링: 데이터를 모아서 한번에 처리함파일 크기만큼 메모리에 공간을 마련해 둠.이때 이 메모리에 저장
이벤트 이벤트를 만들 수도 있음. EventEmitter() 함수를 통해 이벤트를 emit 할 수 있다! 이벤트 메서드 on(이벤트명, 콜백) addListener(이벤트명, 콜백): on이랑 완전히 동일. 초창기 메서드.
통신은 기본적으로 클라이언트의 요청과 서버의 응답으로 이루어진다.(서버는 또다른 서버에 대해 클라이언트가 될 수도 있음.)이것도 요청도 일종의 이벤트다!
서버는 요청에 대한 응답을 보낼 때 쿠키를 보냄.쿠키는 그냥 key=value임클라이언트는 이 쿠키를 웹 브라우저에 저장했다가, 다음 요청때는 쿠키를 동봉해서 보냄.이렇게 자동 전송되는 쿠키를 서버가 받아서 누구인지 식별하는 것!서버는 쿠키를 헤더에 담아서 전송함.브라
싱글 프로세스로 동작하는 노드가 CPU 코어를 모두 사용할 수 있게 해주는 모듈코어가 8개인 서버가 있어도, 노드는 보통 1개의 코어를 사용함.(스레드 풀 제외)cluster 모듈을 설정하면, 코어 하나당 노드 프로세스 하나가 돌아가게 할 수 있음.근데 프로세스는 메모
Node Package Manager패키지: npm에 업로드된 노드 모듈설치한 패키지의 버전 관리하는 파일package.json에 정의된 사용자 지정 스크립트를 실행하는 명령어start, test는 예외적으로 run 없어도 동작함.\--save 옵션은 dependenc
node에서 res.write(), res.end()로 하던 걸 res.send()로 간단하게 처리 가능라우팅을 if문으로 분기처리 했던 걸 app.get('/', 라우터); 형태로 할 수 있음.요청과 응답의 중간에 위치함.익스프레스의 핵심.미들웨어는 app.use(미
multer는 어려우니까 따로 정리함.이미지, 동영상 등 여러 파일을 멀티파트 형식으로 업로드할 때 사용하는 미들웨어멀티파트: enctype이 multipart/form-data인 경우폼을 통해 업로드된 파일은 body-parser로 처리할 수 없음.직접 파싱도 안 됨
app.get이 라우터임.이거 자체가 get을 처리하기 위한 라우팅 메소드임.근데 모든 엔드포인트를 다 처리하면 코드가 길어지니까,엔드포인트 별로 별도의 라우터 객체를 연결함.라우터의 콜백에서 next()를 호출하면 다음 미들웨어로 넘어간다.근데 next('route'
Cross-Origin Resource Sharing다른 도메인의 자원을 요청할 수 있도록 하는 메커니즘브라우저는 기본적으로 SOP(Same Origin Policy)를 따른다.CORS를 허용해서 서로 다른 도메인끼리 통신이 가능하다.다른 도메인으로 API 요청을 하면
원리를 보면 미들웨어를 호출할 때 req, res는 진짜 HTTP 요청과 응답을 사용하는 게 아니라,jest.fn()으로 가짜 함수를 만듦.그 객체를 집어넣고, 내가 테스트 하려는 함수를 호출하는 것fn 목 함수는 단순히 반환 값 뿐만 아니라, resolved prom
Socket.IO는 웹 소켓을 활용한 라이브러리임.웹 소켓 그 자체가 아님!HTTP와 다르게 WS 프로토콜을 씀.그 전에는 폴링으로 씀.(주기적으로 요청과 응답을 함)on은 이벤트를 등록하는 것!http와 ws는 같은 포트를 공유할 수 있음!
주석의 의미!shebang(hashbang) 라인unix 기반에서 스크립트 파일 실행할 때 사용되는 인터프리터를 지정/usr/bin/env: 'env' 프로그램 경로. env는 환경변수를 이용해 프로그램을 실행하는 unix 명령어임.즉, node를 env를 통해 위치를
위도우에서는 process.env 설정 불가cross-env 패키지로 운영체제 상관 없이 환경변수 설정 가능XXS 공격 방어사용자가 업로드한 HTML을 sanitize-html 함수로 감싸면 허용되지 않는 태그, 스크립트는 제거됨.(두 번째 인수로 옵션 넣을 수 있음.
진짜 서버가 없다는 뜻이 아니라 클라우드 서비스가 서버를 대신 관리해주니까,개발자나 운영자가 서버를 관리할 필요가 없다는 의미즉, 개발자는 비즈니스 로직만 잘 작성하면 됨.서버리스는 인스턴스를 구매하는 게 아니라, 코드만 업로드하고사용량에 따른 요금만 지불하는 것즉,