안녕하세요.
Hynn 입니다.
코로나19 바이러스 감염 이후, 후유증에 정신을 차리지 못해 업데이트가 늦었습니다.
이번 포스팅에서부터는, JavaScript 에 이어서, NodeJS 라는 Program 에 대한 설명을 드리고자 합니다.
여기서부터는 실제 개발 이후에, 구동도 직접 해볼 수 있는 단계가 되었습니다.
NodeJS 에 대해서 알아보도록 하겠습니다.
=========================
1.1. Node.js란 ?
2. Node.js 설치하기
3. 기본 실행명령/패키지
4. Node.js 내장 객체
==========================
1. Node.js란 ?
NodeJs 는 쉽게 한줄로 설명하자면, "JavaScript" 를 실행해주는 Program 입니다.
대표적으로 Back-end Developer 의 학습과정에서 반드시 나오는 친구이기도 합니다. 물론 Node.js 한 가지만으로 될 리는 없겠지만요.
즉, Node.js 를 학습하기 위해서는 JavaScript 의 대한 이해가 반드시 필요합니다. 당연하게도 JavaScript 를 실행하기 위한 Program 이기 때문입니다.
다만 JavaScript 와 Node.js 의 가장 큰 차이점이라고 한다면,
JavaScript 자체로는 PC 를 조작할 수 없습니다. 하지만, Node.js 를 사용하면 PC를 조작할 수 있습니다.
예를들어, Browser, 즉 Chorme 과 같은 Program 에서 PC의 대한 직접적인 조작을 하는 기능은 존재하지 않습니다. 하지만 같은 JavaScript 라도, Node.js 를 사용하여 개발한 환경에서는 PC에서의 Process 를 실행,중단, 수정이 가능합니다. 또한 파일의 대한 접근권한도 획득할 수 있습니다.
이는 상당한 차이가 발생할 수 있습니다.
그리고, 추가적인 장점이 있다면, Node.js 는 "비동기" 이벤트 기반의 작동이 이루어집니다. 이는 기존의 "싱글 스레드" 기반의 작동이 되는 JavaScript 에서 보다 빠른 처리 속도를 지원하게 하며, Non-Blocking I/O 방식을 가지고 있습니다. 이를 통해 이벤트 루프가 계속 실행되므로, 동시 작업의 속도 뿐 아니라, 용량 차이역시도 발생하게 됩니다.
Blocking 과 Non-Blocking 에 대한 자세한 문헌은 Blocking vs Non-Blocking I/O 를 참조하시면 도움이 될 것입니다.
2. Node.js 설치하기
Node.js 의 설치부터는, 이제 이전 포스팅에서 사용했던 Visual Studio Code 기반의 환경에서 동작을 할 예정이기 때문에, 그를 기초로 설명해보도록 하겠습니다.
먼저 Terminal 혹은 Visual Studio Code 에서 Terminal 을 실행합니다.
그리고 아래의 Command Line 을 입력하여, NVM( Nodejs Version Management) 를 설치합니다.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash
위의 명령 둘 중 한개만 하셔도 관계 없습니다.
혹은 "brew" 를 이미 설치하신 분들이라면, 아래의 명령어로도 가능합니다.
brew install nvm
설치가 정상적으로 이루어져 있다면, 아래의 경로를 사용하여, 환경변수가 반영이 되어 있는지 확인해야 합니다.
vi ~/.bash_profile
vi ~/.zshrc
brew 설치를 진행했는지, 일반 설치를 햇는지에 따라 위 경로가 달라질 수 있습니다. 두번째의 .zshrc 가 brew 로 설치했을때의 경로입니다.
만약 정상적으로 아래의 명령줄이 있다면, 설치가 잘 된 것입니다.
만약 아래의 명령줄이 없다면, 이를 그대로 추가해주어야 합니다.
export NVM_DIR="$HOME/.nvm"
[ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh" # This loads nvm
[ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
복사용 코드
export NVM_DIR="$HOME/.nvm"
[ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh" # This loads nvm
[ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
복사용 코드를 입력했다면, vi 편집기에서 "wq! 를 입력하여 저장 후 종료합니다.
그리고 난뒤, 자신의 설치경로가 bash 인지, zshrc 인지에 따라 아래의 명령을 실행하여, 환경변수를 적용합니다.
source ~/.bash_profile
source ~/.zshrc
이렇게 한 뒤, 아래의 명령어를 입력하여 최종적으로 설치가 이루어졌는지 확인합니다.
nvm --version
정상적으로 설치가 되었다면, 버전이 표시됩니다.
이제 Node.js 를 설치할 차례입니다.
이제 명령어는 간단하게 적용이 가능합니다.
nvm install [설치버전]
여기서 특정한 버전을 원할 경우, 버전을 직접 입력하시면 되겠습니다.
혹은 이미 설치가 되어 있다면, 아래의 명령어로 버전 변경도 가능합니다.
nvm use [설치버전]
일반적으로 홈페이지에서는 LTS 와, Current 버전 2가지가 존재합니다.
LTS 버전이 쉽게 말하면 안정화 버전이고, Current 버전이 최신버전 입니다.
특별한 사항이 없다면, LTS 설치를 하시거나, 특정 환경을 요구하는 것이 있다면 그에 맞는 버전을 설치하도록 하시면 되겠습니다.
만약 lts 를 설치하겠다면, 아래의 명령어로도 쉽게 설치가 가능합니다.
nvm install --lts
3. 기본 실행명령/패키지
Node.js 에서 기본 실행명령은 아주 간단합니다.
node [파일명]
여기서의 파일명은 당연하게도 JavaScript 파일이기때문에, 확장자인 .js 는 생략이 가능합니다.
하지만 Node.js 에서 사용되는 핵심적인 사항은 패키지기 때문에, 그에 대한 설치를 위주로 설명드리도록 하겠습니다.
NPM 이라고 불리우는 이것은, Node Pakage Management 의 약자로, Node.js 에서 자주 사용되는 Module 을 패키지형태로 배포하는 것으로, 실제 사용에 주력이 되는 것들은, 바로 이 Pakage 라고 해도 과언이 아닙니다.
NPM의 대한 기본 설정은 아래와 같습니다.
npm init
위 명령어를 사용하면 몇가지 정보를 입력하도록 하게 되며, Pakage.json 이 경로에 설치가 됩니다.
여기서 이 pakage.json 을 생성하면서 아래의 정보를 묻게 되는데, 그에 맞게 입력후 Enter 를 입력하면, 완료가 됩니다.
만약 이를 굳이 개별적으로 설정하지 않겠다면, 아래의 명령어로도 입력이 가능합니다.
* NPM Init 시 요청하는 정보
package name:
version:
description:
entry point:
test command:
git repository:
keywords:
author:
license:
*npm init 설정 시 생략희망 시 명령
npm init -y
Expresss Pakage
웹 서버를 만들때 가장 기초적으로 HTTP, Connect 기반으로 하는 Web-Framework 입니다.
이를 통해, 웹 서버에 필요한 기능을 간편하게 구축할 수 있습니다.
이를 설치하는 명령어는 아래와 같습니다.
npm install express
Nunjucks Templete Engine
Express 와 같이 활용하기 위해 Templete Engine 을 같이 설치하시면 좋습니다.
위 두가지를 사용하여 이후에, 웹 서버를 기초적으로 구축할 때 사용할 예정입니다.
npm install nunjucks
4. Node.js 내장 객체
Node.js 는 기본적으로 Chorme 의 V8 Engine 기반으로 설계되었지만, 내장 객체는 다르게 설계가 되어 있습니다.
대표적인 몇가지를 정리해보도록 하겠습니다.
가령 대표적으로, Chorme 기준으로, 대표적으로 사용되는 내장객체 시스템 중 , DOM,BOM 은 Node.js 에서는 동작하지 않습니다.
물론 겹치는 명령어가 있다면 동작하겠지만, 의도와 다를 수 있기 때문에 사용에 주의가 필요합니다.
물론 이에 대한 자세한 정보는, 결과적으로 Node.js 를 개발한 개발자의 의도가 중요하기 때문에, 아래의 문서를 참조하시면 더욱 자세히 살펴볼 수 있습니다.
Node.js Official Documenet API
1)Global
- Chrome 에서 사용되던 Window 객체와 동일한 역활을 하는 전역객체 입니다.
- About Global Object in Node.js
2)console
Global 에 내장된 대표적 객체중 하나입니다. Browser 에서 사용하던 Console 과 동일한 역활을 수행합니다.
- 2-1) log : Browser 에서 사용된 동일한 기능을 동작합니다.
- 2-2) dir : 객체를 풀어서 표시합니다.
- 2-3) table : 객체를 시각화하여 표시합니다
3)Require
다른 파일의 저장된 Data 를 읽어오는 객체입니다. 이를 통해, 여러개의 파일을 유기적으로 동작할 수 있도록 구성이 가능합니다.
4)Module
Global 객체의 하위 객체로, 현재 모듈을 나타내는 개체에 대한 참조입니다.
이를 위의 "Require" 와 같이 조합하면, 다른 파일의 Data 를 읽어올 수 있습니다.
- 4-1) Module.exports : 원하는 개체에 이를 할당하여 내보내기할 수 있습니다. 이는 즉시 수행되며, 어떠한 Callback 에서도 수행할 수 없습니다.
대표적인 것만 게시하다보니, 많은 내용이 없을 수 있습니다.
이제 포스팅에서 한가지씩 다루어가며, 그에 대한 설명을 자세히 해보도록 하겠습니다.
다음 포스팅에서 뵙겠습니다.
감사합니다.
'개발공부일지 > NodeJS' 카테고리의 다른 글
NodeJS - Ajax실제 작성예시 따라해보기 (0) | 2023.01.08 |
---|---|
Node.JS - CORS 에 대하여 (0) | 2023.01.04 |
Node.JS - Async/Await 이해하기 (1) | 2022.12.23 |
Node.JS - Promise Object 이해하기 (0) | 2022.12.23 |
Node.js - Express,Nunjucks 를 이용해서 기본 웹 서버 만들어보기 (0) | 2022.12.23 |
댓글