Node.js
Node 란? #
JavaScript의 Runtime(실행기) : 브라우저 없이도 사용할 수 있는 JS 실행기
활용 : 서버, 데스크탑 웹, 모바일 웹, 게임 , but 속도가 느리므로 운영체제에서는 사용 안한다.
제작된 과정 #
원래 JS는 구글에서 개발한 V& 엔진 이라는 웹브라우저 내부에서 실행되는 JS엔진을 통하여 웹브라우저에서만 사용가능했다. 하지만 구글이 오픈소스로 풀어버린 이후 브라우저 바깥으로 JS를 빼버리게 된 것이 Node.js 이다.
한계 : 하지만, 브라우저에서 벗어났기 때문에 document / window 객체는 사용불가능
설치 #
Node.js 설치 페이지 에서 LTS 버전을 사용했다.LTS버전은 Long Term Support의 약자로 안정적인 버전으로 3년간 유지보수 / 업데이트를 지원한다
컴파일 언어 vs 런타임(인터프리터) 언어 #
1. 컴파일 언어 #
전체를 번역하고 실행하고 CPU가 알아들을 수 있는 언어다. 번역이 되면 실행기 없이도 앱 동작이 가능하다속도가 빠르다- C / C++
2. 런타임(인터프리터) 언어 #
- 중간중간 실행 가능하고 명령이 오면
즉각실행 가능하다. 실행에 필요한 것들을 모아놓은환경을 뜻하는 런타임에 걸맞게 실행기가 있어야만 프로그램 동작 가능하다. 컴파일에 비해 상대적으로 느리다. - Python / JS
REPL #
- Node의 Shell을 뜻하고 사용자가 어떤 값을 입력하면 결과 읽고 해석하고 출력하고 반복하는
터미널이다. Read Eval Print Loop 의 줄임말
Express #
- Node.js의 대표적인
웹 프레임워크로서 손쉽게 웹서버를 구축할 수 있게 만든 프레임워크다. 웹서버를 구축하기 위해서는 포괄적으로 가능하게 만든 Node.js 보다는 세세하게 조작가능한 Express를 사용하는 것이 좋다.