함께 성장하는 프로독학러

0. Nodejs 소개 및 설치 본문

Programming/Node.js

0. Nodejs 소개 및 설치

프로독학러 2018. 5. 22. 07:45

안녕하세요, 프로독학러 입니다.


본 카테고리에서는 자바스크립트 엔진을 기반으로 만들어진 사버 사이드 플랫폼인 Node.js 에 대해서 알아보도록 하겠습니다.


Node.js 란?


Node.js 는 구글 크롬의 자바스크립트 엔진(V8 Engine) 을 기반으로 만들어진 서버 사이드 플랫폼입니다. 웹 브라우저에서 동작하는 자바스크립트를 이용해 서버측에서 하는 역할을 수행할 수 있도록 하는 플랫폼이며, 이를 이용하면 PHP 나 JSP 의 역할을 대체할 수 있습니다. 


Node.js 의 특징


  • 비동기 I/O 처리, 이벤트 위주 : Node.js 라이브러리의 모든 API는 비동기 방식입니다. 즉, 한 작업이 완료될 때까지 기다렸다가 작업하는 것이 아니라 멈추지 않고 계속해서 코드를 실행한다는 의미입니다. Node.js 기반 서버는 API 가 실행 되었을 때, 해당 API 가 값을 리턴할 떄 까지 기다리지 않고 다음 API 를 실행합니다. 그리고 이전에 실행했던 API 가 값을 반환하면 Node.js 의 이벤트 알림 메커니즘을 통해 결과값을 받아옵니다.
  • 빠른속도 : 구글 크롬의 V8 자바스크립트 엔진을 사용하여 빠른 속도를 냅니다.
  • 단일 쓰레드 / 뛰어난 확장성 : Node.js 는 이벤트 루프와 단일 쓰레드 모델을 사용하는 환경입니다. 이벤트 메커니즘은 서버가 멈추지 않고 동작하도록 해주어 서버의 확장성을 키워줍니다. 반면, 아파치로 대표되는 일반적인 웹서버는 요청을 처리하기 위해 제한된 쓰레드를 생성합니다. 반면 Node.js 는 하나의 쓰레드만을 사용하고 아파치와 같은 웹서버보다 훨씬 많은 요청을 처리할 수 있습니다.
  • 노 버퍼링 : Node.js 어플리케이션에는 데이터 버퍼링이 없고, 데이터를 chunk 로 출력합니다.
  • 라이센스 : Node.js 는 MIT License 가 적용되어 있습니다. 즉, 수정 및 재배포가 가능하지만 반드시 MIT 라이센스에 대한 문구가 포함되어 있어야 합니다.


Node.js 의 사용


아래와 같은 분야에서 Node.js 가 사용된다면 뛰어난 효율성을 달성할 수 있습니다.


  • 입출력이 작은 어플리케이션
  • 데이터 스트리밍 어플리케이션
  • 데이터를 실시간으로 다루는 어플리케이션
  • JSON API 기반 어플리케이션
  • SPA (Single Page Application)


Node.js 설치


본격적으로 Node.js 를 사용하기 위하여 Node.js를 설치해 보도록 하겠습니다.
설치는 Node.js 의 홈페이지에서 본인의 운영체제에 맞는 버젼을 선택에 다운받아 설치 하시면 되겠습니다.

*Node.js 홈페이지

npm 은 Node Package Manager로 터미널 프로그램에서 명령어를 이용해 작업하는 프로젝트의 package.json 파일을 생성하고, 작업에 필요한 패키지를 설치할 수 있게 도와주는 프로그램입니다.
* Node.js 를 사용하기 위해 필요한 부품들을 제공하는 'Node 계의 앱스토어' 라고 생각하시면 좋습니다.
npm 은 node.js를 설치할 때 자동으로 같이 설치가 되므로 따로 설치하실 필요는 없습니다.

설치가 완료되면 설치가 제대로 됐는지 확인해 보도록 하겠습니다.

