SlideShare una empresa de Scribd logo
1 de 30
Meteor preview
0.3.6
2012.06.01 HTML5JS공부모임 / 박준태 @rkJun
about.me/rkJun

✤   Pa{rk, Jun}tai

✤   (닉네임 rkJun-알케이준)

✤   OKJSP Committer, Open Source Contributor

✤   Web Developer (Java)

✤   twitter @rkJun

✤   blog rkjun.wordpress.com
Meteor.com/screencast


✤   Meteor 소개 동영상 (http://meteor.com/screencast) 보고 신기했음!

    ✤   소스 코드 변경시, 모든클라이언트에 바로 반영!

    ✤   클라이언트에서, 데이터베이스의 데이터 핸들링!

    ✤   DB 변경시, 모든 클라이언트에 바로 반영!
Meteor is...
✤
    A new way to build apps.

    ✤
        Pure JavaScript.

    ✤
        Live page updates.

    ✤
        Clean, powerful data synchronization.

    ✤
        Latency compensation.

    ✤
        Hot Code Pushes.

    ✤
        Sensitive code runs in a privileged environent.

    ✤
        Fully self-contained application bundles.

    ✤
        Interoperability.

    ✤
        Smart Packages.
“This is the web framework I always wanted.”
 - Garry Tan (Founder and designer,
Posterous)




                             from www.meteor.com
“This is great! Definitely something the
industry needs right now.”
- Dustin Moskovitz (Co-founder, Asana; Co-
founder, Facebook)




                             from www.meteor.com
JavaScript


✤   Pure JavaScript

✤   Server Side & Client Side => JavaScript

✤   Server Side & Client Side => All the Same APIs, include DB APIs

✤   JavaScript 기반 Web Application Framework
Version



✤   2012년 4월 preview 0.3.2 공개 (HTML5JS 오프모임 1회때)

✤   2012년 5월 27일 현재 preview 0.3.6

✤   1년내 1.0 버전 공개 예정 ( 4명 Full-time 근무)
License



✤   MIT License

✤   Open source Software

✤   내맘대로 OK
Data

✤   Meteor client 는 각각 서버 데이터에 대한 캐쉬(inMemory cache) 보유

✤   클라이언트 캐쉬는 서버 데이터와 동기가능

✤   클라이언트 캐쉬 데이터를 insert, remove, update 시 서버 적용

✤   반영된 데이터는, 물론 모든 다른 클라이언트에 적용됨

✤   (서버에서 DB 처리 개발하고, WEB에서 호출하는 방식 필요없음)

✤   MongoDB API
DataBase Access

✤   Client Side, Server Side

✤   MongoDB 기반 (Minimongo)

✤   table = new Meteor.Collection("table");

✤   table.find();

✤   table.update(key, {$set } );

✤   table.remove(key);

✤   table.insert({});
Live page updates


✤   데이터 변경시, 소스 변경시 클라이언트에 즉각 반영

✤   Live HTML

✤   HTML Reactively (update automatically)

✤   Meteor.ui.render
Templating systems


✤   모든 HTML templating language 지원예정 (Handlebars, jade 등)

✤   현재는 Handlebars 만 지원 http://handlebarsjs.com/

✤   update in realtime

✤   <template> </template>
Meteor server inside a Node.js



✤   Node.Js (inside a Fiber)

✤   Server Code runs in a single thread per request

✤   NOT in the async callback (style typical of Node)
Server side JavaScript


✤   /app/server/ 에 있는 JavaScript

✤   OR

✤   if (Meteor.is_server) {
      //server code
    }
Client Side JavaScript


✤   /app/client/ 에 있는 JavaScript

✤   OR

✤   if (Meteor.is_client) {
      //client code
    }
Structure

✤   Node.js 컨테이너 기반 (서버는 Only JavaScript)

✤   일반적인 스레드방식 (요청당 스레드생성)을 사용(node-fibers on npm)

✤   Node.js 의 비동기 콜백방식을 사용하지 않음

✤   Server side JavaScript - server 디렉토리 또는 Meteor.is_server 변수

✤   Client side JavaScript - client 디렉토리 또는 Meteor.is_client 변수

✤   CSS - 일반적인 CSS 파일

✤   HTML - template 태그 사용 (HTML 템플릿언어 지원)
Reactivity


✤   Reactive Programming 방식

✤   어떠한 함수 안에 값을 가져오는 처리가 있고 이 값이 변경된 경우, 함수
    가 자동으로 재실행하고 변경된 값을 반영함.

✤   mongo DB 내 데이터 변경시 - 모든 클라이언트에 전송

✤   소스코드 변경시 - 모든 클라이언트에 전송 (Hot Code Pushes)
Smart Packages



✤   meteor add 또는 meteor remove 명령만으로 쉽고 간단하게
    패키지 추가 가능

✤   backbone, bootstrap, code-prettify, coffeeescript, jquery, less, sass,
    underscore, showdown ...
Quick Start - install

✤   설치 $ curl install.meteor.com | sh

✤   설치확인 $ meteor --version

✤   업데이트 $ meteor --update



✤   Meteor 설치되는 곳 /usr/local/meteor

✤   Meteor 커맨드 /usr/local/bin/meteor
Create Application




✤   프로젝트 생성 $ meteor create my_cool_app
LocalServer Start


✤   서버실행

✤   $ cd my_cool_app

✤   my_cool_app $ meteor

✤   Running on: http://localhost:3000/
Deploy



✤   배포 $ meteor deploy my_cool_app.meteor.com

✤   free & beta hosting (demo 의 한계)
Bundle

✤   *.meteor.com 공개형 무료호스팅 (테스트의 한계)

✤   운영시에는,

✤   $ meteor bundle my_cool_app.tar.gz

✤   $ meteor bundle my_cool_app.tgz

✤   Node.js 기반 어플리케이션 생성

✤   heroku (http://heroku.com/) 등 node.js 기반호스팅에 업로드가능
패키지 추가

✤   패키지추가하기 $ meteor add 패키지명

✤   커피스크립트 $ meteor add coffeescript
    coffeescript: Javascript dialect with fewer braces and semicolons

✤   LESS CSS $ meteor add less
    less: The dynamic stylesheet language.

✤   SASS $ meteor add sass
    sass: Sassy CSS pre-processor.
정리
✤   Meteor 는 “간편” 하고 “빠른 개발”을 지향하는 웹개발 플랫폼

✤   JavaScript 기반 클라이언트/서버 동일구조 (isomorphic) + minimongo lib

✤   Node.JS, HTML 템플릿엔진, MongoDB 내장

✤   Reactive Programming (코드, 데이터 변경시 모든 클라이언트에 적용)

    ✤   RealTime by WebSocket (SockJs 라이브러리)

    ✤   Reload 가 필요없음

✤   Hot Code Push

✤   설치, 생성, 배포 -> 각각 한번씩, 명령어 3개면 끝., 나머진 개발집중^^

✤   더 자세히는 .. http://docs.meteor.com
Meteor 의 한계


✤   낮은 버전

✤   안전성, 보안 문제 (Client 에서의 DB 접근. 훔. -_-;)

✤   Enterprise Web Application 개발사례 없음

✤   아직은 UNIX 계열 (Mac, Linux) 만 지원
그래도 앞으로는

✤   웹 개발의 트렌드가 될 것 같음

✤   RealTime, Live Web, Hot code push

✤   개발 환경 세팅에 대한 스트레스 없음

✤   쉽다.

✤   쉽게 설치하고, 쉽게 로컬서버 띄우고, 쉽게 배포하고, 쉽게 패키지 추가
    하고 ···!

✤   개발자들은 개발만 신경쓰면 됨.
www.meteor.com



✤   www.Meteor.com

✤   데모 시연 rkjun.meteor.com
Thank you



들어주셔서 감사합니다.

twitter ; @rkJun
blog ; http://rkjun.wordpress.com

HTML5JS STUDY : http://facebook.com/groups/html5jsstudy

Más contenido relacionado

La actualidad más candente

Node.js + Websocket 삽질기
Node.js + Websocket 삽질기Node.js + Websocket 삽질기
Node.js + Websocket 삽질기Paprikhan
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기Huey Park
 
Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Kim Hunmin
 
Leadweb Nodejs
Leadweb NodejsLeadweb Nodejs
Leadweb Nodejs근호 최
 
Mongo db intro &amp; tips
Mongo db intro &amp; tipsMongo db intro &amp; tips
Mongo db intro &amp; tipsInBum Kim
 
Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나JeongHun Byeon
 
Node.js
Node.jsNode.js
Node.jsymtech
 
React Native를 사용한
 초간단 커뮤니티 앱 제작
React Native를 사용한
 초간단 커뮤니티 앱 제작React Native를 사용한
 초간단 커뮤니티 앱 제작
React Native를 사용한
 초간단 커뮤니티 앱 제작Taegon Kim
 
Servlet&jsp 1장
Servlet&jsp 1장Servlet&jsp 1장
Servlet&jsp 1장JeongBong Kim
 
React 튜토리얼 2차시
React 튜토리얼 2차시React 튜토리얼 2차시
React 튜토리얼 2차시태현 김
 
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)DK Lee
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기JinKwon Lee
 
Python server-101
Python server-101Python server-101
Python server-101Huey Park
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Daum DNA
 
세션3 node.js의 의미와 자바의 대안
세션3 node.js의 의미와 자바의 대안세션3 node.js의 의미와 자바의 대안
세션3 node.js의 의미와 자바의 대안Lee Ji Eun
 
Node.js의 도입과 활용
Node.js의 도입과 활용Node.js의 도입과 활용
Node.js의 도입과 활용Jin wook
 
iOS App 개발 with React Native + ClojureScript
iOS App 개발 with React Native + ClojureScriptiOS App 개발 with React Native + ClojureScript
iOS App 개발 with React Native + ClojureScriptCheolhee Han
 
20131217 html5
20131217 html520131217 html5
20131217 html5DK Lee
 

La actualidad más candente (20)

Node.js + Websocket 삽질기
Node.js + Websocket 삽질기Node.js + Websocket 삽질기
Node.js + Websocket 삽질기
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기
 
역시 Redux
역시 Redux역시 Redux
역시 Redux
 
Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까?
 
Leadweb Nodejs
Leadweb NodejsLeadweb Nodejs
Leadweb Nodejs
 
Mongo db intro &amp; tips
Mongo db intro &amp; tipsMongo db intro &amp; tips
Mongo db intro &amp; tips
 
Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나
 
Node.js
Node.jsNode.js
Node.js
 
React Native를 사용한
 초간단 커뮤니티 앱 제작
React Native를 사용한
 초간단 커뮤니티 앱 제작React Native를 사용한
 초간단 커뮤니티 앱 제작
React Native를 사용한
 초간단 커뮤니티 앱 제작
 
Servlet&jsp 1장
Servlet&jsp 1장Servlet&jsp 1장
Servlet&jsp 1장
 
React 튜토리얼 2차시
React 튜토리얼 2차시React 튜토리얼 2차시
React 튜토리얼 2차시
 
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 
Python server-101
Python server-101Python server-101
Python server-101
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
 
세션3 node.js의 의미와 자바의 대안
세션3 node.js의 의미와 자바의 대안세션3 node.js의 의미와 자바의 대안
세션3 node.js의 의미와 자바의 대안
 
Node.js의 도입과 활용
Node.js의 도입과 활용Node.js의 도입과 활용
Node.js의 도입과 활용
 
iOS App 개발 with React Native + ClojureScript
iOS App 개발 with React Native + ClojureScriptiOS App 개발 with React Native + ClojureScript
iOS App 개발 with React Native + ClojureScript
 
Node.js 기본
Node.js 기본Node.js 기본
Node.js 기본
 
20131217 html5
20131217 html520131217 html5
20131217 html5
 

Similar a Meteor 0.3.6 Preview

빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.xTerry Cho
 
마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기Jaewoo Ahn
 
ReactJS로 시작하는 멀티플랫폼 개발하기
ReactJS로 시작하는 멀티플랫폼 개발하기ReactJS로 시작하는 멀티플랫폼 개발하기
ReactJS로 시작하는 멀티플랫폼 개발하기Taegon Kim
 
ParameterizedTest 와 ContextCaching.pptx
ParameterizedTest 와 ContextCaching.pptxParameterizedTest 와 ContextCaching.pptx
ParameterizedTest 와 ContextCaching.pptxjunu6
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyondJae Sung Park
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: YeomanJae Sung Park
 
CoreDot TechSeminar 2018 - Session2 Ji Donghyun
CoreDot TechSeminar 2018 - Session2 Ji DonghyunCoreDot TechSeminar 2018 - Session2 Ji Donghyun
CoreDot TechSeminar 2018 - Session2 Ji DonghyunCore.Today
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...JinKwon Lee
 
[DDD] 모바일 게임을 만들기 위한 AWS 고군분투기 (2019)
[DDD] 모바일 게임을 만들기 위한 AWS 고군분투기 (2019)[DDD] 모바일 게임을 만들기 위한 AWS 고군분투기 (2019)
[DDD] 모바일 게임을 만들기 위한 AWS 고군분투기 (2019)용호 최
 
Social Tutorial Platform: Webbles
Social Tutorial Platform: Webbles Social Tutorial Platform: Webbles
Social Tutorial Platform: Webbles Wonkyung Lyu
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기현철 조
 
Meetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsMeetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsminseok kim
 
SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기Lee Ji Eun
 
실전! AWS 기반 데이터베이스 마이그레이션::최홍식::AWS Summit Seoul 2018
실전! AWS 기반 데이터베이스 마이그레이션::최홍식::AWS Summit Seoul 2018실전! AWS 기반 데이터베이스 마이그레이션::최홍식::AWS Summit Seoul 2018
실전! AWS 기반 데이터베이스 마이그레이션::최홍식::AWS Summit Seoul 2018Amazon Web Services Korea
 
[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridappNAVER D2
 
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?Opennaru, inc.
 

Similar a Meteor 0.3.6 Preview (20)

빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x
 
마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기
 
ReactJS로 시작하는 멀티플랫폼 개발하기
ReactJS로 시작하는 멀티플랫폼 개발하기ReactJS로 시작하는 멀티플랫폼 개발하기
ReactJS로 시작하는 멀티플랫폼 개발하기
 
ParameterizedTest 와 ContextCaching.pptx
ParameterizedTest 와 ContextCaching.pptxParameterizedTest 와 ContextCaching.pptx
ParameterizedTest 와 ContextCaching.pptx
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyond
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
 
CoreDot TechSeminar 2018 - Session2 Ji Donghyun
CoreDot TechSeminar 2018 - Session2 Ji DonghyunCoreDot TechSeminar 2018 - Session2 Ji Donghyun
CoreDot TechSeminar 2018 - Session2 Ji Donghyun
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
 
4-3. jquery
4-3. jquery4-3. jquery
4-3. jquery
 
[DDD] 모바일 게임을 만들기 위한 AWS 고군분투기 (2019)
[DDD] 모바일 게임을 만들기 위한 AWS 고군분투기 (2019)[DDD] 모바일 게임을 만들기 위한 AWS 고군분투기 (2019)
[DDD] 모바일 게임을 만들기 위한 AWS 고군분투기 (2019)
 
What's new in IE11
What's new in IE11What's new in IE11
What's new in IE11
 
Social Tutorial Platform: Webbles
Social Tutorial Platform: Webbles Social Tutorial Platform: Webbles
Social Tutorial Platform: Webbles
 
2015 oce specification
2015 oce specification2015 oce specification
2015 oce specification
 
One ASP.NET
One ASP.NETOne ASP.NET
One ASP.NET
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
 
Meetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsMeetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vs
 
SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기
 
실전! AWS 기반 데이터베이스 마이그레이션::최홍식::AWS Summit Seoul 2018
실전! AWS 기반 데이터베이스 마이그레이션::최홍식::AWS Summit Seoul 2018실전! AWS 기반 데이터베이스 마이그레이션::최홍식::AWS Summit Seoul 2018
실전! AWS 기반 데이터베이스 마이그레이션::최홍식::AWS Summit Seoul 2018
 
[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp
 
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
 

Meteor 0.3.6 Preview

  • 2. about.me/rkJun ✤ Pa{rk, Jun}tai ✤ (닉네임 rkJun-알케이준) ✤ OKJSP Committer, Open Source Contributor ✤ Web Developer (Java) ✤ twitter @rkJun ✤ blog rkjun.wordpress.com
  • 3. Meteor.com/screencast ✤ Meteor 소개 동영상 (http://meteor.com/screencast) 보고 신기했음! ✤ 소스 코드 변경시, 모든클라이언트에 바로 반영! ✤ 클라이언트에서, 데이터베이스의 데이터 핸들링! ✤ DB 변경시, 모든 클라이언트에 바로 반영!
  • 4. Meteor is... ✤ A new way to build apps. ✤ Pure JavaScript. ✤ Live page updates. ✤ Clean, powerful data synchronization. ✤ Latency compensation. ✤ Hot Code Pushes. ✤ Sensitive code runs in a privileged environent. ✤ Fully self-contained application bundles. ✤ Interoperability. ✤ Smart Packages.
  • 5. “This is the web framework I always wanted.” - Garry Tan (Founder and designer, Posterous) from www.meteor.com
  • 6. “This is great! Definitely something the industry needs right now.” - Dustin Moskovitz (Co-founder, Asana; Co- founder, Facebook) from www.meteor.com
  • 7. JavaScript ✤ Pure JavaScript ✤ Server Side & Client Side => JavaScript ✤ Server Side & Client Side => All the Same APIs, include DB APIs ✤ JavaScript 기반 Web Application Framework
  • 8. Version ✤ 2012년 4월 preview 0.3.2 공개 (HTML5JS 오프모임 1회때) ✤ 2012년 5월 27일 현재 preview 0.3.6 ✤ 1년내 1.0 버전 공개 예정 ( 4명 Full-time 근무)
  • 9. License ✤ MIT License ✤ Open source Software ✤ 내맘대로 OK
  • 10. Data ✤ Meteor client 는 각각 서버 데이터에 대한 캐쉬(inMemory cache) 보유 ✤ 클라이언트 캐쉬는 서버 데이터와 동기가능 ✤ 클라이언트 캐쉬 데이터를 insert, remove, update 시 서버 적용 ✤ 반영된 데이터는, 물론 모든 다른 클라이언트에 적용됨 ✤ (서버에서 DB 처리 개발하고, WEB에서 호출하는 방식 필요없음) ✤ MongoDB API
  • 11. DataBase Access ✤ Client Side, Server Side ✤ MongoDB 기반 (Minimongo) ✤ table = new Meteor.Collection("table"); ✤ table.find(); ✤ table.update(key, {$set } ); ✤ table.remove(key); ✤ table.insert({});
  • 12. Live page updates ✤ 데이터 변경시, 소스 변경시 클라이언트에 즉각 반영 ✤ Live HTML ✤ HTML Reactively (update automatically) ✤ Meteor.ui.render
  • 13. Templating systems ✤ 모든 HTML templating language 지원예정 (Handlebars, jade 등) ✤ 현재는 Handlebars 만 지원 http://handlebarsjs.com/ ✤ update in realtime ✤ <template> </template>
  • 14. Meteor server inside a Node.js ✤ Node.Js (inside a Fiber) ✤ Server Code runs in a single thread per request ✤ NOT in the async callback (style typical of Node)
  • 15. Server side JavaScript ✤ /app/server/ 에 있는 JavaScript ✤ OR ✤ if (Meteor.is_server) { //server code }
  • 16. Client Side JavaScript ✤ /app/client/ 에 있는 JavaScript ✤ OR ✤ if (Meteor.is_client) { //client code }
  • 17. Structure ✤ Node.js 컨테이너 기반 (서버는 Only JavaScript) ✤ 일반적인 스레드방식 (요청당 스레드생성)을 사용(node-fibers on npm) ✤ Node.js 의 비동기 콜백방식을 사용하지 않음 ✤ Server side JavaScript - server 디렉토리 또는 Meteor.is_server 변수 ✤ Client side JavaScript - client 디렉토리 또는 Meteor.is_client 변수 ✤ CSS - 일반적인 CSS 파일 ✤ HTML - template 태그 사용 (HTML 템플릿언어 지원)
  • 18. Reactivity ✤ Reactive Programming 방식 ✤ 어떠한 함수 안에 값을 가져오는 처리가 있고 이 값이 변경된 경우, 함수 가 자동으로 재실행하고 변경된 값을 반영함. ✤ mongo DB 내 데이터 변경시 - 모든 클라이언트에 전송 ✤ 소스코드 변경시 - 모든 클라이언트에 전송 (Hot Code Pushes)
  • 19. Smart Packages ✤ meteor add 또는 meteor remove 명령만으로 쉽고 간단하게 패키지 추가 가능 ✤ backbone, bootstrap, code-prettify, coffeeescript, jquery, less, sass, underscore, showdown ...
  • 20. Quick Start - install ✤ 설치 $ curl install.meteor.com | sh ✤ 설치확인 $ meteor --version ✤ 업데이트 $ meteor --update ✤ Meteor 설치되는 곳 /usr/local/meteor ✤ Meteor 커맨드 /usr/local/bin/meteor
  • 21. Create Application ✤ 프로젝트 생성 $ meteor create my_cool_app
  • 22. LocalServer Start ✤ 서버실행 ✤ $ cd my_cool_app ✤ my_cool_app $ meteor ✤ Running on: http://localhost:3000/
  • 23. Deploy ✤ 배포 $ meteor deploy my_cool_app.meteor.com ✤ free & beta hosting (demo 의 한계)
  • 24. Bundle ✤ *.meteor.com 공개형 무료호스팅 (테스트의 한계) ✤ 운영시에는, ✤ $ meteor bundle my_cool_app.tar.gz ✤ $ meteor bundle my_cool_app.tgz ✤ Node.js 기반 어플리케이션 생성 ✤ heroku (http://heroku.com/) 등 node.js 기반호스팅에 업로드가능
  • 25. 패키지 추가 ✤ 패키지추가하기 $ meteor add 패키지명 ✤ 커피스크립트 $ meteor add coffeescript coffeescript: Javascript dialect with fewer braces and semicolons ✤ LESS CSS $ meteor add less less: The dynamic stylesheet language. ✤ SASS $ meteor add sass sass: Sassy CSS pre-processor.
  • 26. 정리 ✤ Meteor 는 “간편” 하고 “빠른 개발”을 지향하는 웹개발 플랫폼 ✤ JavaScript 기반 클라이언트/서버 동일구조 (isomorphic) + minimongo lib ✤ Node.JS, HTML 템플릿엔진, MongoDB 내장 ✤ Reactive Programming (코드, 데이터 변경시 모든 클라이언트에 적용) ✤ RealTime by WebSocket (SockJs 라이브러리) ✤ Reload 가 필요없음 ✤ Hot Code Push ✤ 설치, 생성, 배포 -> 각각 한번씩, 명령어 3개면 끝., 나머진 개발집중^^ ✤ 더 자세히는 .. http://docs.meteor.com
  • 27. Meteor 의 한계 ✤ 낮은 버전 ✤ 안전성, 보안 문제 (Client 에서의 DB 접근. 훔. -_-;) ✤ Enterprise Web Application 개발사례 없음 ✤ 아직은 UNIX 계열 (Mac, Linux) 만 지원
  • 28. 그래도 앞으로는 ✤ 웹 개발의 트렌드가 될 것 같음 ✤ RealTime, Live Web, Hot code push ✤ 개발 환경 세팅에 대한 스트레스 없음 ✤ 쉽다. ✤ 쉽게 설치하고, 쉽게 로컬서버 띄우고, 쉽게 배포하고, 쉽게 패키지 추가 하고 ···! ✤ 개발자들은 개발만 신경쓰면 됨.
  • 29. www.meteor.com ✤ www.Meteor.com ✤ 데모 시연 rkjun.meteor.com
  • 30. Thank you 들어주셔서 감사합니다. twitter ; @rkJun blog ; http://rkjun.wordpress.com HTML5JS STUDY : http://facebook.com/groups/html5jsstudy

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n