Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- java 백준 1차원 배열
- 리눅스마스터 1급 정리
- Memoir
- 프로그래머스
- 고잉버스
- Kotlin
- 연습문제
- GoingBus
- 자바스크립트 코딩의 기술
- 백준 javascript
- 개발자 회고록
- 코딩테스트
- 백준 java
- toCharArray
- 리눅스마스터 3과목
- 문자열
- 월간코드챌린지
- 코테
- 리눅스마스터1급
- 반복문
- 리눅스
- 스프링 빈
- 스프링 컨테이너
- Java
- 카카오
- JavaScript
- map
- 자바
- Linux
- 명령어
Archives
- Today
- Total
hoon's bLog
node.js Node 기초, 기본 개념 본문
반응형
노드(Node)란?
- Node.jsⓇ는 크롬 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임을 말한다.
- 노드는 V8과 libuv를 내부적으로 포함하고 있다.
- V8 엔진: 오픈 소스 자바스크립트 엔진 → 속도 문제 개선
- libuv: 노드의 특성인 이벤트 기반, 논블로킹 I/O 모델을 구현한 라이브러리로 내부구조는 아래 그림과 같다.
- 런타임(runtime): 특정 언어로 만든 프로그램들을 실행할 수 있게 해주는 가상 머신(크롬의 V8 엔진 사용)의 상태
- 다른 런타임으로는 웹 브라우저(크롬, 엣지, 사파리, 파이어폭스 등)가 있음
노드의 역할
- 자바스크립트로 만든 프로그램들을 실행할 수 있게 해 준다!
- 자바스크립트 런타임으로 서버의 역할도 수행할 수 있다!
- 서버 실행을 위해 필요한 http/https/http2 모듈을 제공
노드의 특성
- 이벤트가 발생할 때 미리 지정해 둔 작업을 수행하는 방식
- 이벤트의 예 : 클릭, 네트워크 요청, 타이머 등
- 이벤트 리스너 : 이벤트를 등록하는 함수
- 콜백 함수: 이벤트가 발생했을 때 실행될 함수
Non-Blocking
논 블로킹 : 오래 걸리는 함수를 백그라운드로 보내서 다음 코드가 먼저 실행되게 하고, 나중에 오래 걸리는 함수를 실행
- 쉽게 말해, 블로킹 방식은 순차적으로 작업을 실행, 논블로킹은 작업 상태와 상관없이 동시에 진행이 가능하다.
- 논 블로킹 방식 하에서 일부 코드는 백그라운드에서 병렬로 실행됨
- 일부 코드는 I/O 작업(파일 시스템 접근, 네트워크 요청), 압축, 암호화 등, 나머지 코드는 블로킹 방식으로 실행된다.
- I/O 작업이 많을 때 노드 활용성이 극대화된다고 한다!
node 설치하기
아주 간단하다!
node.js 공식 홈페이지에 'Download' 들어가서,
본인의 운영체제에 맞게 다운로드하면 된다!
설치 완료 후 Window 명령 프롬프트 or Mac Terminal을 실행하여 다음 명령어 입력
$ node -v
$ npm -v
버전은 다를 수 있고, 버전이 떴다면 설치 성공이다!
이후 tool은 VS Code
나 Jet Brain에서 제공하는 intelliJ
를 사용하면 되겠다!
회사 업무 하느라 node의 기초나 개념을 대강 봤었는데,
이번 블로그 포스팅을 통해서 조금씩 깊이 알아보는 시간을 만들어 봐야겠다!
언제나 새로운 정보 공유와 잘못된 정보
비판/지적/태클은 환영입니다!
도움이 되셨다면 공감♥️, 댓글 부탁드려요:)
끝.
Reference
Node.js 교과서 1장 요약정리
728x90
반응형
'IT > node.js' 카테고리의 다른 글
node.js 호출 스택 call stack, 이벤트 루프 event loop (3) | 2023.09.21 |
---|