터미널 프로그램에 접속합니다. (저의 경우엔 윈도우즈 운영체제만을 사용하기 때문에 윈도우즈 기준으로 설명드리도록 하겠습니다)
윈도우즈에서 터미널 프로그램은 윈도우 버튼과 'R'버튼을 동시에 누르면 나오는 실행창에서 cmd를 입력하고 엔터를 누릅니다.


입력하고 엔터를 치면 아래와 같은 같은 창이 뜹니다.



창에 node -v 와 npm -v 를 차례로 쳐 봅시다.

node -v는 설치된 node.js의 버전을 확인하는 명령어이고, npm -v는 npm의 버전을 확인하는 명령어 입니다.

이상없이 설치 됐다면 각각의 버전이 다음과 같이 잘 뜨는 것을 확인 할 수 있습니다.



Node.js 모듈사용


패키지 매니저 npm 을 사용하여 다른사람이 만들어 올린 프로젝트를 자신의 프로젝트에 포함시키려면 다음의 단계를 거치면 됩니다.


  1. 본인의 폴더를 프로젝트화 시키기 : 프로젝트화 시킬 폴더 경로에서 npm init 명령어를 통해 package.json 파일 생성
  2. 필요한 모듈 설치 : 본인의 프로젝트에서 사용할 모듈을 npm install 명령어를 통해 설치
  3. * --save 를 명령어에 추가하면 해당 프로젝트가 어떤 모듈에 의존하는지 쉽게 알 수 있다 (package.json 파일을 통해)

  4. 모듈사용 : require 나 import 를 통해 해당모듈을 끌어와 사용

Node.js 실행

설치를 완료했으니 간단한 어플리케이션을 만들어 실행해 보도록 하겠습니다.

명령 프롬프트를 통해 원하는 경로에 실습을 진행할 폴더를 만들어 줍니다.
저는 E 드라이브에 Node-tuts 라는 폴더를 하나 생성하고 해당 경로로 이동 하겠습니다.


* mkdir 은 make direction 의 약자로 명령 프롬프트 상에서 경로를 만드는 명령어입니다.

* cd 는 change direction 의 약자로, 경로를 이동하는 명령어 입니다.


그리고 해당 경로에서 npm init 명령어를 통해 해당 폴더를 프로젝트화 시키겠습니다.

이 과정을 거치면 package.json 파일이 생성됩니다.



* npm init 을 통해 해당 폴더를 프로젝트화 시킬 때 -y 를 붙이면 모든 설정을 기본값으로 프로젝트를 생성합니다. 만약 기본값이 아닌 원하는 설정값으로 프로젝트를 설정하고 싶다면 -y 를 제외시키고 명령을 실행하여 일일히 설정해 주면 됩니다.


에디터를 이용하여 해당 경로에 파일을 하나 생성해 보겠습니다.


프로젝트 경로에 test.js 파일을 하나 만들고 아래와 같이 입력해줍니다.


1
console.log('hi, test')';
cs


파일을 저장하고, 명령 프롬프트에서 node test.js 를 입력해 방금 만든 파일을 실행시켜 보겠습니다.

* 파일의 실행은 node 명령어 뒤에 파일명을 통해 실행합니다.



파일이 실행되자 콘솔창에 우리가 test.js 파일에 입력한 hi, test 가 잘 뜨는 것을 알 수 있습니다.


여기까지...

Node.js 에 대해서 알아보고, 설치 및 모듈에 대해서 알아보았습니다.

다음 포스팅에서는 Node.js 에서 중요한 개념인 콜백함수와 동기, 비동기적 처리에 대해서 알아보도록 하겠습니다.

감사합니다.

**참고 자료 (항상 감사드립니다)

https://opentutorials.org/course/2136

https://velopert.com/133



*이 포스팅이 도움이 되셨다면 다녀가셨다는 표시로 공감 부탁드릴게요! (로그인 하지 않으셔도 공감은 가능합니다 ㅎㅎ)


Comments