MeanStack (deprecated)
-
14장 passport 모듈을 이용한 사용자 인증 (1)MeanStack (deprecated) 2016. 6. 23. 22:04
패스포트는 노드 모듈이고 , 패스포트라는 이름에서 알 수 있듯이 이는 사용자 인증을 위한 외부 모듈이다. 패스포트는 전략이라는 메커니즘을 사용해 개발자에게 다양한 인증 방식을 제공한다. 백문이 불여일견 , 일단 설치하고 직접 해보자 . 간단하게 설치를 하였다 . 이제 passport 를 사용하기에 앞서 passport 의 설정파일을 만들자. config 폴더로 가서 passport.js 파일을 만들자. 일단 파일만 만들고 지금은 잠시 놔두자. 이 파일을 불러오기 위해 StartApp.js 파일을 수정하자. process.env.NODE_ENV = process.env.NODE_ENV || 'development'; var express = require('./config/express_config'), ..
-
13장 mongoose(몽구스)를 이용한 index 활용, 데이터 검증MeanStack (deprecated) 2016. 6. 21. 22:43
이번에는 mongoose 모델에 색인을 넣어서 질의 검색을 좀 더 빠르게 하는 방법을 알아본다. 몽구스로 만든 모델에 색인을 넣는 방법은 간단하다. unique 라는 옵션을 주면 땡 이다. 예를 들어 username : {type : String ,trim : true ,unique : true } 위와 같은 식으로 옵션을 주면 username 은 RDBMS 에서 볼 수 있는 primary key 와 같은 형식이 된다. 여기에 추가로 보조 index 를 줄 수도 있는데 이 역시 index 라는 옵션을 주면 끝 이다. email : {type : String,index : true} 위 처럼 index 옵션을 주고 true 로 설정하면 이는 보조 색인이 되어 email 과 관련된 질의 를 할 경우 성능이 ..
-
12장 mongoose(몽구스) 를 이용한 스키마 확장MeanStack (deprecated) 2016. 6. 19. 22:19
이번 장에서는 Mongoose 로 만든 모델을 확장 시켜 보겠다. 이전 장에서 만든 모델에 생성날짜 속성를 추가하고 싶으며 , 거기다 생성날짜는 데이터가 생성될 때 기존 RDBMS 처럼 현재 시간으로 default 값을 주고 싶다면 어떻게 해야 할까? 이를 구현 하기 위해 이전에 만든 모델을 변경하자. app/models 폴더로 가서 user.server.model.js 파일의 코드를 바꿔보자. var mongoose = require('mongoose'), Schema = mongoose.Schema; var UserSchema = new Schema({ username : String , userid : String , password : String , email : String , created ..
-
11장 mongoose (몽구스) 를 이용한 MongoDB 스키마 생성, CRUD 작업 (2)MeanStack (deprecated) 2016. 6. 16. 23:40
10장에 이어서 mongoose 를 이용한 CRUD 작업을 이어가겠다. 이번엔 모든 사용자가 아닌 findOne() 단일 사용자를 찾는 메소드를 만들겠다. 먼저 app/controllers 폴더로 가서 users.server.controller.js 파일의 끝에 다음 코드를 수정하자. exports.read = function(req,res) { res.json(req.user); }; exports.userByID = function(req,res,next,id) { User.findOne({ _id : id }, function(err, user) { if(err) { return next(err); }else{ req.user = user; next(); } }) } findOne 을 할 때는 부분..
-
10장 mongoose (몽구스) 를 이용한 MongoDB 스키마 생성, CRUD 작업 (1)MeanStack (deprecated) 2016. 6. 16. 00:40
이번엔 mongoose 를 이용해서 MongoDB 스키마를 만들어보겠다. MongoDB는 collection 을 사용해 데이터를 저장하기 때문에 궂이 스키마를 정의해 document 의 구조가 동일하게만들 필요는 없지만, 살아가다 보면 종종(?) document 가 유사 할 필요가 있다. mongoose 는 Schema 객체를 사용해 MongoDB의 Model 을 정의한다. 그럼 바로 Schema를 정의해보자. 새로운 Model 을 정의하기 위해 app/models 폴더로 가서 user.server.model.js 파일을 생성하고 , 코드를 작성하자. var mongoose = require('mongoose'), Schema = mongoose.Schema; var UserSchema = new Sch..
-
9장 mongoose (몽구스) 를 이용한 Mongodb 연결MeanStack (deprecated) 2016. 6. 14. 23:41
Mongoose (몽구스) 는 노드 모듈이며 개발자에게 객체를 모델링하고 객체를 MongoDB 다큐먼트로 저장하는 능력을 제공한다. 기본적으로 MongoDB는 스키마가 없는 데이터베이스지만 몽구스는 몽구스 모델을 사용할 때엄격하고 느슨한 스키마 접근 방법 양쪽을 모두 즐기는 기회를 제공한다. 자 먼저 mongoose 를 설치하자 . { "name" : "test", "version" : "1.0.0", "description" : "", "main" : "index.js", "dependencies" : { "body-parser" : "^1.15.1", "compression" : "^1.6.2", "ejs" : "~1.0.0", "express" : "^4.13.4", "express-session"..
-
8장 MeanStack 의 또 다른 조각 MongoDB 를 알아보자MeanStack (deprecated) 2016. 6. 13. 21:53
이번엔 MeanStack 의 또 다른 조각인 mongoDB에 대하여 알아보자. 1장에서 MongoDB를 설치하며 기본적인 사용법은 알 수 있었지만, 이번에는 제대로 동작방식 까지 알아보자. 먼저 흔히 알고 있는 관계형데이터베이스 (RDBMS) 들과 기본적인 차이점을 알아보자면 기본적으로 RDBMS는 데이터는 다양한 테이블에 저장된다. 나중에는 몇몇 계층적인 객체 표현으로 데이터를 배열할 목적으로 다양한 SQL 문을 사용해 모델을 재 구성 할 것이다. 하지만 문서중심 데이터베이스는 다르게 처리한다. 기본적으로 키 - 값 으로 이루어진 저장소 솔루션이며 JSON 이나 XML 같은 표준 형태로 계층적인 문서를 저장한다. 이를 이해하기 위해 간단항 예를 들면, 기본적인 블로그 글을 예로 살펴보자. 기존 RDBM..
-
7장 express 를 활용한 session 처리MeanStack (deprecated) 2016. 6. 12. 00:08
이번엔 빠르게 express 를 이용한 session 처리를 알아본다. HTTP는 비연결 지향형 프로토콜이기 때문에 사용자가 요청한 웹 파일의 전송이 끝나면 연결이 끊겨 버린다. 이는 웹서버가 모든 HTTP 요청을 독립적으로 처리하는 것 이므로, 만약 session 정보가 없다면, 요청이 올 때마다 이전 요청에 대한 정보는 전혀 남아 있지 않기 때문에 , 어떠한 서비스에 로그인을 해서 해당 사용자의 정보를 정보를 유지하며 그에 맞는 서비스를 제공하기 위해서는 session 처리는 필수적인 요소이다. session은 웹 서버에서 접속자들의 정보를 구별하는 식별키라고 보면 된다. 사용자가 웹 서버에 HTTP 프로토콜로 웹페이지를 요청 할 때 서버는 해당 접속자에 관한 식별키를 쿠키 형식으로 사용자의 컴퓨터에..