김민태
놀기 좋아하는 40대 개발자
chekit.us
서비스 개발에 필요한 구성요소
Front-end
Back-end
Infrastructure
서비스 개발에 필요한 구성요소
Back-end
Framework Repository Eco-System
node.js
express
jade
async
MongoDB
Redis
S3
npm
git
서비스 개발에 필요한 구성요소
Front-end
Framework Platform Eco-System
HTML5
AngularJS
Bootstrap
LESS
Browser
Native
Hybrid
bower
git
IoT
서비스 개발에 필요한 구성요소
Infrastructure
PaaS IaaS
Heroku
Parse
baas.io
AWS
Azure
UCloud
docker
조금 다르게 정리해보면
Cloud
imageclick.com
i22.com
alt-image.com
www.
admin.
cs.
partner.
artist.
www.
api.
partner.
www.
api.
partner.
.
.
.
오래된 서버는 점점 노후되고
하루가 멀다하고 고장나는 HDD
신규 장비와 기존 장비의 빈부격차
아까워서 버리지도 못함 ㅜ.ㅜ
2008
Vmware vSphere
...
...
Node eco-system
CommonJS
Non Blocking IO
Javascript / V8
Single Thread
Event Loop
Node & MongoDB 기반
모바일 서비스 쉽고 빠른 개발 방법
!
하고자 하는 이야기
빠른 서버 개발을 위한 기술 스텍
개발, 테스트, 운영을 위한 클라우드 서비스 사용기
NodeJS를 이용한 간단한 웹앱 만들기
MongoDB & Mongoose Overview
To do RESTful API 개발하기
간단한 To do 웹앱 개발하기
!
김민태 @ibare
NCSOFT http://ibare.kr https://medium.com/@ibare
최근 개발자들의 요구사항
1. 빠르게 만들고 폐기할 수 있어야한다
2. 부가 서비스가 풍부하고 사용이 쉬워야한다
3. 공짜 좋다!
Heroku work flow
서비스 가입
Heroku Toolbelt 설치
앱 생성
부가 서비스 추가
코드 배포
서비스
hello@git:master $ heroku apps:create hello
!
Creating example... done, stack is cedar
http://hello.herokuapp.com/ | git@heroku.com:hello.git
hello@git:master $ heroku addons:add mongohq:small
hello@git:master $ heroku logs
hello@git:master $ git push heroku master
Heroku Add On
140+
1. 느리다. 그리고 느리다.
2. PaaS 특징을 잘 이해해야 함
3. 무료를 벗어나면 주머니가 두둑해야
BaaS 는 어떨까?
1. 단말 개발자만 있다면 해볼만
2. 백앤드 개발이 가능하다면?
3. 서비스가 성공하면 결국 옮겨야하지 않을까?
4. 결국 PaaS는 IaaS에 삼켜지지 않을까?
개인적인 생각일뿐
BaaS 는 어떨까?
1. 무수히 많은 레퍼런스 서비스
2. PaaS 보다 더 많이 누릴 수 있는 자유
3. PaaS 만큼 편리한 부분도 많다
4. 글로벌 서비스 개발에 많은 장점을 제공
AWS 진입부터 현재까지의 과정을
간단히 정리해보면?
서비스 가입
최초의 무료! EC2 생성
아키텍처 리뷰
비용 추정
서비스 아키텍처 전환
서비스
최초의 무료! EC2 생성
의외로(?) 무료로 체험할 수 있는 서비스가 많음
AWS 의 많은 부분 감을 잡기 위해 t1.micro 인스턴스로 시작
* t1.micro 가 heroku 무료 보다 2배 이상 빠른 결과 측정
EC2 생성 하기
http://awsnow.info
EC2 생성 하기
간단하게 요약해 보면?
AMI
Auto
Scaling
Group
Launch Configurations
Policy
DNS
ELB
EC2
비용 추정
정적 리소스 (EC2, EBS, S3 등) 의 비용 분석
트래픽 증가에 따른 예상 비용 매트릭스 분석 - EC2, 네트워크 비용
서비스의 타입과 상황따라 
매우 다릅니다!!
잠깐 EC2 생성 과정을 함께 볼까요?
1. 인스턴스 생성
2. Security Groups 설정
3. SSH 접속
아키텍처 리뷰
실 서비스를 올리기 전 다양한 레퍼런스 체크
잘 정리된 많은 문서들이 제공된다. 한글 버전도 상당히 많다.
아마존 스러운 용어와 표현력엔 적응이 좀 필요하다.
http://aws.amazon.com/architecture/
One more thing...
an open source project to pack, ship and run
any application as a lightweight container
https://www.docker.io/gettingstarted/#1
http://we.weirdmeetup.com/YAbPg
Docker로 만드는 미니 Heroku
Node & MongoDB 기반
모바일 서비스 쉽고 빠른 개발 방법
!
하고자 하는 이야기
빠른 서버 개발을 위한 기술 스텍
개발, 테스트, 운영을 위한 클라우드 서비스 사용기
NodeJS를 이용한 간단한 웹앱 만들기
MongoDB & Mongoose Overview
To do RESTful API 개발하기
간단한 To do 웹앱 개발하기
!
김민태 @ibare
NCSOFT http://ibare.kr https://medium.com/@ibare
아래와 같은 개발 환경을 권장합니다
기본 환경 설치하기
http://nodejs.org/
https://npmjs.org/
http://git-scm.com/
순수한 “Hello World”
hello.js #1
hello.js #2
using express
package.json
hello.js #3
$ npm install jade --save
$ mkdir views
views/index.jade
hello.js #4
views/index.jade
Block
views/index.jade - 문법 #1
p hello world
p.foo hello world
p#foo hello world
#foo hello world
#foo(name=“t1”, class=“s1”) hello world
#foo(name=“t1”).s1 hello world
<p>hello world</p>
<p class=“foo”>hello world</p>
<p id=“foo”>hello world</p>
<div id=“foo”>hello world</div>
<div id=“foo” name=“t1” class=“s1”>hello world</div>
<div id=“foo” name=“t1” class=“s1”>hello world</div>
views/index.jade - 문법 #2
- var cont1 = “Hello World”
p #{cont1}
p= cont1
p Text: #{cont1}
p= cont2.value
<p>hello world</p>
<p>hello world</p>
<p>Text: hello world</p>
<p>Hello World</p>
- var cont2 = { value: “Hello World” }
views/index.jade - 문법 #3
- for (var x=0; x<3; x++)
- var condition = true
if (condition)
h1 This is true
else
h1 This is false
li item #{x}
<li>item 0</li>
<li>item 1</li>
<li>item 2</li>
- each x in [0, 1, 2]
li item #{x}
views/index.jade - 문법 #4
extends layout/default
block main
h1 main contents
!
extends layout/ga-script
extends layout/footer
doctype html
head
body
block main
layout/default.jade
$ express make-express
$ npm install nodemon -g
Front-end Components
bower #1
bower.json
bower #2
bower #3
bower #4
views/index.jade
Node & MongoDB 기반
모바일 서비스 쉽고 빠른 개발 방법
!
하고자 하는 이야기
빠른 서버 개발을 위한 기술 스텍
개발, 테스트, 운영을 위한 클라우드 서비스 사용기
NodeJS를 이용한 간단한 웹앱 만들기
MongoDB & Mongoose Overview
To do RESTful API 개발하기
간단한 To do 웹앱 개발하기
!
김민태 @ibare
NCSOFT http://ibare.kr https://medium.com/@ibare
도큐먼트 기반 Schema-less Database
JSON / Javascript
10gen / Open Source
설치 및 사용이 쉽다
가장 인기있는 NoSQL 솔루션
Install
http://www.mongodb.org/downloads
Run mongod
MongoDB Management Tool
Database / Collections / Document
Function
(Javascript)
(JSON)
ObjectID
Query #Insert
Query #Read Concept
SQL
Query #Read Concept
Query #Read Concept
Query #Read Example
Query #Read Example
Query #Read Example
Query #Read Example
Query #Update
Query #Delete
Query #Map-Reduce
Query #Aggreation (v2.2 later)
Replication
Replication
Sharding
Schema
Operation
Middleware - Pre
Middleware - Post
Collection Functions
Node & MongoDB 기반
모바일 서비스 쉽고 빠른 개발 방법
!
하고자 하는 이야기
빠른 서버 개발을 위한 기술 스텍
개발, 테스트, 운영을 위한 클라우드 서비스 사용기
NodeJS를 이용한 간단한 웹앱 만들기
MongoDB & Mongoose Overview
To do RESTful API 개발하기
간단한 To do 웹앱 개발하기
!
김민태 @ibare
NCSOFT http://ibare.kr https://medium.com/@ibare
RESTful API?
RESTful API?
URI 설계
express 기반 요청 라우팅
express middleware
*주의: 최근 express 4.0 버전 부터 middleware 대부분이 외부 모듈로 분리되어 4.x 사용시 아래 URL 참조

http://scotch.io/bar-talk/expressjs-4-0-new-features-and-upgrading-from-3-0
express middleware - body parser
express middleware - params
express middleware - query string
express middleware - req.files
express routing
express auth middleware
express custom middleware
express routing style #1
express routing style #2
express routing style #3
$ npm install generator-kraken -g
express routing style Kraken.js
express routing style Kraken.js
Supertest - mocha / chai
Node & MongoDB 기반
모바일 서비스 쉽고 빠른 개발 방법
!
하고자 하는 이야기
빠른 서버 개발을 위한 기술 스텍
개발, 테스트, 운영을 위한 클라우드 서비스 사용기
NodeJS를 이용한 간단한 웹앱 만들기
MongoDB & Mongoose Overview
To do RESTful API 개발하기
간단한 To do 웹앱 개발하기
!
김민태 @ibare
NCSOFT http://ibare.kr https://medium.com/@ibare
MEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overview

MEAN Stack 기반 모바일 서비스 개발 overview