처음에 git생성시 Master브랜치만 존재합니다.

 

하지만 필요한건 Master 브랜치에는 전체 코드가 올라가고 환경별 브랜치를 따로 따야되는데요

 

git 명령어로 순선대로 따놓는 내용을 적어 놓도록 하겠습니다. 

- 매번 새로 하진않아서 자꾸 까먹으니까 기록용으로 남기려고 합니다.

 

git branch -a

 

git branch 로 브랜치 생성

git checkout 으로 이동후 환경별 파일 생성

 

 

파일 add 후 origin push

 

 

요런식으로 checkout ( 브랜치 이동 ) 하면서 

 

파일 세팅하고 remote에 git push origin [브랜치이름]

'Node.js > Git' 카테고리의 다른 글

1. Git 설치  (0) 2017.11.21
Posted by 깍돌이

path 모듈입니다.

The path module provides utilities for working with file and directory paths. It can be accessed using:

const path = require('path');

기본 모듈 생성 불러 오는 방법입니다.


우선적으로 


path.basename 에 대해서 알아 볼 예정인데요


path.basename은 파일명을 가져오는 메서드입니다. 해당 메서드는 Windows 와 POSIX에서의 사용법이 다르다고합니다.

On POSIX:

path.basename('C:\\temp\\myfile.html');
// Returns: 'C:\\temp\\myfile.html'

On Windows:

path.basename('C:\\temp\\myfile.html');
// Returns: 'myfile.html'


윈도우즈에서는 기본적으로 파일 네임을 가져오는 것으로 보입니다.(확장자 포함)


하지만 POSIX에서는 파일네임이 아니라 전체 경로를 가져오게 됩니다.


해당 차이점을 알고 쓰셔야 할것 같지만 Node.js의 공식 문서를 참고 하시면


모든 OS에서 Windows 와 같은 결과를 받아오게 하기 위한 가이드가 있습니다.


On POSIX and Windows:

path.win32.basename('C:\\temp\\myfile.html');
// Returns: 'myfile.html'

To achieve consistent results when working with POSIX file paths on any operating system, use path.posix:

On POSIX and Windows:

path.posix.basename('/tmp/myfile.html');
// Returns: 'myfile.html'


앞에 path.win32.basename 또는 path.posix.basename  해당 os에 대해 나타나게 합니다.


저는 WIndows 에서 테스트를 하였습니다.



path.basename 보다는 posix나 win32를 넣는것이 사용에 좋아보입니다.


path 모듈에서는 여러가지 사용 메서드들이 있지만 관련은 www.nodejs.org 에서 공식문서를 확인해보시기 바랍니다.


하나 더 괜찮아 보이는 메서드를 가져왔습니다.

path.parse(path)


parse입니다. (path 값을 파라미터로 받습니다.)


POSIX입니다.

For example on POSIX:

path.parse('/home/user/dir/file.txt');
// Returns:
// { root: '/',
//   dir: '/home/user/dir',
//   base: 'file.txt',
//   ext: '.txt',
//   name: 'file' }
┌─────────────────────┬────────────┐
│          dir        │    base    │
├──────┬              ├──────┬─────┤
│ root │              │ name │ ext │
"  /    home/user/dir / file  .txt "
└──────┴──────────────┴──────┴─────┘
(all spaces in the "" line should be ignored -- they are purely for formatting)

WIndows 입니다.

On Windows:

path.parse('C:\\path\\dir\\file.txt');
// Returns:
// { root: 'C:\\',
//   dir: 'C:\\path\\dir',
//   base: 'file.txt',
//   ext: '.txt',
//   name: 'file' }
┌─────────────────────┬────────────┐
│          dir        │    base    │
├──────┬              ├──────┬─────┤
│ root │              │ name │ ext │
" C:\      path\dir   \ file  .txt "
└──────┴──────────────┴──────┴─────┘
(all spaces in the "" line should be ignored -- they are purely for formatting)


path 모듈을 알아 봤습니다.


'Node.js > NPM 사용 ' 카테고리의 다른 글

4. nconf (시스템 환경 변수 모듈)  (0) 2018.03.14
3. body-parser  (0) 2017.11.30
2. cors (Cross Origin Resource Sharing)  (0) 2017.11.29
1. uglify-js (경량화)  (0) 2017.11.08
Posted by 깍돌이

