[TIL] Node.js와 Express

krkorklo·2022년 9월 2일
0

TIL

목록 보기
19/29

Node.js

Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임

  • JS를 서버에서도 사용할 수 있도록 만든 프로그램 (스트립트 언어 x)
  • V8 엔진 위에서 동작하는 환경
  • 웹 서버와 같이 확장성 있는 네트워크 프로그램을 제작하기 위해 만들어짐
  • 내장 HTTP 서버 라이브러리를 가지고 있어 별도의 소프트웨어 없이 동작 가능
  • 싱글스레드 사용
    • 이벤트 루프
    • 비동기 함수

Event

  • libuv 라이브러리(비동기 입출력, 이벤트 기반에 초점을 맞춘 라이브러리) 사용
  • 노트의 특성인 이벤트 기반, 논 블로킹 I/O 모델 구현
  • 이벤트 기반
    • 이벤트가 발생할 때 무엇을 할지 미리 등록하고 이벤트 리스너에 콜백함수 등록
    • 이벤트가 발생하면 리스너에 등록해둔 콜백함수를 호출

Event Loop

  • 여러 이벤트가 동시에 발생했을 때 어떤 순서로 콜백 함수를 호출할지 판단
  • 이벤트가 종료될 때까지 이벤트 처리를 위한 작업을 반복 (loop)

논 블로킹 I/O

  • 이벤트 루프를 사용해 오래 걸리는 작업을 효율적으로 처리 가능
  • 파일 시스템 접근, 네트워크 요청 등 입출력 작업은 비동기 방식으로 블로킹을 만들지 않게 처리

Express

Node.js의 프레임워크로 Node.js를 이용해 웹 어플리케이션을 만들기 위한 틀을 제공하는 라이브러리의 집합

Template Engine

  • 동적인 결과를 정적인 파일에 담기 위해 사용
  • 서버 코드인 JS로 연산된 결과를 변수에 넣고 변수를 뷰 파일에서도 사용할 수 있게 도와줌
  • ex. pug, ejs

ejs

  • <% %> 코드로 js 코드 사용
  • <%=%> 코드로 서버에서 전송된 데이터 사용

참고자료

https://hanamon.kr/nodejs-개념-이해하기/
https://gongbu-ing.tistory.com/31

0개의 댓글