티스토리 뷰

한 3년 전 쯔음에 진행한 프로젝트에서 백엔드 담당자와 대화를 하다가 node js에 대하여 들은 적이 있다. 대충 머리로는 이해하나 대충 입 밖으로 설명할 수 없는 개념이 마침 강의에 나와서 정리해보고자 한다.


https://nodejs.org/ko/

node.js 란?

 

처음 node js를 접하고, 무엇인지 알아보고자 공식 홈페이지에 들어갔는데, 홈페이지에서 하는 이야기라곤

Node.js®는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임입니다.

라고 하는 어려운 이야기였다.

https://nodejs.org/ko/

 

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) 로직 관리가 무엇보다 중요하다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
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
글 보관함