nconf 모듈 

> 시스템 환경 변수에 접근할수 있는 모듈입니다.


www.npmjs.com 


에서 확인해보면


  • 50,407 downloads in the last day
  • 303,255 downloads in the last week
  • 1,352,749 downloads in the last month


꽤 잘나가는 모듈임을 알수 있습니다. 


바로 전날만 해도 5만건을 다운로드 하였네요 

package-lock.json 으로 종속 모듈도 다운로드수에는 포함이 됩니다.



npm install nconf  // 물론 Node.js 프로젝트 폴더 - package.json package-lock.json 폴더가있는 위치에서


설치를 한 후에 



코드를 작성합니다.


var nconf = require('nconf');
nconf.env();
console.log(nconf.get('OS'));
var port = nconf.any('NODEJS_PORT', 'PORT');
 
//
// Get one of 'NODEJS_IP' and 'IPADDRESS' using a callback
//
nconf.any(['NODEJS_IP', 'IPADDRESS'], function(err, value) {
  console.log('Connect to IP address ' + value);
});



그냥 단순하게 돌려보았을시에는


결과값으로


Windows_NT
app.js:16
Connect to IP address undefined


형식으로 나옴이 확인됩니다.


자세한 내용은 추후 작성 하도록 하겠습니다.








'Node.js > NPM 사용 ' 카테고리의 다른 글

5. path 모듈  (0) 2018.04.05
3. body-parser  (0) 2017.11.30
2. cors (Cross Origin Resource Sharing)  (0) 2017.11.29
1. uglify-js (경량화)  (0) 2017.11.08
Posted by 깍돌이

2017. 11. 30. 12:28 Node.js/NPM 사용

3. body-parser

restapi 서버를 node.js로 구성 하는 경우에 꼭 필요한 경우라고 생각 합니다.


최근에 파일 관련 데이터 를 crud하기 위한 rest api 서버를 간단하게 제작 해보니


body-parser 라는 모듈이 필요하게 되어서 사용하게 되었습니다.


해당 모듈은


npm install body-parser 로 설치 할수 있으며 request body 를 json 으로 변환해 주는 모듈입니다.


작성중..



'Node.js > NPM 사용 ' 카테고리의 다른 글

5. path 모듈  (0) 2018.04.05
4. nconf (시스템 환경 변수 모듈)  (0) 2018.03.14
2. cors (Cross Origin Resource Sharing)  (0) 2017.11.29
1. uglify-js (경량화)  (0) 2017.11.08
Posted by 깍돌이

NPM(Node Package Manager) 에 대해서는 이제 어떤건지 대략적으로 알수 있을 것 같습니다.


이제부터는 NPM 에서 사용하였던 모듈들에 대해서 리스트를 작성 하도록 할려고 합니다.


이번에는 2번째 모듈인  cors (Cross Origin Resource Sharing)  모듈에 대해서 간단하게 보려고 합니다.


왜 두번째로 cors를 하였냐면 가장 맨 처음에 부딪치는 이슈이기 때문입니다. 


122.118.155.163:3000 으로 node서버를 진행시


122.118.155.163 에서 node 실행 인데 3000 port로 Listen 중 이며



122.118.155.163:8888 에서 웹서버가 디플로이 (Deploy) 된 상태 에서 클라이언트가 


122.118.155.163 으로 ajax 요청을 보내게되면 크로스 도메인 이슈가 나타나게 된다.


웹서버(웹프로젝트)는 8888에 떠있지만 실제로 요청을 받는 API 서버는 3000 포트에서 받고 있기 때문이다. 


해당 크로스 도메인에 대해서는 따로 찾아 보시길 바라고 해당 의 경우에는 


3000으로 Listen 중인 이 서버가 같은 IP를 사용하고 있지라도 CORS 문제로 인해서 restapi 를 사용할수가 없게 된다. - 보안 상의 이유로 안된다고 하는데 해당 사항에 대해서는 찾아서 이 글에 수정 하도록 하겠습니다.



XMLHttpRequest cannot load http://xx.xx.xx.xx/xxx. Request header field Content-Type is not allowed by Access-Control-Allow-Headers. 

출처: http://blog.opid.kr/430 [opid's document]

