SlideShare una empresa de Scribd logo
1 de 67
Descargar para leer sin conexión
Node.js 
현재와 미래 
2014.10.17 
Outsider@www20kr 
https://www.flickr.com/photos/15216811@N06/6023029145
node.js 
! 
Ryan Dahl 
! 
JSConf.eu 2009 
Node.js의 미래를 예측하거나 하진 않습니다. 
Node.js를 개발하고 앞으로 공부하기 위해 
http://www.youtube.com/watch?v=EeYvFl7li9E 
도움이 될만한 현재 상태와 
앞으로 관심가져야 할 방향에 대한 얘기입니다
node.js 
! 
Ryan Dahl 
! 
JSConf.eu 2009 
http://www.youtube.com/watch?v=EeYvFl7li9E
node.js 
! 
Ryan Dahl 
! 
JSConf.eu 2009 
node.js가 나온지 5년 지났습니다 
http://www.youtube.com/watch?v=EeYvFl7li9E
stable unstable 
v0.10.x v0.11.x
stable unstable 
v0.10.x v0.11.x 
다음 버전은 0.12.x이고 
그 다음에 1.0 이 나올 예정입니다
stable unstable 
5년 동안 1.0이 안나왔으니 
버전은 상당히 보수적으로 
v0.10.x v0.11.x 
영하고 있습니다.
작년 여름에 Issac이 1.0에 대한 계획을 
발표했습니다
조만간 0.12를 발표하고 이어서 1.0을 
발표할 것이라는 계획이었습니다
1년이 지난 이 시점까지도 
0.12가 나오지 않았습니다.
node.js 개발이 늦어지는 
이유가 무엇일까요.
Ryan Dahl Isaac Z. Schlueter TJ Fontaine
node.js에는 2번의 리더 교체가 있었습니다. 
Issac이 올 초에 물러나고 TJ Fontaine가 
새 리더가 되었습니다. 
Ryan Dahl Isaac Z. Schlueter TJ Fontaine
node.js의 개발이 늦어지는 이유는 
리더와 코어 개발팀이 교체되었고 
그 뒤에 코어 개발자의 커밋이 줄어들었습니다 
Ryan Dahl Isaac Z. Schlueter TJ Fontaine
TJ Fontain은 
올해 Node.js on the road 라는 
이름으로 발표를 하며 
각 도시에서 커뮤니티를 만나고 있습니다
코어팀이 바뀌면서 
커뮤니티의 의견을 듣고 이를 Node.js개발에 
반영하려는 의도로 보입니다
Production 
Ready?
Ready? Production 
가장 많이 받는 질문은 
프로덕션에 쓸만한가 이지만 
정확한 답은 없습니다
Ready? Production 
프로젝트 규모나 성격에 따라 다르고 
1.0이 아닌 상황에서 윗사람을 설득하기 
어려운 부분은 있습니다
http://nodejs.org/industry/
http://nodejs.org/industry/ 
해외에서는 많은 회사에서 
node.js를 Production에서 
사용하고 있습니다
node.js의 미래는?
Go 
Language?
Go 
Language? 
TJ처럼 Go 언어로 가자는 이야기는 아닙니다
Network 
Program
Network 
Program 
node.js는 네트워크 프로그램을 위해 
만들었습니다
Network 
Program 
Tools
Network 
Program 
Tools 
node.js를 이용해서 사람들은 
도구를 만들기 시작했고 
JavaScript이므로 특히 프론트앤드 관련도구가 
많이 생겼습니다
Network 
Program 
Tools
Network 
Program 
Tools 
Desktop 
Application
Network 
Program 
Tools 
Desktop 
Application 
많은 시도가 있었지만 지금은 
데스크탑 어플리케이션도 만들고 있습니다
Network 
Program 
Tools 
node-webkit 
Desktop 
Application
Network 
Program 
Tools 
Desktop 
Application 
Robot 
node-webkit
Network 
Program 
Tools 
Desktop 
Application 
Robot 
node-webkit 
최근에는 로봇제어가 큰 이슈로 
관련 컨퍼런스도 많이 열리고 있습니다
Node.js 
v0.12.x
Node.js 
v0가장. 가1까운2 미래는.x 
0.12의 변경사항입니다.
- 클러스터링에 라운드로빈 로드밸런싱 도입 
- 한 프로세스 안에서 여러 인스턴스 실행 
- Node Inspector로 클러스터 앱의 디버깅 
- 성능 최적화(TLS, Crypto, …)
- 클러스터링에 라운드로빈 로드밸런싱 도입 
- 한 프로세스 안에서 여러 인스턴스 실행 
- Node Inspector로 클러스터 앱의 디버깅 
성능 개성 및 기능 강화가 주 내용으로 
커다란 기능의 추가는 없습니다 
- 성능 최적화(TLS, Crypto, …) 
v1.0에서도 API는 확정후에 개선을 위주로 개발할 
것이라고 발표했습니다.
ES6 
Harmony
ES6 
Node.js 개발에 차후 크게 신경써야 할 
Harmony 
부분 중 하나가 ES6 라고 생각합니다 
브라우저는 크로스 브라우징 문제로 최신 기능을 
쓰기 어렵지만 Node.js에서는 바로 사용할 수 있다
$ node --harmony
$ node --harmony 
ES6기능을 사용하려면 옵션을 주어야 한다
Block Scope 
if (true){ 
let name = ‘www20’; 
console.log(name); // www20 
} 
! 
console.log(name); 
// ReferenceError: name is not defined
Collection 
var map1 = new Map(); 
! 
map1.set('name', 'www20kr'); 
map1.set('date', new Date(‘2014-10-17')); 
! 
map1.get('name'); 
// ‘www20kr’ 
map1.get('date'); 
// Fri Oct 17 2014 09:00:00 GMT+0900 (KST)
Collection 
var map1 = new Map(); 
! 
var obj = {name: ‘www20kr’); 
map1.set(obj, 'Congrat'); 
! 
map1.get(obj); 
// ‘Congrat’
Collection 
var set1 = new Set(); 
! 
set1.add(1); 
set1.add(2); 
set1.add(2); 
! 
set.size; // 2 
set1.has(2); // true
Arrow Functions(Lambdas) 
var t = (x) => x * x; 
! 
t(4) // 16 
t(8) // 64
Arrow Functions(Lambdas) 
db.find(id, function(err, data) { 
return data; 
}); 
! 
! 
// es6 
db.find(id, (err, data) => data);
Callback Hell
var doSomething = function(callback) { 
somethingAsync(function(err, data) { 
somethingAsync(function(err, data) { 
somethingAsync(function(err, data) { 
somethingAsync(function(err, data) { 
callback(err, data); 
}); 
}); 
}); 
}); 
};
Promise 
q, bluebird
Promise 
Promise도 ES6에 포함되어 있습니다 
현재 callback hell을 해결하는 접근으로 
q, bluebird 
많이 사용하고 있습니다
var fs = require(‘fs’); 
var Q = require(‘q’); 
! 
var readFile = function(file) { 
var deferred = Q.defer(); 
fs.readFile(file, function(err, data) { 
if (err) { return deferred.reject(err); 
deferred.resolve(data); 
}); 
return deferred.promise; 
}; 
! 
readFile(‘/path/to/file’) 
.then(function(data) { … }) 
.catch(function(err) { … });
var fs = require(‘fs’); 
var Q = require(‘q’); 
! 
var readFile = Q.denodeify(fs.readFile); 
! 
readFile(‘/path/to/file’) 
.then(function(data) { … }) 
.catch(function(err) { … });
Generator
Generator 현재는 시작단계이지만 최종적으로는 
제너레이터로 갈꺼라고 생각하고 있습니다 
물론 정착되기까지는 꽤 시간이 걸릴겁니다
function*
function* inc() { 
for (var i = 0; i < 5; i++) { 
yield i; 
} 
}
> var index = inc();
> var index = increase(); 
> index.next(); 
{ value: 0, done: false }
> var index = increase(); 
> index.next(); 
{ value: 0, done: false } 
> index.next(); 
{ value: 1, done: false }
> var index = increase(); 
> index.next(); 
{ value: 0, done: false } 
> index.next(); 
{ value: 1, done: false } 
> index.next(); 
{ value: 2, done: false }
> var index = increase(); 
> index.next(); 
{ value: 0, done: false } 
> index.next(); 
{ value: 1, done: false } 
> index.next(); 
{ value: 2, done: false } 
> index.next(); 
{ value: 3, done: false }
> var index = increase(); 
> index.next(); 
{ value: 0, done: false } 
> index.next(); 
{ value: 1, done: false } 
> index.next(); 
{ value: 2, done: false } 
> index.next(); 
{ value: 3, done: false } 
> index.next(); 
{ value: 4, done: false } 
> index.next(); 
{ value: undefined, done: true }
Thank you. 
outsideris@gmail.com 
Twitter: @outsideris

Más contenido relacionado

La actualidad más candente

세션3 node.js의 의미와 자바의 대안
세션3 node.js의 의미와 자바의 대안세션3 node.js의 의미와 자바의 대안
세션3 node.js의 의미와 자바의 대안Lee Ji Eun
 
Nodejs 발표자료
Nodejs 발표자료Nodejs 발표자료
Nodejs 발표자료shanka2
 
Node.js 자바스크립트로 서버사이드 개발하기
Node.js 자바스크립트로 서버사이드 개발하기Node.js 자바스크립트로 서버사이드 개발하기
Node.js 자바스크립트로 서버사이드 개발하기JeongHun Byeon
 
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드Jeongsang Baek
 
[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...
[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...
[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...Dennis Kim
 
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스Dan Kang (강동한)
 
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기John Kim
 
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015Goonoo Kim
 
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기XpressEngine
 
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안Jeongsang Baek
 
아꿈사 발표 Node JS 프로그래밍 8장
아꿈사 발표 Node JS 프로그래밍 8장아꿈사 발표 Node JS 프로그래밍 8장
아꿈사 발표 Node JS 프로그래밍 8장Woo Yeong Choi
 
Rhea mmo node_for_share
Rhea mmo node_for_shareRhea mmo node_for_share
Rhea mmo node_for_shareRhea Strike
 
Nodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjsNodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjs기동 이
 
[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임sung ki choi
 
Beejei node.js & web service
Beejei   node.js & web serviceBeejei   node.js & web service
Beejei node.js & web serviceBumjin Kim
 
Node.js 팀 스터디 발표자료.
Node.js 팀 스터디 발표자료.Node.js 팀 스터디 발표자료.
Node.js 팀 스터디 발표자료.SeungWoo Lee
 
Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초Circulus
 

La actualidad más candente (20)

Node.js at OKJSP
Node.js at OKJSPNode.js at OKJSP
Node.js at OKJSP
 
세션3 node.js의 의미와 자바의 대안
세션3 node.js의 의미와 자바의 대안세션3 node.js의 의미와 자바의 대안
세션3 node.js의 의미와 자바의 대안
 
Nodejs 발표자료
Nodejs 발표자료Nodejs 발표자료
Nodejs 발표자료
 
Node.js 자바스크립트로 서버사이드 개발하기
Node.js 자바스크립트로 서버사이드 개발하기Node.js 자바스크립트로 서버사이드 개발하기
Node.js 자바스크립트로 서버사이드 개발하기
 
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
 
Node.js in Flitto
Node.js in FlittoNode.js in Flitto
Node.js in Flitto
 
[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...
[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...
[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...
 
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
 
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
 
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
 
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
 
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
 
아꿈사 발표 Node JS 프로그래밍 8장
아꿈사 발표 Node JS 프로그래밍 8장아꿈사 발표 Node JS 프로그래밍 8장
아꿈사 발표 Node JS 프로그래밍 8장
 
Rhea mmo node_for_share
Rhea mmo node_for_shareRhea mmo node_for_share
Rhea mmo node_for_share
 
Nodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjsNodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjs
 
[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임
 
Node.js 기본
Node.js 기본Node.js 기본
Node.js 기본
 
Beejei node.js & web service
Beejei   node.js & web serviceBeejei   node.js & web service
Beejei node.js & web service
 
Node.js 팀 스터디 발표자료.
Node.js 팀 스터디 발표자료.Node.js 팀 스터디 발표자료.
Node.js 팀 스터디 발표자료.
 
Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초
 

Destacado

진짜기초 Node.js
진짜기초 Node.js진짜기초 Node.js
진짜기초 Node.jsWoo Jin Kim
 
Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구ByungJoon Lee
 
Java/Spring과 Node.js의공존
Java/Spring과 Node.js의공존Java/Spring과 Node.js의공존
Java/Spring과 Node.js의공존동수 장
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기JinKwon Lee
 
Node.js для начинающих
Node.js для начинающихNode.js для начинающих
Node.js для начинающихAlexey Simonenko
 
Node mcu 셋업하기
Node mcu 셋업하기Node mcu 셋업하기
Node mcu 셋업하기Kyuho Kim
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In ProductionMooYeol Lee
 
Webkit overview
Webkit overviewWebkit overview
Webkit overviewEun Cho
 
2011 12-04-뽀모도로-집중하기-v1
2011 12-04-뽀모도로-집중하기-v12011 12-04-뽀모도로-집중하기-v1
2011 12-04-뽀모도로-집중하기-v1Nomota Hiongun KIM
 
BigData, Hadoop과 Node.js, R2
BigData, Hadoop과 Node.js, R2BigData, Hadoop과 Node.js, R2
BigData, Hadoop과 Node.js, R2고포릿 default
 
DGMIT 제3회 R&D 컨퍼런스 1TEAM : NODE.JS
DGMIT 제3회 R&D 컨퍼런스 1TEAM : NODE.JSDGMIT 제3회 R&D 컨퍼런스 1TEAM : NODE.JS
DGMIT 제3회 R&D 컨퍼런스 1TEAM : NODE.JSdgmit2009
 
I know - Chrome and Plugin
I know - Chrome and PluginI know - Chrome and Plugin
I know - Chrome and PluginTaewoo Kim
 
부동산 텔레그램봇 사내공유 @Tech
부동산 텔레그램봇 사내공유 @Tech부동산 텔레그램봇 사내공유 @Tech
부동산 텔레그램봇 사내공유 @TechHoChul Shin
 
IoT with Raspberry Pi + Node JS - Chapter 3
IoT with Raspberry Pi + Node JS - Chapter 3IoT with Raspberry Pi + Node JS - Chapter 3
IoT with Raspberry Pi + Node JS - Chapter 3Park Jonggun
 
노드js 기초
노드js 기초 노드js 기초
노드js 기초 경륜 이
 
웹 애플리케이션 프레임웍의 과거,현재 그리고 미래 - 봄날은 간다
웹 애플리케이션 프레임웍의 과거,현재 그리고 미래 - 봄날은 간다웹 애플리케이션 프레임웍의 과거,현재 그리고 미래 - 봄날은 간다
웹 애플리케이션 프레임웍의 과거,현재 그리고 미래 - 봄날은 간다동수 장
 
track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ...
track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ...track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ...
track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ...양 한빛
 

Destacado (20)

진짜기초 Node.js
진짜기초 Node.js진짜기초 Node.js
진짜기초 Node.js
 
Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구
 
Java/Spring과 Node.js의공존
Java/Spring과 Node.js의공존Java/Spring과 Node.js의공존
Java/Spring과 Node.js의공존
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 
Node.js для начинающих
Node.js для начинающихNode.js для начинающих
Node.js для начинающих
 
Java8 람다
Java8 람다Java8 람다
Java8 람다
 
Node mcu 셋업하기
Node mcu 셋업하기Node mcu 셋업하기
Node mcu 셋업하기
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In Production
 
Webkit overview
Webkit overviewWebkit overview
Webkit overview
 
함수형 사고
함수형 사고함수형 사고
함수형 사고
 
2011 12-04-뽀모도로-집중하기-v1
2011 12-04-뽀모도로-집중하기-v12011 12-04-뽀모도로-집중하기-v1
2011 12-04-뽀모도로-집중하기-v1
 
BigData, Hadoop과 Node.js, R2
BigData, Hadoop과 Node.js, R2BigData, Hadoop과 Node.js, R2
BigData, Hadoop과 Node.js, R2
 
DGMIT 제3회 R&D 컨퍼런스 1TEAM : NODE.JS
DGMIT 제3회 R&D 컨퍼런스 1TEAM : NODE.JSDGMIT 제3회 R&D 컨퍼런스 1TEAM : NODE.JS
DGMIT 제3회 R&D 컨퍼런스 1TEAM : NODE.JS
 
I know - Chrome and Plugin
I know - Chrome and PluginI know - Chrome and Plugin
I know - Chrome and Plugin
 
Node.js intro
Node.js introNode.js intro
Node.js intro
 
부동산 텔레그램봇 사내공유 @Tech
부동산 텔레그램봇 사내공유 @Tech부동산 텔레그램봇 사내공유 @Tech
부동산 텔레그램봇 사내공유 @Tech
 
IoT with Raspberry Pi + Node JS - Chapter 3
IoT with Raspberry Pi + Node JS - Chapter 3IoT with Raspberry Pi + Node JS - Chapter 3
IoT with Raspberry Pi + Node JS - Chapter 3
 
노드js 기초
노드js 기초 노드js 기초
노드js 기초
 
웹 애플리케이션 프레임웍의 과거,현재 그리고 미래 - 봄날은 간다
웹 애플리케이션 프레임웍의 과거,현재 그리고 미래 - 봄날은 간다웹 애플리케이션 프레임웍의 과거,현재 그리고 미래 - 봄날은 간다
웹 애플리케이션 프레임웍의 과거,현재 그리고 미래 - 봄날은 간다
 
track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ...
track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ...track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ...
track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ...
 

Similar a Node.js 현재와 미래

[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기현철 조
 
Mean 스택을 사용한 IoT 개발
Mean 스택을 사용한 IoT 개발Mean 스택을 사용한 IoT 개발
Mean 스택을 사용한 IoT 개발Jay Park
 
Development AR App with C++ and Windows Holographic API
Development AR App with C++ and Windows Holographic APIDevelopment AR App with C++ and Windows Holographic API
Development AR App with C++ and Windows Holographic APIYEONG-CHEON YOU
 
응답하라 반응형웹 - 4. angular
응답하라 반응형웹 - 4. angular응답하라 반응형웹 - 4. angular
응답하라 반응형웹 - 4. angularredribbon1307
 
캠프앱 개발 사례를 통해 본 하이브리드앱 어디까지 | Devon 2012
캠프앱 개발 사례를 통해 본 하이브리드앱 어디까지 | Devon 2012캠프앱 개발 사례를 통해 본 하이브리드앱 어디까지 | Devon 2012
캠프앱 개발 사례를 통해 본 하이브리드앱 어디까지 | Devon 2012Daum DNA
 
Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나JeongHun Byeon
 
Introduce Yeoman
Introduce YeomanIntroduce Yeoman
Introduce Yeoman항희 이
 
ARTIK 710 IoT class 02
ARTIK 710 IoT class 02ARTIK 710 IoT class 02
ARTIK 710 IoT class 02정출 김
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rdPark Jonggun
 
Node.js and react
Node.js and reactNode.js and react
Node.js and reactHyungKuIm
 
Let's play yoga with ARCore by Eunsil Jo
Let's play yoga with ARCore by Eunsil JoLet's play yoga with ARCore by Eunsil Jo
Let's play yoga with ARCore by Eunsil JoEunsil Jo
 
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js [W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js 양재동 코드랩
 
예제를 통해 쉽게_살펴보는_뷰제이에스
예제를 통해 쉽게_살펴보는_뷰제이에스예제를 통해 쉽게_살펴보는_뷰제이에스
예제를 통해 쉽게_살펴보는_뷰제이에스Dexter Jung
 
다음 통합검색 로딩 속도 개선 삽질기
다음 통합검색 로딩 속도 개선 삽질기다음 통합검색 로딩 속도 개선 삽질기
다음 통합검색 로딩 속도 개선 삽질기정윤 김
 
개발자의 컴퓨터
개발자의 컴퓨터개발자의 컴퓨터
개발자의 컴퓨터jaehyok Song
 
안드로이드 오픈소스 어플리케이션 블록
안드로이드 오픈소스 어플리케이션 블록안드로이드 오픈소스 어플리케이션 블록
안드로이드 오픈소스 어플리케이션 블록YoungSu Son
 
[115] clean fe development_윤지수
[115] clean fe development_윤지수[115] clean fe development_윤지수
[115] clean fe development_윤지수NAVER D2
 
Spark 소개 2부
Spark 소개 2부Spark 소개 2부
Spark 소개 2부Jinho Yoo
 
Node js[stg]onimusha 20140822
Node js[stg]onimusha 20140822Node js[stg]onimusha 20140822
Node js[stg]onimusha 20140822병헌 정
 

Similar a Node.js 현재와 미래 (20)

[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
 
Mean 스택을 사용한 IoT 개발
Mean 스택을 사용한 IoT 개발Mean 스택을 사용한 IoT 개발
Mean 스택을 사용한 IoT 개발
 
Development AR App with C++ and Windows Holographic API
Development AR App with C++ and Windows Holographic APIDevelopment AR App with C++ and Windows Holographic API
Development AR App with C++ and Windows Holographic API
 
응답하라 반응형웹 - 4. angular
응답하라 반응형웹 - 4. angular응답하라 반응형웹 - 4. angular
응답하라 반응형웹 - 4. angular
 
캠프앱 개발 사례를 통해 본 하이브리드앱 어디까지 | Devon 2012
캠프앱 개발 사례를 통해 본 하이브리드앱 어디까지 | Devon 2012캠프앱 개발 사례를 통해 본 하이브리드앱 어디까지 | Devon 2012
캠프앱 개발 사례를 통해 본 하이브리드앱 어디까지 | Devon 2012
 
Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나
 
Introduce Yeoman
Introduce YeomanIntroduce Yeoman
Introduce Yeoman
 
ARTIK 710 IoT class 02
ARTIK 710 IoT class 02ARTIK 710 IoT class 02
ARTIK 710 IoT class 02
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd
 
Node.js and react
Node.js and reactNode.js and react
Node.js and react
 
Let's play yoga with ARCore by Eunsil Jo
Let's play yoga with ARCore by Eunsil JoLet's play yoga with ARCore by Eunsil Jo
Let's play yoga with ARCore by Eunsil Jo
 
Mongo db 최범균
Mongo db 최범균Mongo db 최범균
Mongo db 최범균
 
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js [W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js
 
예제를 통해 쉽게_살펴보는_뷰제이에스
예제를 통해 쉽게_살펴보는_뷰제이에스예제를 통해 쉽게_살펴보는_뷰제이에스
예제를 통해 쉽게_살펴보는_뷰제이에스
 
다음 통합검색 로딩 속도 개선 삽질기
다음 통합검색 로딩 속도 개선 삽질기다음 통합검색 로딩 속도 개선 삽질기
다음 통합검색 로딩 속도 개선 삽질기
 
개발자의 컴퓨터
개발자의 컴퓨터개발자의 컴퓨터
개발자의 컴퓨터
 
안드로이드 오픈소스 어플리케이션 블록
안드로이드 오픈소스 어플리케이션 블록안드로이드 오픈소스 어플리케이션 블록
안드로이드 오픈소스 어플리케이션 블록
 
[115] clean fe development_윤지수
[115] clean fe development_윤지수[115] clean fe development_윤지수
[115] clean fe development_윤지수
 
Spark 소개 2부
Spark 소개 2부Spark 소개 2부
Spark 소개 2부
 
Node js[stg]onimusha 20140822
Node js[stg]onimusha 20140822Node js[stg]onimusha 20140822
Node js[stg]onimusha 20140822
 

Más de JeongHun Byeon

당근 개발자 플랫폼은 어떤 문제를 해결하고 있는가?
당근 개발자 플랫폼은 어떤 문제를 해결하고 있는가?당근 개발자 플랫폼은 어떤 문제를 해결하고 있는가?
당근 개발자 플랫폼은 어떤 문제를 해결하고 있는가?JeongHun Byeon
 
오픈소스에 기여할 때 알면 좋을 개발 프로세스
오픈소스에 기여할 때 알면 좋을 개발 프로세스오픈소스에 기여할 때 알면 좋을 개발 프로세스
오픈소스에 기여할 때 알면 좋을 개발 프로세스JeongHun Byeon
 
DevOps를 가속화하는 플랫폼 엔지니어링
DevOps를 가속화하는 플랫폼 엔지니어링DevOps를 가속화하는 플랫폼 엔지니어링
DevOps를 가속화하는 플랫폼 엔지니어링JeongHun Byeon
 
클라우드 시대에 맞는 사이트 신뢰성 엔지니어
클라우드 시대에 맞는 사이트 신뢰성 엔지니어클라우드 시대에 맞는 사이트 신뢰성 엔지니어
클라우드 시대에 맞는 사이트 신뢰성 엔지니어JeongHun Byeon
 
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요 디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요 JeongHun Byeon
 
오픈소스 뒤에 메인테이너 있어요
오픈소스 뒤에 메인테이너 있어요오픈소스 뒤에 메인테이너 있어요
오픈소스 뒤에 메인테이너 있어요JeongHun Byeon
 
오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일
오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일
오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일JeongHun Byeon
 
Lessons from maintaining Mocha, an open source project
Lessons from maintaining Mocha, an open source projectLessons from maintaining Mocha, an open source project
Lessons from maintaining Mocha, an open source projectJeongHun Byeon
 
개발 관련 기술 블로그 운영하기
개발 관련 기술 블로그 운영하기개발 관련 기술 블로그 운영하기
개발 관련 기술 블로그 운영하기JeongHun Byeon
 
Terraform을 이용한 Infrastructure as Code 실전 구성하기
Terraform을 이용한 Infrastructure as Code 실전 구성하기Terraform을 이용한 Infrastructure as Code 실전 구성하기
Terraform을 이용한 Infrastructure as Code 실전 구성하기JeongHun Byeon
 
오픈소스 생태계 일원으로서의 개발자(자막 버전)
오픈소스 생태계 일원으로서의 개발자(자막 버전)오픈소스 생태계 일원으로서의 개발자(자막 버전)
오픈소스 생태계 일원으로서의 개발자(자막 버전)JeongHun Byeon
 
오픈소스 생태계 일원으로서의 개발자
오픈소스 생태계 일원으로서의 개발자오픈소스 생태계 일원으로서의 개발자
오픈소스 생태계 일원으로서의 개발자JeongHun Byeon
 
Node.js API 서버 성능 개선기
Node.js API 서버 성능 개선기Node.js API 서버 성능 개선기
Node.js API 서버 성능 개선기JeongHun Byeon
 
더 나은 개발자 되기
더 나은 개발자 되기더 나은 개발자 되기
더 나은 개발자 되기JeongHun Byeon
 
블로그 주도 개발
블로그 주도 개발블로그 주도 개발
블로그 주도 개발JeongHun Byeon
 
Nodejs Production 적용기
Nodejs Production 적용기Nodejs Production 적용기
Nodejs Production 적용기JeongHun Byeon
 
Sublime Text tips & trikcs
Sublime Text tips & trikcsSublime Text tips & trikcs
Sublime Text tips & trikcsJeongHun Byeon
 
Popular Convention 개발기
Popular Convention 개발기Popular Convention 개발기
Popular Convention 개발기JeongHun Byeon
 
Spring Scala : 스프링이 스칼라를 만났을 때
Spring Scala : 스프링이 스칼라를 만났을 때Spring Scala : 스프링이 스칼라를 만났을 때
Spring Scala : 스프링이 스칼라를 만났을 때JeongHun Byeon
 

Más de JeongHun Byeon (20)

당근 개발자 플랫폼은 어떤 문제를 해결하고 있는가?
당근 개발자 플랫폼은 어떤 문제를 해결하고 있는가?당근 개발자 플랫폼은 어떤 문제를 해결하고 있는가?
당근 개발자 플랫폼은 어떤 문제를 해결하고 있는가?
 
오픈소스에 기여할 때 알면 좋을 개발 프로세스
오픈소스에 기여할 때 알면 좋을 개발 프로세스오픈소스에 기여할 때 알면 좋을 개발 프로세스
오픈소스에 기여할 때 알면 좋을 개발 프로세스
 
DevOps를 가속화하는 플랫폼 엔지니어링
DevOps를 가속화하는 플랫폼 엔지니어링DevOps를 가속화하는 플랫폼 엔지니어링
DevOps를 가속화하는 플랫폼 엔지니어링
 
클라우드 시대에 맞는 사이트 신뢰성 엔지니어
클라우드 시대에 맞는 사이트 신뢰성 엔지니어클라우드 시대에 맞는 사이트 신뢰성 엔지니어
클라우드 시대에 맞는 사이트 신뢰성 엔지니어
 
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요 디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요
 
Citizen 개발기
Citizen 개발기Citizen 개발기
Citizen 개발기
 
오픈소스 뒤에 메인테이너 있어요
오픈소스 뒤에 메인테이너 있어요오픈소스 뒤에 메인테이너 있어요
오픈소스 뒤에 메인테이너 있어요
 
오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일
오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일
오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일
 
Lessons from maintaining Mocha, an open source project
Lessons from maintaining Mocha, an open source projectLessons from maintaining Mocha, an open source project
Lessons from maintaining Mocha, an open source project
 
개발 관련 기술 블로그 운영하기
개발 관련 기술 블로그 운영하기개발 관련 기술 블로그 운영하기
개발 관련 기술 블로그 운영하기
 
Terraform을 이용한 Infrastructure as Code 실전 구성하기
Terraform을 이용한 Infrastructure as Code 실전 구성하기Terraform을 이용한 Infrastructure as Code 실전 구성하기
Terraform을 이용한 Infrastructure as Code 실전 구성하기
 
오픈소스 생태계 일원으로서의 개발자(자막 버전)
오픈소스 생태계 일원으로서의 개발자(자막 버전)오픈소스 생태계 일원으로서의 개발자(자막 버전)
오픈소스 생태계 일원으로서의 개발자(자막 버전)
 
오픈소스 생태계 일원으로서의 개발자
오픈소스 생태계 일원으로서의 개발자오픈소스 생태계 일원으로서의 개발자
오픈소스 생태계 일원으로서의 개발자
 
Node.js API 서버 성능 개선기
Node.js API 서버 성능 개선기Node.js API 서버 성능 개선기
Node.js API 서버 성능 개선기
 
더 나은 개발자 되기
더 나은 개발자 되기더 나은 개발자 되기
더 나은 개발자 되기
 
블로그 주도 개발
블로그 주도 개발블로그 주도 개발
블로그 주도 개발
 
Nodejs Production 적용기
Nodejs Production 적용기Nodejs Production 적용기
Nodejs Production 적용기
 
Sublime Text tips & trikcs
Sublime Text tips & trikcsSublime Text tips & trikcs
Sublime Text tips & trikcs
 
Popular Convention 개발기
Popular Convention 개발기Popular Convention 개발기
Popular Convention 개발기
 
Spring Scala : 스프링이 스칼라를 만났을 때
Spring Scala : 스프링이 스칼라를 만났을 때Spring Scala : 스프링이 스칼라를 만났을 때
Spring Scala : 스프링이 스칼라를 만났을 때
 

Último

A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 

Último (6)

A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 

Node.js 현재와 미래

  • 1. Node.js 현재와 미래 2014.10.17 Outsider@www20kr https://www.flickr.com/photos/15216811@N06/6023029145
  • 2. node.js ! Ryan Dahl ! JSConf.eu 2009 Node.js의 미래를 예측하거나 하진 않습니다. Node.js를 개발하고 앞으로 공부하기 위해 http://www.youtube.com/watch?v=EeYvFl7li9E 도움이 될만한 현재 상태와 앞으로 관심가져야 할 방향에 대한 얘기입니다
  • 3. node.js ! Ryan Dahl ! JSConf.eu 2009 http://www.youtube.com/watch?v=EeYvFl7li9E
  • 4. node.js ! Ryan Dahl ! JSConf.eu 2009 node.js가 나온지 5년 지났습니다 http://www.youtube.com/watch?v=EeYvFl7li9E
  • 6. stable unstable v0.10.x v0.11.x 다음 버전은 0.12.x이고 그 다음에 1.0 이 나올 예정입니다
  • 7. stable unstable 5년 동안 1.0이 안나왔으니 버전은 상당히 보수적으로 v0.10.x v0.11.x 영하고 있습니다.
  • 8.
  • 9. 작년 여름에 Issac이 1.0에 대한 계획을 발표했습니다
  • 10. 조만간 0.12를 발표하고 이어서 1.0을 발표할 것이라는 계획이었습니다
  • 11. 1년이 지난 이 시점까지도 0.12가 나오지 않았습니다.
  • 12. node.js 개발이 늦어지는 이유가 무엇일까요.
  • 13. Ryan Dahl Isaac Z. Schlueter TJ Fontaine
  • 14. node.js에는 2번의 리더 교체가 있었습니다. Issac이 올 초에 물러나고 TJ Fontaine가 새 리더가 되었습니다. Ryan Dahl Isaac Z. Schlueter TJ Fontaine
  • 15. node.js의 개발이 늦어지는 이유는 리더와 코어 개발팀이 교체되었고 그 뒤에 코어 개발자의 커밋이 줄어들었습니다 Ryan Dahl Isaac Z. Schlueter TJ Fontaine
  • 16.
  • 17. TJ Fontain은 올해 Node.js on the road 라는 이름으로 발표를 하며 각 도시에서 커뮤니티를 만나고 있습니다
  • 18. 코어팀이 바뀌면서 커뮤니티의 의견을 듣고 이를 Node.js개발에 반영하려는 의도로 보입니다
  • 20. Ready? Production 가장 많이 받는 질문은 프로덕션에 쓸만한가 이지만 정확한 답은 없습니다
  • 21. Ready? Production 프로젝트 규모나 성격에 따라 다르고 1.0이 아닌 상황에서 윗사람을 설득하기 어려운 부분은 있습니다
  • 23. http://nodejs.org/industry/ 해외에서는 많은 회사에서 node.js를 Production에서 사용하고 있습니다
  • 26. Go Language? TJ처럼 Go 언어로 가자는 이야기는 아닙니다
  • 28. Network Program node.js는 네트워크 프로그램을 위해 만들었습니다
  • 30. Network Program Tools node.js를 이용해서 사람들은 도구를 만들기 시작했고 JavaScript이므로 특히 프론트앤드 관련도구가 많이 생겼습니다
  • 32. Network Program Tools Desktop Application
  • 33. Network Program Tools Desktop Application 많은 시도가 있었지만 지금은 데스크탑 어플리케이션도 만들고 있습니다
  • 34. Network Program Tools node-webkit Desktop Application
  • 35. Network Program Tools Desktop Application Robot node-webkit
  • 36. Network Program Tools Desktop Application Robot node-webkit 최근에는 로봇제어가 큰 이슈로 관련 컨퍼런스도 많이 열리고 있습니다
  • 38. Node.js v0가장. 가1까운2 미래는.x 0.12의 변경사항입니다.
  • 39. - 클러스터링에 라운드로빈 로드밸런싱 도입 - 한 프로세스 안에서 여러 인스턴스 실행 - Node Inspector로 클러스터 앱의 디버깅 - 성능 최적화(TLS, Crypto, …)
  • 40. - 클러스터링에 라운드로빈 로드밸런싱 도입 - 한 프로세스 안에서 여러 인스턴스 실행 - Node Inspector로 클러스터 앱의 디버깅 성능 개성 및 기능 강화가 주 내용으로 커다란 기능의 추가는 없습니다 - 성능 최적화(TLS, Crypto, …) v1.0에서도 API는 확정후에 개선을 위주로 개발할 것이라고 발표했습니다.
  • 42. ES6 Node.js 개발에 차후 크게 신경써야 할 Harmony 부분 중 하나가 ES6 라고 생각합니다 브라우저는 크로스 브라우징 문제로 최신 기능을 쓰기 어렵지만 Node.js에서는 바로 사용할 수 있다
  • 44. $ node --harmony ES6기능을 사용하려면 옵션을 주어야 한다
  • 45. Block Scope if (true){ let name = ‘www20’; console.log(name); // www20 } ! console.log(name); // ReferenceError: name is not defined
  • 46. Collection var map1 = new Map(); ! map1.set('name', 'www20kr'); map1.set('date', new Date(‘2014-10-17')); ! map1.get('name'); // ‘www20kr’ map1.get('date'); // Fri Oct 17 2014 09:00:00 GMT+0900 (KST)
  • 47. Collection var map1 = new Map(); ! var obj = {name: ‘www20kr’); map1.set(obj, 'Congrat'); ! map1.get(obj); // ‘Congrat’
  • 48. Collection var set1 = new Set(); ! set1.add(1); set1.add(2); set1.add(2); ! set.size; // 2 set1.has(2); // true
  • 49. Arrow Functions(Lambdas) var t = (x) => x * x; ! t(4) // 16 t(8) // 64
  • 50. Arrow Functions(Lambdas) db.find(id, function(err, data) { return data; }); ! ! // es6 db.find(id, (err, data) => data);
  • 52. var doSomething = function(callback) { somethingAsync(function(err, data) { somethingAsync(function(err, data) { somethingAsync(function(err, data) { somethingAsync(function(err, data) { callback(err, data); }); }); }); }); };
  • 54. Promise Promise도 ES6에 포함되어 있습니다 현재 callback hell을 해결하는 접근으로 q, bluebird 많이 사용하고 있습니다
  • 55. var fs = require(‘fs’); var Q = require(‘q’); ! var readFile = function(file) { var deferred = Q.defer(); fs.readFile(file, function(err, data) { if (err) { return deferred.reject(err); deferred.resolve(data); }); return deferred.promise; }; ! readFile(‘/path/to/file’) .then(function(data) { … }) .catch(function(err) { … });
  • 56. var fs = require(‘fs’); var Q = require(‘q’); ! var readFile = Q.denodeify(fs.readFile); ! readFile(‘/path/to/file’) .then(function(data) { … }) .catch(function(err) { … });
  • 58. Generator 현재는 시작단계이지만 최종적으로는 제너레이터로 갈꺼라고 생각하고 있습니다 물론 정착되기까지는 꽤 시간이 걸릴겁니다
  • 60. function* inc() { for (var i = 0; i < 5; i++) { yield i; } }
  • 61. > var index = inc();
  • 62. > var index = increase(); > index.next(); { value: 0, done: false }
  • 63. > var index = increase(); > index.next(); { value: 0, done: false } > index.next(); { value: 1, done: false }
  • 64. > var index = increase(); > index.next(); { value: 0, done: false } > index.next(); { value: 1, done: false } > index.next(); { value: 2, done: false }
  • 65. > var index = increase(); > index.next(); { value: 0, done: false } > index.next(); { value: 1, done: false } > index.next(); { value: 2, done: false } > index.next(); { value: 3, done: false }
  • 66. > var index = increase(); > index.next(); { value: 0, done: false } > index.next(); { value: 1, done: false } > index.next(); { value: 2, done: false } > index.next(); { value: 3, done: false } > index.next(); { value: 4, done: false } > index.next(); { value: undefined, done: true }
  • 67. Thank you. outsideris@gmail.com Twitter: @outsideris