본문 바로가기

개발/Nodejs

노드 시작하기

반응형

노드 공식 사이트(https://nodejs.org/ko) 에서는 노드를 다음과 같이 설명하고 있다.


Node.js는 크롬 V8자바스크립트 엔진으로 빌드된 자바스크립트 런타임입니다. Node.js는 이벤트기반, 논블로킹 I/O 모델을 사용해 가볍고 효율적입니다. Node.js의 패키기 생태계인 npm은 세계에서 가장 큰 오픈 소스 라이브러리 생태계이기도 합니다. 


대부분 노드를 서버로 사용하는 방법을 익히기 위해 이 책을 읽고있을것 -> 딩동댕


- 서버와 런타임이 무엇인지 알아보자 

요청

클라이언트 <========> 서버

응답


- 자바스크립트 런타임

런타임은 특정 언어로 만든 프로그램들을 실행할 수 있는 환경을 뜻한다. 

따라서 노드는 자바스크립트 프로그램을 컴퓨터에서 실행할 수 있게 해줍니다. 

Node.js > V8 

V8이 Node.js에 포함되어 있음


1.2 서버로서 노드 


노드외의 서버를 개발하다 보면 Apache, nginx, IIS처럼 별도의 웹 서버를 설치해야 하는 경우가 많습니다. 심지어 Tomcat같은 웹 어플리케이션 서버(WAS)를 추가로 설치해야 하는 경우도 있습니다.이 경우 프로그래밍 외에도 웹 서버와 WAS사용법을 익혀야 합니다. 하지만 노드는 내장된 웹 서버를 사용하면 되므로 편리합니다. 


실시간 애플리케이션이나 주식차트, JSON데이터를 제공하는 API 서버가 노드를 많이 사용합니다. 

노드가 아무리 좋다고 하더라도 추천하지 않는 경우도 있습니다. 이미지나 비디오처리, 대규모 데이터 처리같이 CPU를 많이 사용하는 작업을 위한 서버로는 권장하지 않습니다. 노드보다 더 적합한 다른 언어 서버가 많습니다. 요즘은 AWS Lambda나 Google Cloud Functions같은 서비스에서 노드로 CPU를 많이 사용하는 작업을 처리하는것을 지원합니다. 


그렇다면 실생활과 밀접한 쇼핑몰, 블로그 같은 웹 사이트에는 적합할까요? 이런 사이트는 보통 기본적인 틀이 있고, 그 안의 내용물(텍스트, 이미지)만 조금씩 달라집니다. 노드가 다른 서버언어에 비해 이러한 콘텐츠를 제공하는 데 장점이 뚜렸하지는 않습니다. 하지만 그렇다고 적합하지 않다는 것도 아닙니다. Pug나 EJS같은 템플릿 엔진을 통해서 다른 언어와 비슷하게 콘텐츠를 제공할 수 있습니다. 

반응형
LIST

'개발 > Nodejs' 카테고리의 다른 글

VS Code 다운로드  (0) 2019.03.19
nodejs설치  (0) 2019.03.19
Node.js 교과서 공부 시작(2019.03.19~  (0) 2019.03.19