서버/Node.js
-
미들웨어란?서버/Node.js 2017. 12. 1. 00:26
프로젝트를 진행하면서 느낀 것은 내가 아직 많이 개념이 모자라다는 것이었다. 대충 어느정도 흐름이 잡혔다 싶었다가도 한 번 막히면 다시 원상태로 돌아오는 것이 내 스스로에게 너무나도 답답하게 느껴졌다. 천천히, 하지만 정확히. 그것은 어디에나 통하는 '정(正)도'라고 생각한다. 그래서 다시 책 속에 나와있는 개념들을 하나하나 정리해볼까 한다. 그리고 한동안 프로젝트의 진행 내용에 대해서 꾸준히 포스팅하고 싶었지만, 뭔가를 어서 만들어 성취감을 느끼고 싶다는 마음이 너무나도 크게 들어서 그러지를 못한 거 같다. 어차피 지금 만드는 프로젝트는 정말로 내가 초보 딱지를 떼기 위해서 만드는 것이기 때문에, 이 프로젝트가 완성되면, 차후 다른 프로젝트를 진행하면서 차근차근 포스팅하도록 하겠다. 다시 본론으로 돌아..
-
정보의 전달(GET, POST)서버/Node.js 2017. 11. 27. 13:29
생활코딩의 내용을 복습하고 책에 있는 내용을 복습하도록 하자.여기서 작성되는 HTML은 모두 pug(구 jade)의 문법을 따르므로 검색을 통해 문장을 보는 눈을 익혀두자. 먼저 생활코딩에서 배운 내용에 대해서 소개하자면, 생활코딩에서는 간단하게 폼(form)과 그것이 어떻게 서버로 전송되는 지를 구현해 보았다. 1. GET 방식GET방식은 사용자가 서버로 URL을 통해 정보의 값을 전달하고 서버는 URL을 통해서 그 값을 받게 되는 구조이다. 여기서 먼저 GET방식을 익혀보자.html headmeta(charset='utf-8')bodyform(action='/form_receiver') // form 태그로 묶으면 입력된 정보들이 action의 주소로 전송됨 ( ) 안에 method = 'get'이 ..
-
MongoDB와 Node.js서버/Node.js 2017. 11. 25. 18:25
MongoDB와 Node.jsNoSQL과 Node.js는 처음부터 궁합이 잘 맞는 존재였다. NoSQL같은 경우, 관계형 데이터베이스의 Join 위주의 SQL 사용을 지양한다. 정형화된 테이블 구조 역시 필요하지 않으며 대부분의 '관계'를 1개의 데이터셋 안에 '키-값'의 쌍 형태로 넣어, 수평적으로 확장하기 위해 설계되었다. 이러한 특성은 이벤트 기반의 비동기식 데이터 처리를 통해 대량 트랜잭션을 신속하게 처리하기 위한 Node.js의 습성과 잘 맞아 떨어진다. NoSQL의 '키-값' 형태의 데이터 저장소는 비정형의 세션정보 저장에 적합하며, 짧은 응답 속도를 제공할 수 있다. 예를 들어 로그인하는 사용자의 프로파일 저장소를 생각해보자. 사용자 아이디, 사용자 기본 정보, 다중 아이디 등을 '키-값' ..
-
MVC 흐름서버/Node.js 2017. 11. 25. 17:11
MVC(Model - View - Controller) 패턴은 웹 어플리케이션을 제작할 때 편리함을 가져다 준다. Pug(구 Jade) 템플릿을 활용하여 이를 구현해보도록 하자. $ express pug todoBoard // express [원하는 template] [dir]$ cd todoBoard$ npm install // express에 필요한 기본 모듈들이 설치$ npm start // 서버를 시작하고 localhost:3000으로 접속해 간단한 결과를 확인 가능 이런 순서대로 콘솔 창에 입력하면 express를 이용해 웹 어플리케이션을 만들 간단한 준비가 끝났다. express를 통해 만들어진 폴더의 목록을 보면 views, bin, routes, public, app.js 등이 존재한다. ..
-
모듈 알아보기서버/Node.js 2017. 11. 17. 20:48
HTTP ModuleHTTP 모듈은 Node.js를 시작할 때 가장 먼저 접하게 되는 모듈로써 이에 대해 공부하면 후에 큰 도움이 될 것이라고 확신한다.그렇다면 본격적으로 HTTP 모듈에 대해 공부해보자. The Built-in HTTP 빌트 인(built-in)하는 방식은 require( ) 메소드를 사용한다. var http = require('http'); Node.js ad a Web ServerHTTP 모듈은 createServer( )메소드를 통해 HTTP 서버를 만들 수 있다. req는 request를, res는 response를 의미한다. var http = require('http'); //create a server object: http.createServer(function (req..
-
Chapter3. 익스프레스 건드려 보기서버/Node.js 2017. 11. 17. 15:45
1. 스캐폴딩새 프로젝트를 시작하거나 혹은 PPT를 만들 때, 매번 처음부터 뼈대가 되는 '템플릿'코드를 작성하거나, 만드는 사람은 극히 일부분일 것이다. 대부분은 기본 틀을 만들어두고, 프로젝트를 시작할 때마다 여기서 수정하는 방식을 이용한다. 이러한 아이디어를 '스캐폴딩'이라고 한다. 루비 온 레일즈에서는 자동으로 스캐폴딩을 생성하는 프로그램을 만들었는데, 이는 기존의 템플릿 컬렉션 중에서 선택하는 것이 아닌 직접 세련된 프레임워크를 생성할 수 있다는 큰 장점을 지니고 있다. 익스프레스는 루비 온 레일즈의 아이디어를 받아들여, 프로젝트를 시작할 때 스캐폴딩을 만드는 유틸리티를 제공한다. 다만 우리가 배우는 과정에서는 익스프레스의 스캐폴딩 유틸리티가 뛰어나지도 않으며, 직접 해보는 것에 초점을 맞추고 ..