#1. Node.js 개념 이해하기
1. Node.js의 개념
1) Node.js란?
- Node.js는 Chrome V8 엔진을 기반으로 한 자바스크립트 런타임(실행환경)이다.
- 이 V8 엔진을 크롬 내부에서만 쓰는게 아니라 밖에서도 사용할 수 있게 별도의 실행환경을 구축한 것 이다.
- 확장 가능한 네트워크 어플리케이션을 구축하는 목적으로 디자인 되었다.
- 즉, 자바스크립트로 백엔드 서버를 만들기 위해 크롬에서 V8 엔진만 따로 가져와 서버를 만들 수 있게 했다.
※ V8 엔진 ?
크롬 브라우저에 내장되어 있는 자바스크립트를 실행하는 엔진이다.
2) 특징
- 사용되는 언어는 자바스크립트이다.
- Non-blocking I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있다.
※ Non-blocking I/O ?
함수 호출 시 당장 실행하는 것이 아니라(동기 → 블로킹) 일단 어느 곳에 쌓아 놓고 동시에 요청을 처리하고(비동기 → 논 블로킹), 요청이 완료된 순서대로 처리(스택이용) 한다.
3) 장점
- 웹 프레임워크의 최신 트렌드를 전부 받아들이면서 컴파일러 언어인 자바에 비해서 코딩하기 쉽다.
- 파이썬과 루비 같은 언어에 비해서 대중적이다.
- V8 엔진의 등장으로 다른 경쟁 언어에 비해 성능이 빠른 자바스크립트를 도입했다.
- 비동이 이벤트 드리븐 방식이라는 최신 기술을 사용하고, V8엔진을 사용하기 때문에 자바스크립트임에도 불구하고 성능이 빠르다.
- 즉, 최신 기술을 적용했을 뿐만 아니라 그 기술을 많은 개발자들이 편하게 사용할 수 있도록 대중화 시킨것이 장점이다.
2. Node.js 설치 및 설정
1) 설치하기
- https://nodejs.org/ko/ Node.js 공식 홈페이지에서 다운 받으면 된다.
- 이미 자바스크립트와 리액트를 공부했다면 설치 돼있는게 정상이다.
2) 설치 확인
node --version
- 명령프롬프트(win) 또는 터미널(mac)에 위와 같은 명령어를 입력하면 설치한 버전이 나온다.(버전이 나오면 정상적으로 설치)
3) Mac에 환경 변수 등록하기
1. 터미널에서 사용자 초기화 파일을 연다
- zsh를 사용 하는 경우
vi ~/.zshrc
- zsh를 사용하지 않는 경우
vi ~/.bash_profile
2. 초기화 파일을 수정한다.
- 방향키로 파일의 맨 아래로 이동한 후 입력(INSERT) 모드 전환을 위해 i를 누른다.
- 환경 변수를 추가한다.
export 변수이름="내용"
- 입력 후 ESC키를 누르고 :wq 명령어를 입력 후 엔터를 누른다. (w: write/저장, q: quit/떠나다 .. 즉 저장 후 나온다는 명령어)
- 변경 사항을 반영하기 위한 아래 명령어를 수행한다.
source ~/.zshrc
3. Node에서 환경변수 접근하기
process.env.환경변수이름
※ 출력문의 종류
console.log();
- 개발 단계에서 부수적인 데이터를 출력하고자 할 때 사용한다.
- 제품을 배포할 때는 console.log는 웬만하면 삭제해서 배포하는게 좋다.
- 무언가 출력한다는 것은 성능에 영향을 줄 수 있기 때문에 정말 필요한 로그가 아니면 다 지우고 배고 하는게 중요하다.
console.debug();
- 개발자가 변수의 값을 확인하기 위한 용도로 사용하는 출력
- 통상적으로 console.log와 크게 구분하지 않는다.
console.info();
- 시스템의 정보를 출력할 때 사용한다.
- 이 또한 배포할 때는 지우고 배포하는게 좋다.
console.warn();
- 경보 단계에서 사용.
- 에러는 아니지만 정상적이지 않다고 판단되는 경우.
console.error();
- 에러인 경우 사용.
- 심각할 경우, 예상하지 못한 에러, 시스템 에러 등에 사용된다.
'국비수업 > Node.js' 카테고리의 다른 글
[Node.js] HTTP Client (0) | 2022.06.27 |
---|---|
[Node.js] Scheduler (0) | 2022.06.27 |
[Node.js] Log (0) | 2022.06.27 |
[Node.js] Event / File Input Output (0) | 2022.06.24 |
[Node.js] Node Modules (0) | 2022.06.23 |