해당 에러 메시지 가 나타났을 경우에 CORS 이슈가 나타났다고 할수 있습니다.


** IE에서 간혹 cors를 설정 하였는데도 불구하고 SEC7118 XMLHttpRequest CORS 라는 에러를 내 뿜는


경우가 있는데 해당은 IE 11 버그입니다. (Windows 10 으로 가서 실행시는 나타나지 않는)


CORS이슈가있으면 response, request가 되지 않습니다. 



이에 대해서 여러가지 방법이 있는데 

1. ajax의 dataType을 jsonp 로 바꾸는 법 


2. 헤더의 크로스 도메인 을 허가하는 방법 

  -> PHP  header("Access-Control-Allow-Origin: *");

  -> JSP  <% response.addHeader("Access-Control-Allow-Origin","*"); %>



3.  Node에서는 cors 모듈을 설치 하는 법

현재는 NPM에 대한 이야기 이므로  cors 모듈을 설치하여서 해결하는 방법이 있습니다.

express-cors 도있고 cors도 있는데  express-cors는 npm 검색시에도 잘 나오지 않고 npm에서 cors로 검색시에 가장 인기가 많은 cors 모듈을 사용하였으니 해당 모듈에 대해서 간단하게 

소개하겠습니다.


cors 검색하게되면 가장 상단에 


Node.js CORS middleware 2.8.4 가 보일 겁니다. 해당 클릭 

설명에 보시면  Connect/Express middleware that can be used to enable CORS with various options.


cors를 활성화 해준다고 되어있습니다. 여러 기능도 포함하여서


설치

-> npm 모듈이기 때문에 npm 으로 설치 합니다. 해당 설명도 진행할수록 생략 하도록 하겠습니다.


npm install cors


사용

npm cors 페이지 참조 

1. 모든 도메인 요청 활성화(모든 작업 CORS 허용 테스트용)

// 익스프레스 모듈 require 및 app 설정 (해당 방식은 express 에서 사용하도록 한 규약? 같은 방식)

var express = require('express')

var app =express();

// install cors 로 설치 하였기 때문에 cors 모듈 require

var cors = require('cors')


// cors () 사용  // 모든 도메인에 대한 Request 활성화  -> 좋지 않은 방식 

app.use(cors());


사용

2. 싱글 라우트에 대한 도메인 활성화(특정 작업에 대해서만 CORS허용)

// 익스프레스 사용

var express = require('express');

var app = express();


// cors 사용

var cors = require('cors');


// ***********  products/:id 에 대한 url 라우팅시에만  cors 를 허용 

app.get('/products/:id', cors(), function(req,res,next) {

res.json({msg:'This is CORS-enabled for a single Route'});

})


사용

3. CORS Config settings(setting 값을 수정하여서 CORS 허용 IP지정)

var express = require('express');

var app = expresS();


var corsOptions = {

origin :'http://example.com',

optionsSuccessStatus:200; // IE 11이나 여러 스마트 TV들에 대한 확인 

};


app.get('/products/:id',cors(corsOptions),function(req,res,next){

res.json({msg:' This is CORS-enabled for only example.com.'});

});

사용

4. CORS w/ Dynamic Origin  동적으로 읽어서 사용 

whitelist 배열을 push 로 추가하여서 실시간으로 허용 및 제거 가능 


// 앞 부분 생략


var whitelist = ['http://example1.com','http://example2.com']

var corsOptions = {

origin: function(origin,callback)    {

if(whitelist.indexOf(origin) !==-1){

callback (null,true);

} else{

callback (new Error('Not allowed by CORS'))

}

}

}


app.get('/products/:id', cors(corsOptions),function(req,res,next){

res.json({msg: 'This is CORS-enabled for a whitelisted domain.'})

});


5. ETC CORS pre-Flight  CORS 비동기 사용 , CORS 제거 등에 대한 내용은

www.npmjs.com 에 cors 검색 후 확인 하시면 될것 같습니다.













'Node.js > NPM 사용 ' 카테고리의 다른 글

5. path 모듈  (0) 2018.04.05
4. nconf (시스템 환경 변수 모듈)  (0) 2018.03.14
3. body-parser  (0) 2017.11.30
1. uglify-js (경량화)  (0) 2017.11.08
Posted by 깍돌이

