티스토리 뷰
한 3년 전 쯔음에 진행한 프로젝트에서 백엔드 담당자와 대화를 하다가 node js에 대하여 들은 적이 있다. 대충 머리로는 이해하나 대충 입 밖으로 설명할 수 없는 개념이 마침 강의에 나와서 정리해보고자 한다.
node.js 란?
처음 node js를 접하고, 무엇인지 알아보고자 공식 홈페이지에 들어갔는데, 홈페이지에서 하는 이야기라곤
Node.js®는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임입니다.
라고 하는 어려운 이야기였다.
Node.js
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
nodejs.org
크롬 V8엔진도 알고, JS 런타임의 뜻도 이해했는데, 도무지 node js라는 것이 와닿지 않았다.
우리는 애플리케이션을 개발하면서 javaScript를 사용하게 되는데, 크롬에서는 이 JS를 해석하기 위하여 V8이라는 엔진을 내장하고 있다.
조합해보면 node.js는 크롬에 내장된 V8이라는 엔진을 기반으로 하여 서버에서 JS가 구동될 수 있는 환경을 제공해주는 것이라고 할 수 있다. 기존에는 JS를 동작시키려면 JS를 해석할 수 있는 크롬 외의 여러 브라우저들에서만 가능했기 때문에 웹페이지만 만들 수 있었다면 node.js의 등장으로 웹브라우저 밖. 즉, 서버 등 에서도 JS로 프로그램을 만들 수 있게 되었다는 뜻이다. 다만 말 그대로 '환경'이기 때문에 서버를 만들 수도 있는 것이지 그 자체가 서버인 것은 아니다.
(처음에는 이해가 안 될 수 있는데, 상단 글을 한 10번정도 복기하면 유레카! 하고 깨우쳐지리라 믿는다-!)
장점으로는 프론트엔드 개발자에 한정되긴 하지만 1) 프론트엔드 개발자가 접근하기에 러닝커브가 적어 무리없이 소화할 수 있다는 점이 있다.더불어 2) V8 엔진을 기반으로 하여 빠른 처리 속도를 자랑한다. 또한, 싱글 쓰레드이지만 3) 비동기적 처리로 현재 수행하는 업무가 마무리 될 때 까지 기다리지 않고, 다음 업무를 수행하여 그 단점을 극복한다. 4) NPM을 통하여 다양한 모듈을 손쉽게 사용할 수 있어 매우 효율적이다.
단점으로는 싱글 스레드의 단점을 비동기적 처리로 극복하였지만 그래도 1) 과중한 업무는 무리가 될 수 있다. 물론 다른 곳에서도 로직 관리는 중요하겠지만 비동기 방식이기 때문에 콜백지옥에 빠지지 않기 위하여 2) 로직 관리가 무엇보다 중요하다.
'lecture > 김민태의 프론트엔드 아카데미 1강' 카테고리의 다른 글
[김민태] 03. 클라이언트 앱 - XMLHttpRequest(+ajax) 란? (0) | 2022.02.12 |
---|---|
[김민태] 03. 클라이언트 앱 - Tailwind CSS (0) | 2022.02.11 |
[김민태] 02 JS 그리고 TS - Babel(바벨)이란? (0) | 2022.02.06 |
[김민태] 01. 시작하며 - 번들러 PARCEL에 대하여 (webpack과의 차이) (0) | 2022.02.05 |
[김민태] 김민태의 프론트엔드 아카데미 1강 시작기 (0) | 2022.02.05 |
- Total
- Today
- Yesterday
- 리코일
- js테스트
- gitRebase
- sentry
- 김민태
- js
- 센트리모니터링
- 깃명령어
- CSS
- 프론트엔드
- reacthook
- 모바일사파리
- 리액트
- 리액트상태관리
- 프론트앤드
- Git
- BFCache
- 사파리
- 자바스크립트
- 크롬
- 리액트훅
- 센트리
- TIL
- javascript
- npm
- vue
- frontend
- 깃
- react
- storybookUI
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |