티스토리 뷰
한 3년 전 쯔음에 진행한 프로젝트에서 백엔드 담당자와 대화를 하다가 node js에 대하여 들은 적이 있다. 대충 머리로는 이해하나 대충 입 밖으로 설명할 수 없는 개념이 마침 강의에 나와서 정리해보고자 한다.
node.js 란?
처음 node js를 접하고, 무엇인지 알아보고자 공식 홈페이지에 들어갔는데, 홈페이지에서 하는 이야기라곤
Node.js®는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임입니다.
라고 하는 어려운 이야기였다.
크롬 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
- npm
- 리액트
- Git
- 모바일사파리
- sentry
- 크롬
- BFCache
- 센트리
- js테스트
- 사파리
- 리액트훅
- 김민태
- 자바스크립트
- react
- frontend
- 깃
- 리액트상태관리
- 깃명령어
- vue
- reacthook
- gitRebase
- 리코일
- CSS
- javascript
- TIL
- 프론트엔드
- 센트리모니터링
- js
- 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 | 29 | 30 | 31 |