2017. 11. 21. 13:12 Node.js/Git

1. Git 설치

git을 설치하기 전의 나의 OS 부터 확인


uname

 Linux  // OS 이름 

uname -r


3.10.0-327.el7.x86_64 // 커널 정보


cat /etc/*release  // OS 정보 확인 


CentOS Linux release 7.2.1511 (Core)

NAME="CentOS Linux"

VERSION="7 (Core)"

ID="centos"

ID_LIKE="rhel fedora"

VERSION_ID="7"

PRETTY_NAME="CentOS Linux 7 (Core)"

ANSI_COLOR="0;31"

CPE_NAME="cpe:/o:centos:centos:7"

HOME_URL="https://www.centos.org/"

BUG_REPORT_URL="https://bugs.centos.org/"


CENTOS_MANTISBT_PROJECT="CentOS-7"

CENTOS_MANTISBT_PROJECT_VERSION="7"

REDHAT_SUPPORT_PRODUCT="centos"

REDHAT_SUPPORT_PRODUCT_VERSION="7"


CentOS Linux release 7.2.1511 (Core)

CentOS Linux release 7.2.1511 (Core)



getconf LONG_BIT  // 비트 확인 

64


내 OS는 CentOS 7.X 버전 사용중이며 커널은 리눅스 커널 3.10 에 64비트 임을 알겠다.

git HomePage 접속


Downloads 클릭 후 에 들어가서  Linux/Unix 를 선택한다.

그러면 종류별로 설치법에 대해 나온다.

https://git-scm.com/download/linux    // 해당 Downloads 링크 

CentOS 의 경우에는 git을 1.8 까지만 해주기 때문에 (Base Repo 로 git 설치시 1.8.3 버전만 깔림을 확인)

Red Hat Enterprise Linux, Oracle Linux, CentOS, Scientific Linux, et al.

RHEL and derivatives typically ship older versions of git. You can download a tarball and build from source, or use a 3rd-party repository such as the IUS Community Project to obtain a more recent version of git.  (사이트 발췌)

와 같이 나와있다 tarball을 다운받아서 소스코드 빌드를 하던지 아니면 IUS  레포를  최신 버전의 깃이 포함된 레포를 통해서 받으라는건데 소스코드 빌드가 간단해 보여 tarball 링크를 클릭해서 들어간다.


들어가면 리스트에 git-htmldocs, git-manpages , git - 이있을건데

이 당일 가장 최신은  8월 10일자 17:57분 자 인 git-2.9.5.tar.xz 파일을 다운로드 하여서

압축을 푼다 

/home/test/다운로드/git-2.9.5.tar.xz 에 있는 경로를 가정시에


1 . tar -xvf /home/test/다운로드/git-2.9.5.tar.xz  

git-2.9.5.tar 폴더가 생성된다.

해당 폴더로 이동 

2. cd /home/test/다운로드/git-2.9.5

3. make install 

3-1 make install 보다는 prefix를 지정해주는 것이 더 좋다

-> make prefix =/usr/local/ install 

하면 설치가 완료 된다.

설치 완료 후 git--version 

로 git 버전을 확인할수 있다.


** 설치가 안되는 경우 (make install 이 안되는 경우)  ( OS는 CentOS 7.0 기준입니다. )

사실 글 작성 이유가 이 건데 make install 시에 한번에 되지가 않았다.


1. curl/curl.h not found // 분명히 curl은 깔려있었는데

-> yum install libcurl-devel 

후 make install


2. 1 번을 행하여도 에러가 난다. (본인이 그랬)

[make 시 에러]

xml/apr_xml.c : fatal error: expat.h: 그런 파일이나 디렉터리가 없습니다

 #include <expat.h>

-> yum install expat-devel  

후  make install

(여기까지 하면 웬만하면 설치가 완료 될 것이다.)



*** 위의 방법으로도 설치가 안되는 경우에는 repo를 다시 세팅 해본다.

(본인은 설치전의 repo를 다 날려버려서 rm -rf /etc/yum.repo.d // ㅜㅜ )

1. /etc/yum.repo.d/epel.repo  생성 // yum.repo.d 폴더가 없다면 /etc/뒤에 생성 모든 권한은 ROOT로 하셔야합니다.

epel.repo 


[epel]

 name=Extra Packages for Enterprise Linux 7 - $basearch

 #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch

 mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch

 failovermethod=priority

 enabled=1

 gpgcheck=1

 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7


 [epel-debuginfo]

 name=Extra Packages for Enterprise Linux 7 - $basearch - Debug

 #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug

 mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch

 failovermethod=priority

 enabled=0

 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

 gpgcheck=1


 [epel-source]

 name=Extra Packages for Enterprise Linux 7 - $basearch - Source

 #baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS

 mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch

 failovermethod=priority

 enabled=0

 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

 gpgcheck=1


/etc/yum.repo.d/epel-testing.repo


 [epel-testing]

 name=Extra Packages for Enterprise Linux 7 - Testing - $basearch

 #baseurl=http://download.fedoraproject.org/pub/epel/testing/7/$basearch

 mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=testing-epel7&arch=$basearch

 failovermethod=priority

 enabled=0

 gpgcheck=1

 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7


 [epel-testing-debuginfo]

 name=Extra Packages for Enterprise Linux 7 - Testing - $basearch - Debug

 #baseurl=http://download.fedoraproject.org/pub/epel/testing/7/$basearch/debug

 mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=testing-debug-epel7&arch=$basearch

 failovermethod=priority

 enabled=0

 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

 gpgcheck=1


 [epel-testing-source]

 name=Extra Packages for Enterprise Linux 7 - Testing - $basearch - Source

 #baseurl=http://download.fedoraproject.org/pub/epel/testing/7/SRPMS

 mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=testing-source-epel7&arch=$basearch

 failovermethod=priority

 enabled=0

 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

 gpgcheck=1


2. /etc/yum.repo.d/Centos-Base.repo

생성 
Centos-Base.repo



[base]

name=CentOS-$releasever - Base

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra

#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates 


[updates]

name=CentOS-$releasever - Updates

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra

#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 


#additional packages that may be useful

[extras]

name=CentOS-$releasever - Extras

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra

#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-


#additional packages that extend functionality of existing packages

[centosplus]

name=CentOS-$releasever - Plus

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra

#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/

gpgcheck=1

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7



두 레포를 지정 후 저장

yum clean
yum update

후에 다시 위의 


1. curl/curl.h not found // 분명히 curl은 깔려있었는데 <---- 이 부분 부터 하면 git설치가 될겁니다.


'Node.js > Git' 카테고리의 다른 글

[Git] Branch 세팅 ( 새로운 브랜치 만들기 )  (0) 2022.02.25
Posted by 깍돌이

NPM (Node Package Manager) 노드에서 사용하는 패키지 


uglify-js : 경량화 도구로써 자바스크립트 코드에 대해 공백을 제거하거나 코드를 가볍게 만들어줌


우선 www.npmjs.com 에 접속 



find packages 에 uglify-js 검색 


검색 후 리스트 중 최상단에 uglify-js (alexlamsl) // JavaScript parser, mangler/compressor and beautifier toolkit 클릭


안에 설명에 따른 설치를 보면


npm install uglify-js -g


또는


npm install uglify-js 로 설치를 할수 있으며


**ps -g옵션은 글로벌이란 뜻으로 어느 위치에서나 해당 명령어를 사용할수 있게 해주는 옵션 


( centos 기준으로  bash_profile에 넣어서 처리를 해주는게 아닌가 싶음 *추측 -> 확인되는 대로 글 수정 예정 )



-g 가 없을 시에는 lcoal 로 되며 현재 프로젝트 안에서만 사용이 가능 하다 



설치 후에 사용은 uglifyjs [input files] [option] 으로 사용한다고 적혀있다.



npm install uglify-js -g 로 설치 한 후에


uglifyjs 로 명령으로 실행하기전에 text.js를 생성


ugly.js


function ugly(ugly)

{

console.log("ugly");

console.log(ugly);

}

ugly("text Ugly");



와같이 작성후  (ESC 누른후 :  wq 엔터 -> vi 저장 단축키)


node ugly.js 실행시 다음과 같은 화면이 나타남 




이제 uglifyjs ugly.js 실행



 해당  입력이 위와같이 변함을 확인 할 수 있다. 


-m 옵션을 써서 uglifyjs ugly.js -m 을 써 주게 되면


위의 Local 변수인 ugly -> l 로 변환됨을 할수 있다. 이러한 변수명 까지 수정해준다.


새로운 파일로 추출해내기 위해서는


uglifyjs ugly.js -o ugly.min.js  와 같이 입력시 


ugliy.min.js 로 나타남을 확인 


해당 옵션을 같이 써서


uglifyjs ugly.js -m -o ugly.min.js 로 하게 되면 Local 변수로 수정하면서 다른 파일로 추출이 됨을 확인할수 있다.



'Node.js > NPM 사용 ' 카테고리의 다른 글

5. path 모듈  (0) 2018.04.05
4. nconf (시스템 환경 변수 모듈)  (0) 2018.03.14
3. body-parser  (0) 2017.11.30
2. cors (Cross Origin Resource Sharing)  (0) 2017.11.29
Posted by 깍돌이

text.js 작성



 const http = require('http');


 const hostname = '1.1.1.1';     // 임시적으로 수정함 

 const port = 3000;


 const server = http.createServer((req, res) => {

   res.statusCode = 200;

   res.setHeader('Content-Type', 'text/plain;charset=utf-8');

   res.end('한글 인코딩 테스트  \n');

 });


 server.listen(port, hostname, () => {

   console.log(`Server running at http://${hostname}:${port}/`);

 });


작성후 저장

node text.js 로 



외부 서버에서 http://1.1.1.1:3000 으로 접속시에






확인 가능  text/plain; 뒷부분에 charset=utf-8 을 입력시에 한글 인코딩도 지정 해줄수 있습니다.



'Node.js > Tutorial' 카테고리의 다른 글

1. node.js 준비 (CentOS)  (0) 2017.11.07
Posted by 깍돌이

Node.js




2009년 Ryan Dal 이 자바스크립트 구성된 서버 사이드 언어인 Node.js 를 구글의 V8 엔진을 통해  개발 


라이센스 : MIT 라이센스 (MIT 학생들을 돕기 위한 허가서로 오픈 소스여부 관계없이 재사용 가능하고 제한이 없는 편인 라이센스)


1. 누구라도 무상으로 제한없이 취금해도 상관없지만 저작권 표시 및 이 허가 표시를 소프트웨어의 모든 복제물 또는 중요한 부분에 기재 하여야 함 




1. Node.js 의 장점


     구글의 V8 Engine을 사용하고있다는 점


non-blocking IO

-> I/O 작업을 진행하는 동안 유저 프로세스의 작업을 중단시키지 않는다.

Read/Write 이벤트가 시작하자마자 모듈을 변환시켜 다른 작업을 하도록 준비 상태가된다. (속도가 매우 빠르며 메모리 차지도 적음)


npm 패키지 

-> 관련 커뮤니티 도 크고 수만 개의 라이브러리 패키지가 있어 도움이 많이 됨 


*** 가장 큰 장점은 하나의 언어(Javascript)로 서버와 클라이언트 개발이 가능하며 생산성이 매우 높다는 점 




2. Node.js 의 단점


단일 쓰레드 (Single Thread)

-> 지체되는 작업이 생길 경우 전체 시스템 자체의 성능이 저하되는 현상

-> 에러 발생시 프로세스가 내려가기때문에 바로 죽는 현상 

-> CPU 사용이 많이 되는 기능에 적합하지 않음 





3. Node.js 설치


https//nodejs.org 에 접속 

DOWNLOADS  

Installing Node.js via package manager 선택 


그다음 페이지에서 Enterprise Linux and Fedora 선택 


내용 발췌


sudo curl --silent --location https://rpm.nodesource.com/setup_8.x (root권한으로 설치)


Node.js 라이브러리 설치 

sudo yum -y install nodejs

개발자 도구 설치

sudo yum install gcc-c++ make



설치 후 node --version  입력 후 버전 확인



 Node.js 준비 끝 






'Node.js > Tutorial' 카테고리의 다른 글

2. node.js 실행 (CentOS)  (0) 2017.11.07
Posted by 깍돌이
이전버튼 1 이전버튼

블로그 이미지
QA를 업으로 삼고 있습니다.
깍돌이

태그목록

Yesterday
Today
Total

달력

 « |  » 2024.5
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

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함