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

6,517 views

Published on

Node와 MongoDB 기반으로 클라우드상에서 빠르게 모바일 서비스를 개발할 경우 다루는 기술에 대한 Overview

Published in: Technology
2 Comments
118 Likes
Statistics
Notes
  • unclosed string이 없으니 허전하네요 ㅎ
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • 내용 좋은 데요 ^^ docker부분은 더 좋은듯 docker와 도쿠는 꼭 해봐야할듯 하네요
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
6,517
On SlideShare
0
From Embeds
0
Number of Embeds
253
Actions
Shares
0
Downloads
0
Comments
2
Likes
118
Embeds 0
No embeds

No notes for slide

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

  1. 1. 김민태 놀기 좋아하는 40대 개발자 chekit.us
  2. 2. 서비스 개발에 필요한 구성요소 Front-end Back-end Infrastructure
  3. 3. 서비스 개발에 필요한 구성요소 Back-end Framework Repository Eco-System node.js express jade async MongoDB Redis S3 npm git
  4. 4. 서비스 개발에 필요한 구성요소 Front-end Framework Platform Eco-System HTML5 AngularJS Bootstrap LESS Browser Native Hybrid bower git IoT
  5. 5. 서비스 개발에 필요한 구성요소 Infrastructure PaaS IaaS Heroku Parse baas.io AWS Azure UCloud docker
  6. 6. 조금 다르게 정리해보면
  7. 7. Cloud
  8. 8. imageclick.com i22.com alt-image.com www. admin. cs. partner. artist. www. api. partner. www. api. partner. . . .
  9. 9. 오래된 서버는 점점 노후되고 하루가 멀다하고 고장나는 HDD 신규 장비와 기존 장비의 빈부격차 아까워서 버리지도 못함 ㅜ.ㅜ
  10. 10. 2008 Vmware vSphere
  11. 11. ... ...
  12. 12. Node eco-system
  13. 13. CommonJS Non Blocking IO Javascript / V8
  14. 14. Single Thread Event Loop
  15. 15. Node & MongoDB 기반 모바일 서비스 쉽고 빠른 개발 방법 ! 하고자 하는 이야기 빠른 서버 개발을 위한 기술 스텍 개발, 테스트, 운영을 위한 클라우드 서비스 사용기 NodeJS를 이용한 간단한 웹앱 만들기 MongoDB & Mongoose Overview To do RESTful API 개발하기 간단한 To do 웹앱 개발하기 ! 김민태 @ibare NCSOFT http://ibare.kr https://medium.com/@ibare
  16. 16. 최근 개발자들의 요구사항 1. 빠르게 만들고 폐기할 수 있어야한다 2. 부가 서비스가 풍부하고 사용이 쉬워야한다 3. 공짜 좋다!
  17. 17. Heroku work flow 서비스 가입 Heroku Toolbelt 설치 앱 생성 부가 서비스 추가 코드 배포 서비스
  18. 18. hello@git:master $ heroku apps:create hello ! Creating example... done, stack is cedar http://hello.herokuapp.com/ | git@heroku.com:hello.git
  19. 19. hello@git:master $ heroku addons:add mongohq:small hello@git:master $ heroku logs hello@git:master $ git push heroku master
  20. 20. Heroku Add On 140+
  21. 21. 1. 느리다. 그리고 느리다. 2. PaaS 특징을 잘 이해해야 함 3. 무료를 벗어나면 주머니가 두둑해야
  22. 22. BaaS 는 어떨까?
  23. 23. 1. 단말 개발자만 있다면 해볼만 2. 백앤드 개발이 가능하다면? 3. 서비스가 성공하면 결국 옮겨야하지 않을까? 4. 결국 PaaS는 IaaS에 삼켜지지 않을까? 개인적인 생각일뿐 BaaS 는 어떨까?
  24. 24. 1. 무수히 많은 레퍼런스 서비스 2. PaaS 보다 더 많이 누릴 수 있는 자유 3. PaaS 만큼 편리한 부분도 많다 4. 글로벌 서비스 개발에 많은 장점을 제공
  25. 25. AWS 진입부터 현재까지의 과정을 간단히 정리해보면? 서비스 가입 최초의 무료! EC2 생성 아키텍처 리뷰 비용 추정 서비스 아키텍처 전환 서비스
  26. 26. 최초의 무료! EC2 생성 의외로(?) 무료로 체험할 수 있는 서비스가 많음 AWS 의 많은 부분 감을 잡기 위해 t1.micro 인스턴스로 시작 * t1.micro 가 heroku 무료 보다 2배 이상 빠른 결과 측정
  27. 27. EC2 생성 하기
  28. 28. http://awsnow.info EC2 생성 하기
  29. 29. 간단하게 요약해 보면? AMI Auto Scaling Group Launch Configurations Policy DNS ELB EC2
  30. 30. 비용 추정 정적 리소스 (EC2, EBS, S3 등) 의 비용 분석 트래픽 증가에 따른 예상 비용 매트릭스 분석 - EC2, 네트워크 비용 서비스의 타입과 상황따라 매우 다릅니다!!
  31. 31. 잠깐 EC2 생성 과정을 함께 볼까요? 1. 인스턴스 생성 2. Security Groups 설정 3. SSH 접속
  32. 32. 아키텍처 리뷰 실 서비스를 올리기 전 다양한 레퍼런스 체크 잘 정리된 많은 문서들이 제공된다. 한글 버전도 상당히 많다. 아마존 스러운 용어와 표현력엔 적응이 좀 필요하다. http://aws.amazon.com/architecture/
  33. 33. One more thing...
  34. 34. an open source project to pack, ship and run any application as a lightweight container
  35. 35. https://www.docker.io/gettingstarted/#1
  36. 36. http://we.weirdmeetup.com/YAbPg Docker로 만드는 미니 Heroku
  37. 37. Node & MongoDB 기반 모바일 서비스 쉽고 빠른 개발 방법 ! 하고자 하는 이야기 빠른 서버 개발을 위한 기술 스텍 개발, 테스트, 운영을 위한 클라우드 서비스 사용기 NodeJS를 이용한 간단한 웹앱 만들기 MongoDB & Mongoose Overview To do RESTful API 개발하기 간단한 To do 웹앱 개발하기 ! 김민태 @ibare NCSOFT http://ibare.kr https://medium.com/@ibare
  38. 38. 아래와 같은 개발 환경을 권장합니다
  39. 39. 기본 환경 설치하기 http://nodejs.org/ https://npmjs.org/ http://git-scm.com/
  40. 40. 순수한 “Hello World”
  41. 41. hello.js #1
  42. 42. hello.js #2
  43. 43. using express
  44. 44. package.json
  45. 45. hello.js #3
  46. 46. $ npm install jade --save $ mkdir views views/index.jade
  47. 47. hello.js #4
  48. 48. views/index.jade Block
  49. 49. 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>
  50. 50. 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” }
  51. 51. 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}
  52. 52. 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
  53. 53. $ express make-express
  54. 54. $ npm install nodemon -g
  55. 55. Front-end Components
  56. 56. bower #1 bower.json
  57. 57. bower #2
  58. 58. bower #3
  59. 59. bower #4
  60. 60. views/index.jade
  61. 61. Node & MongoDB 기반 모바일 서비스 쉽고 빠른 개발 방법 ! 하고자 하는 이야기 빠른 서버 개발을 위한 기술 스텍 개발, 테스트, 운영을 위한 클라우드 서비스 사용기 NodeJS를 이용한 간단한 웹앱 만들기 MongoDB & Mongoose Overview To do RESTful API 개발하기 간단한 To do 웹앱 개발하기 ! 김민태 @ibare NCSOFT http://ibare.kr https://medium.com/@ibare
  62. 62. 도큐먼트 기반 Schema-less Database JSON / Javascript 10gen / Open Source 설치 및 사용이 쉽다 가장 인기있는 NoSQL 솔루션
  63. 63. Install http://www.mongodb.org/downloads
  64. 64. Run mongod
  65. 65. MongoDB Management Tool
  66. 66. Database / Collections / Document Function (Javascript) (JSON)
  67. 67. ObjectID
  68. 68. Query #Insert
  69. 69. Query #Read Concept SQL
  70. 70. Query #Read Concept
  71. 71. Query #Read Concept
  72. 72. Query #Read Example
  73. 73. Query #Read Example
  74. 74. Query #Read Example
  75. 75. Query #Read Example
  76. 76. Query #Update
  77. 77. Query #Delete
  78. 78. Query #Map-Reduce
  79. 79. Query #Aggreation (v2.2 later)
  80. 80. Replication
  81. 81. Replication
  82. 82. Sharding
  83. 83. Schema
  84. 84. Operation
  85. 85. Middleware - Pre
  86. 86. Middleware - Post
  87. 87. Collection Functions
  88. 88. Node & MongoDB 기반 모바일 서비스 쉽고 빠른 개발 방법 ! 하고자 하는 이야기 빠른 서버 개발을 위한 기술 스텍 개발, 테스트, 운영을 위한 클라우드 서비스 사용기 NodeJS를 이용한 간단한 웹앱 만들기 MongoDB & Mongoose Overview To do RESTful API 개발하기 간단한 To do 웹앱 개발하기 ! 김민태 @ibare NCSOFT http://ibare.kr https://medium.com/@ibare
  89. 89. RESTful API?
  90. 90. RESTful API?
  91. 91. URI 설계
  92. 92. express 기반 요청 라우팅
  93. 93. express middleware *주의: 최근 express 4.0 버전 부터 middleware 대부분이 외부 모듈로 분리되어 4.x 사용시 아래 URL 참조
 http://scotch.io/bar-talk/expressjs-4-0-new-features-and-upgrading-from-3-0
  94. 94. express middleware - body parser
  95. 95. express middleware - params
  96. 96. express middleware - query string
  97. 97. express middleware - req.files
  98. 98. express routing
  99. 99. express auth middleware
  100. 100. express custom middleware
  101. 101. express routing style #1
  102. 102. express routing style #2
  103. 103. express routing style #3
  104. 104. $ npm install generator-kraken -g
  105. 105. express routing style Kraken.js
  106. 106. express routing style Kraken.js
  107. 107. Supertest - mocha / chai
  108. 108. Node & MongoDB 기반 모바일 서비스 쉽고 빠른 개발 방법 ! 하고자 하는 이야기 빠른 서버 개발을 위한 기술 스텍 개발, 테스트, 운영을 위한 클라우드 서비스 사용기 NodeJS를 이용한 간단한 웹앱 만들기 MongoDB & Mongoose Overview To do RESTful API 개발하기 간단한 To do 웹앱 개발하기 ! 김민태 @ibare NCSOFT http://ibare.kr https://medium.com/@ibare

×