SlideShare a Scribd company logo
MEAN Stack 기반 모바일 서비스 개발 overview
김민태
놀기 좋아하는 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
MEAN Stack 기반 모바일 서비스 개발 overview
CommonJS
Non Blocking IO
Javascript / V8
Single Thread
Event Loop
MEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overview
Node & MongoDB 기반
모바일 서비스 쉽고 빠른 개발 방법
!
하고자 하는 이야기
빠른 서버 개발을 위한 기술 스텍
개발, 테스트, 운영을 위한 클라우드 서비스 사용기
NodeJS를 이용한 간단한 웹앱 만들기
MongoDB & Mongoose Overview
To do RESTful API 개발하기
간단한 To do 웹앱 개발하기
!
김민태 @ibare
NCSOFT http://ibare.kr https://medium.com/@ibare
최근 개발자들의 요구사항
1. 빠르게 만들고 폐기할 수 있어야한다
2. 부가 서비스가 풍부하고 사용이 쉬워야한다
3. 공짜 좋다!
MEAN Stack 기반 모바일 서비스 개발 overview
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
MEAN Stack 기반 모바일 서비스 개발 overview
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 생성 하기
MEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overview
간단하게 요약해 보면?
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
MEAN Stack 기반 모바일 서비스 개발 overview
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
MEAN Stack 기반 모바일 서비스 개발 overview
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

More Related Content

PDF
Mean 스택을 사용한 IoT 개발
PDF
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
PDF
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
PDF
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
PDF
JavaScript MEAN 스택
PDF
웹 Front-End 실무 이야기
PDF
Inside node.js
PDF
서버학개론(백엔드 서버 개발자를 위한)
Mean 스택을 사용한 IoT 개발
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
JavaScript MEAN 스택
웹 Front-End 실무 이야기
Inside node.js
서버학개론(백엔드 서버 개발자를 위한)

What's hot (20)

PDF
Nodejs를 이용한 개발
PPTX
[123] electron 김성훈
PPTX
Single-page Application
PDF
서버리스 기반의 프론트엔드 서버 구축(Serverless frontend web server)
PPTX
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
PDF
Node.js 현재와 미래
PDF
Node.js 시작하기
KEY
Meteor 0.3.6 Preview
PPTX
Node.js + Websocket 삽질기
PDF
React를 이용하여 멀티플랫폼에서 개발하기
PDF
오늘 당장 시작하는 HTML5
PDF
Vue SSR vs Prerender
PDF
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
PDF
[111217 아꿈사연말모임] 웹소켓과온라인게임
PDF
Dynamodb 삽질기
PPTX
Soscon2017 오픈소스를 활용한 마이크로 서비스의 캐시 전략
PPTX
Node.js
PDF
Javascript everywhere - Node.js | Devon 2012
PDF
세션3 node.js의 의미와 자바의 대안
PDF
파이어베이스 네이버 밋업발표
Nodejs를 이용한 개발
[123] electron 김성훈
Single-page Application
서버리스 기반의 프론트엔드 서버 구축(Serverless frontend web server)
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
Node.js 현재와 미래
Node.js 시작하기
Meteor 0.3.6 Preview
Node.js + Websocket 삽질기
React를 이용하여 멀티플랫폼에서 개발하기
오늘 당장 시작하는 HTML5
Vue SSR vs Prerender
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
[111217 아꿈사연말모임] 웹소켓과온라인게임
Dynamodb 삽질기
Soscon2017 오픈소스를 활용한 마이크로 서비스의 캐시 전략
Node.js
Javascript everywhere - Node.js | Devon 2012
세션3 node.js의 의미와 자바의 대안
파이어베이스 네이버 밋업발표
Ad

Viewers also liked (7)

PDF
Sublime Text 3 for python and django
PDF
Waterfall과 agile의 불편한 동거 public
PDF
비개발자를 위한 Javascript 알아가기 #5.1
PDF
초보자를 위한 정규 표현식 가이드 (자바스크립트 기준)
PDF
Git - Level 2
PDF
Git는 머꼬? GitHub는 또 머지?
PDF
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
Sublime Text 3 for python and django
Waterfall과 agile의 불편한 동거 public
비개발자를 위한 Javascript 알아가기 #5.1
초보자를 위한 정규 표현식 가이드 (자바스크립트 기준)
Git - Level 2
Git는 머꼬? GitHub는 또 머지?
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
Ad

