JavaScript BackEnd: 71개의 글
참조문서 : http://restify.com/docs/home/ Restify는 Express에서 파생된 nodejs REST 프레임워크이다. npm install restify 으로 설치한다. 1. Express와 뭐가 다른가? 물론 둘다 RESTful API 서버를 만들 수 있다. 차이점만 보자면, express는 웹 모듈로서 웹 애플리케이션을 위해 많은 기능(템플릿, 렌더링 등)을 제공한다. restify는 express에 비해 가볍고, express의 아키텍처를 그대로 가져오면서, REST API서버운영을 위한 특화된 기능들이 있다. 즉 RESTful API서비스만을 위한 경량 프레임워크이다. 성능차이는 크게 없는 듯하다. 여러 포스팅에서 성능테스트한 글을 확인했지만 express와 restif..
참조문서 : http://expressjs.com/en/4x/api.html express는 경량 HTTP 웹 프레임워크다. 요청과 응답, 미들웨어 사용, 템플릿 엔진을 제공한다. npm install express 로 설치한다. 1. 미들웨어 작은 단위 모듈로 요청과 응답을 처리하는 함수 형태 express는 여러 개의 미들웨어로 구성 미들웨어 사용 설정 : app.use([미들웨어]) 예제 app.use(function (req, res) { res.send('hello Express!'); }); 1-1. 미들웨어 설정(mount) app.use([path,] function [,function]) path를 생략하면 루트(/)이다. function을 2개이상 둘 수도있다. 즉 같은 요청을 여러개의..
참조문서 : https://nodejs.org/dist/latest-v6.x/docs/api/http.html require('http'); 를 써야한다. nodejs는 자체적으로 http 서버를 갖고 있기 때문에, 아파치나 nginx 같은거 안써도 된다. 1. 개요 HTTP 서버 http.Server : HTTP 서버 http.IncomingMessage : HTTP 서버의 요청 메세지, Readable Stream 이다. http.ServerResponse : HTTP 서버의 응답 클래스 HTTP 클라이언트 http.Client : HTTP 클라이언트 http.ClientRequest : HTTP 클라이언트 요청 메세지 http.IncomingMessage : HTTP 서버의 응답 메세지, Reada..
1. 중첩 콜백 콜백지옥에 빠지기 쉬운 상황 task1 실행 이후에 task2,3,4 등이 순차적 실행 task1 실행 결과를 이용해 task2 가 실행 예제로 본다면 아래와 같은 상황이다. task1(a, b, function(err, result1) { task2(c, function(err, result2) { task3... task4... }); }); 2. Async 참조문서 : https://caolan.github.io/async/docs.html 외부모듈이기 때문에 npm install async로 설치한다. 행위 순서 제어 series(tasks[, callback]) : 각 태스크는 함수이고, 중간에 에러가 나면 다음태스크를 실행하지 않고, 완료 콜백으로 에러를 전달한다. result..
참조문서 : https://docs.npmjs.com/ NPM(Node Package Manager)은 패키지 매니저로 확장모듈 설치, 삭제, 검색, 정보, 패키지 정보 작성 등을 할 수 있다. 노드의 모듈시스템은 상호운용이 가능하도록 모듈을 생성하는 방법인 CommonJS 모듈 시스템을 본 따 만들었다. 1. 주요 옵션 npm init : 패키지 준비, package.json 생성 npm install : 패키지 정보에 있는 모듈 설치 npm install [Module] : 개별 패키지 설치 npm list : 설치된 모듈 목록 보기 npm info : 모듈 정보 npm search : 모듈 검색 npm update : 모듈 업데이트 npm uninstall : 모듈 삭제 2. 모듈 설치 의존성있으면..
참조문서 : https://nodejs.org/dist/latest-v6.x/docs/api/ node에서 모듈은 다른 언어의 라이브러리에 해당한다. 이 포스팅 당시 버전은 v6.11.0 이다. API 문서가 잘되어 있다~ API의 안정도(stability) 0 : deprecated 1 : Experimental 2 : Stable 3 : Locked , 더이상 변경없음 1. node의 모듈 1-1. 모듈의 로딩 절대경로 혹은 상대경로 이용 require(모듈명); 1-2. 모듈의 종류 기본 모듈 : 미리 컴파일된 상태로 제공되는 라이브러리 디렉터리 확장모듈 : npm으로 별도설치, node_modules 1-3. 모듈 함수 객체 생성없이 모듈에 직접 사용하는 함수다. 1-4. 주요 기본 모듈 1-4-..
1. Nodejs 란? 2009년에 Ryan Dahl이 발표했다. 노드는 구글의 V8 JavaScript 엔진에 기반한다. 싱글스레드 기반 비동기 이벤트 위주 IO를 사용하는 고도의 확장성을 가진 시스템이다. 간단한 작업을 수행하지만 빈도가 높은 웹 어플리케이션에 이상적이다. 특징 싱글 쓰레드 : 문맥교환으로 인한 오버헤드X 비동기 IO : CPU time loss를 피함, io요청이 있으면 워커한테 던져놓고 쓰레드는 다른일을 계속 받는다. 이벤트 기반 : epool 또는 kqueue를 사용 경량 프레임워크 풍부한 라이브러리 : 각종 모듈 서버와 클라이언트에서 사용하는 언어(JS)가 같음 2. Nodejs 아키텍처 구글 이미지 검색에서 나오는 노드아키텍처들 중에 libev가 있는 건 옛날 사진이다. 노드..
목록 설치하기 프로젝트 폴더 세팅하기 1) 프로젝트 폴더를 생성해줍니다. $ cd ~ $ mkdir app $ cd app 2) package.json 파일을 만들어줍니다. $ npm init (모두 엔터키 입력) $ vi package.json [수정내용] "start" : "node /home/node/app/index.js" 출처 : know-one-by-one.tistory.com/85
목록 설치하기 프로젝트 폴더 세팅하기 1) 최신버전 사용을 위한 저장소 추가(setup_11.x, setup_12.x .... 버전에따라 셋팅해주면 됩니다.) # curl -sL https://rpm.nodesource.com/setup_10.x | bash - # sudo yum clean all && sudo yum makecache fast 2) 의존성 패키지 설치 # sudo yum install -y gcc-c++ make 3) node js 설치 # sudo yum install -y nodejs 4) 버전 확인 # node -v 5) 셀리눅스 보안해제 # setsebool -P httpd_can_network_connect 1
지금까지 app.js 파일의 내용을 변경하고나서는 매번 node app.js 라고 커맨드창에 입력하여 재실행해줬다. 만약 supervisor 모듈을 사용할 경우에는 app.js 파일의 내용을 수정하더라도, 다시 재시작을 하지 않고도 자동으로 재실행 되게 할 수 있다. npm install supervisor -g 를 입력하여 설치해주자. node app.js 로 실행시키지않고,supervisor app.js 로 실행시켜주자. app.js 파일을 열어서 수정한 후에 save 시켜주면,자동으로 서버가 재시작 되는 것을 확인 할 수 있다. 출처: https://sourceflower.tistory.com/22?category=561762 [소스플로우]