요약
- Node.js : Chrome 브라우저의 V8 Javascript 엔진을 탑재한 Server Side 오픈소스 Javascript 런타임.
- 주로 이벤트 기반의 높은 처리 성능을 낼 수 있는 네트워크 서버(API)를 구축 시 활용.
- Node.js 기반의 네트워크 서버(API)의 장점 :
- Frontend와 Backend 기술 스택 통합
- 빠른 처리 속도와 높은 동시 요청 처리 성능
- MSA (Micro Service Architecture)에 적합
- NVM (Node Version Manager) : node.js의 버전 관리.
- javascript 코드 실행 방법
- REPL (Read Eval Print Loop)
- .js 파일에 코드 작성 및 실행
Chrome 브라우저의 V8 Javascript 엔진을 탑재한 Server Side 오픈소스 Javascript 런타임
Javascript
, Chrome V8 엔진
, Server Side
, Runtime
Javascript
: 브라우저(Chrome, Safari, Internet Exploere)에서 HTML 요소 생성부터 모든 페이지 및 기능을 동적으로 처리할 수 있도록 만들어주는 브라우저에서 실행되는 프로그래밍 언어.
👉 Google Maps 등 JS로 웹 서비스 개발 수요가 늘어나면서 더욱 빠르게 실행시킬 수 있는 엔진이 필요해짐.
V8 Javascript 엔진
: 2008년, Google이 주도하여 C++로 개발한 Javascript 언어로 작성된 코드를 컴퓨터가 해석하기 쉬운 바이트 코드로 변환하는 엔진.
👉 Javascript를 웹 브라우저 외에서도 수요가 커지게 됨
Node.js: Chrome 브라우저의 V8 Javascript 엔진을 탑재한 이벤트 기반의 Server Side
오픈소스 Javascript 런타임
2009년 11월, Joyent의 라이언 달(Ryan Dahl)이라는 미국 소프트웨어 공학자가 브라우저의 자바스크립트 엔진뿐만 아니라 그 이외의 환경에서도 동작할 수 있도록 V8 엔진을 브라우저에서 독립시킨 Javascript의 또 다른 실행 환경(runtime)
인 Node.js 발표.
👉 (브라우저에선 할 수 없는) 운영체제의 파일 시스템 접근, 파일 조작 등의 다양한 일들이 가능해짐
당시 최고였던 웹 서버 Apache HTTP Server의 최대 10,000개 이상의 동시 요청을 다루지 못하는 이슈가 있었고 자바스크립트(Javascript)를 그대로 활용, 이벤트 기반의 동시요청 처리에 높은 성능을 낼 수 있는 Network Server를 만들자~
👉 Node.js 탄생
현재: 페이팔, 넷플릭스, 월마트, 링크드인, 우버 등 메인/서브 백엔드 서버를 만드는데 사용됨.
HTTP API 서버를 만드는 방법이 다양한데,
왜 Node.js 기반으로 API 서버를 구현해야 하는가?
(익숙한 언어가 따로 없다면)
JIT(Just In Time, 즉시) 컴파일 방식
- 프로그램을 실행하는 시점에서 필요한 부분을 즉석으로 컴파일하는 방식
- 같은 코드를 매번 해석하는 대신 처음 실행될 때 인터프리트를 하면서 자주 쓰이는 코드를 캐싱한 뒤, 이후에는 캐싱된 코드를 가져다 쓰기 때문에 인터프리터의 느린 실행 속도를 개선
이벤트 기반(Event Driven) 리액터 패턴❓
Single Thread ❓
non-blocking I/O 모델 구현 ❓
(node.js를 설치했다는 전제 하에)
$ node // node.js에 진입하기
자바스크립트에서 한 것처럼, 문자와 숫자의 연산, console.log() 등을 사용할 수 있다
node.js에 내장된 모듈 require()를 실행하면 'fs'(file system)에 있는 모듈을 가져온 후에 상수 a에 할당할 수 있다.
그리고 상수 a를 출력하면 여러가지 함수가 내장된 것을 확인할 수 있다;
작성한 코드가 제대로 동작하는지 테스트하는 용도
편집기(vim, vscode)에서 .js확장자 파일 생성, 코드 작성, 실행한다
터미널에서 vim 으로 실행하기
- 파일 생성 및 확인:
touch hello.js
👉ls
- 코드 작성:
vi hello.js
👉 i키 👉 console.log("hi") 👉 esc키 👉:wq
- 실행:
node hello.js
- 파일 삭제 및 확인:
rm -rf hello.js
👉ls
터미널에서 vscode 실행하기
1. vscode 설치 및 실행
2. 환경 경로 설정: [command + shift + p] 👉 'shell' 입력 👉 'install code command in path' 클릭
3. 터미널에서 vscode 실행code .
vscode에서 터미널 열기 : [shift + control + `]