Similar to MEAN Stack 기반 모바일 서비스 개발 overview (20)

PDF
CoreDot TechSeminar 2018 - Session2 Ji Donghyun
PDF
IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나
PDF
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
PDF
어그로월드 Season1 - Aggro World season 1
PPTX
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
PDF
Unionweb프로젝트
PPTX
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
PDF
AWS 구축 경험 공유
PDF
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
PPTX
웹:앱 기술 동향
PDF
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
PDF
SOSCON 2017 - Backend.AI
PPTX
Big Data platform을 위한 Sencha Ext JS 사례.
PDF
Front end dev 2016 & beyond
PDF
[D2 오픈세미나]3.자바스크립트mean스택 김태훈
PPTX
2010 Microsoft @ Cloud Day 안준석 발표자료
PPTX
시종설_최종.pptx
PDF
PPTX
프론트엔드 개발자의 자바스크립트
PDF
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
CoreDot TechSeminar 2018 - Session2 Ji Donghyun
IGAWorks, 혼자서 2주일만에 서비스 론칭하기 -백정상 팀장 :: AWS 파트너 테크시프트 세미나
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
어그로월드 Season1 - Aggro World season 1
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
Unionweb프로젝트
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
AWS 구축 경험 공유
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
웹:앱 기술 동향
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
SOSCON 2017 - Backend.AI
Big Data platform을 위한 Sencha Ext JS 사례.
Front end dev 2016 & beyond
[D2 오픈세미나]3.자바스크립트mean스택 김태훈
2010 Microsoft @ Cloud Day 안준석 발표자료
시종설_최종.pptx
프론트엔드 개발자의 자바스크립트
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?

More from 민태 김 (20)

PDF
웹을 지탱하는 차세대 기술 @한국웹20주년 컨퍼런스
PDF
외계어 스터디 4/5 Event & Library
PDF
외계어 스터디 3/5 function and object
PDF
외계어 스터디 2/5 - Expressions & statements
PDF
외계어 스터디 1/5 - Overview
PDF
비개발자를 위한 Javascript 알아가기 #7.1
PDF
비개발자를 위한 Javascript 알아가기 #7
PDF
비개발자를 위한 Javascript 알아가기 #6.1
PDF
비개발자를 위한 Javascript 알아가기 #6
PDF
비개발자를 위한 Javascript 알아가기 #5
PDF
비개발자를 위한 Javascript 알아가기 #4.1
PDF
비개발자를 위한 Javascript 알아가기 #4
PDF
비개발자를 위한 Javascript 알아가기 #3
PDF
비개발자를 위한 Javascript 알아가기 #2
PDF
비개발자를 위한 Javascript 알아가기 #1
PDF
H3 경쟁력있는 웹앱 개발을 위한 모바일 js 프레임웍
PDF
Knockout.js Overview
PDF
스마트미디어 크로스플렛폼 개발 전략
PDF
CANVAS, SVG, WebGL, CSS3, WebEvent
PDF
Html5 game programming overview
웹을 지탱하는 차세대 기술 @한국웹20주년 컨퍼런스
외계어 스터디 4/5 Event & Library
외계어 스터디 3/5 function and object
외계어 스터디 2/5 - Expressions & statements
외계어 스터디 1/5 - Overview
비개발자를 위한 Javascript 알아가기 #7.1
비개발자를 위한 Javascript 알아가기 #7
비개발자를 위한 Javascript 알아가기 #6.1
비개발자를 위한 Javascript 알아가기 #6
비개발자를 위한 Javascript 알아가기 #5
비개발자를 위한 Javascript 알아가기 #4.1
비개발자를 위한 Javascript 알아가기 #4
비개발자를 위한 Javascript 알아가기 #3
비개발자를 위한 Javascript 알아가기 #2
비개발자를 위한 Javascript 알아가기 #1
H3 경쟁력있는 웹앱 개발을 위한 모바일 js 프레임웍
Knockout.js Overview
스마트미디어 크로스플렛폼 개발 전략
CANVAS, SVG, WebGL, CSS3, WebEvent
Html5 game programming overview

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