Node.js 현재와 미래

JeongHun Byeon
JeongHun ByeonSoftware Engineer
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 
영하고 있습니다.
Node.js 현재와 미래
작년 여름에 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
Node.js 현재와 미래
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
1 of 67

Recommended

Node.js 시작하기 by
Node.js 시작하기Node.js 시작하기
Node.js 시작하기Huey Park
6.8K views62 slides
Javascript everywhere - Node.js | Devon 2012 by
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Daum DNA
2.6K views50 slides
Node.js의 도입과 활용 by
Node.js의 도입과 활용Node.js의 도입과 활용
Node.js의 도입과 활용Jin wook
5K views38 slides
Leadweb Nodejs by
Leadweb NodejsLeadweb Nodejs
Leadweb Nodejs근호 최
618 views34 slides
Node.js by
Node.jsNode.js
Node.jsymtech
1.6K views26 slides
Node.js + Websocket 삽질기 by
Node.js + Websocket 삽질기Node.js + Websocket 삽질기
Node.js + Websocket 삽질기Paprikhan
5.2K views57 slides

More Related Content

What's hot

Node.js at OKJSP by
Node.js at OKJSPNode.js at OKJSP
Node.js at OKJSPJeongHun Byeon
1.9K views62 slides
세션3 node.js의 의미와 자바의 대안 by
세션3 node.js의 의미와 자바의 대안세션3 node.js의 의미와 자바의 대안
세션3 node.js의 의미와 자바의 대안Lee Ji Eun
12.6K views26 slides
Nodejs 발표자료 by
Nodejs 발표자료Nodejs 발표자료
Nodejs 발표자료shanka2
981 views21 slides
Node.js 자바스크립트로 서버사이드 개발하기 by
Node.js 자바스크립트로 서버사이드 개발하기Node.js 자바스크립트로 서버사이드 개발하기
Node.js 자바스크립트로 서버사이드 개발하기JeongHun Byeon
16.8K views56 slides
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드 by
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드Jeongsang Baek
16.2K views47 slides
Node.js in Flitto by
Node.js in FlittoNode.js in Flitto
Node.js in FlittoSeungWoo Lee
15K views61 slides

What's hot(20)

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

Viewers also liked

진짜기초 Node.js by
진짜기초 Node.js진짜기초 Node.js
진짜기초 Node.jsWoo Jin Kim
60.2K views48 slides
Node.js를 사용한 Big Data 사례연구 by
Node.js를 사용한 Big Data 사례연구Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구ByungJoon Lee
6.8K views22 slides
Java/Spring과 Node.js의공존 by
Java/Spring과 Node.js의공존Java/Spring과 Node.js의공존
Java/Spring과 Node.js의공존동수 장
28.9K views44 slides
웹 Front-End 실무 이야기 by
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기JinKwon Lee
54.3K views83 slides
Node.js для начинающих by
Node.js для начинающихNode.js для начинающих
Node.js для начинающихAlexey Simonenko
2K views58 slides
Java8 람다 by
Java8 람다Java8 람다
Java8 람다Jong Woo Rhee
782 views19 slides

Viewers also liked(20)

진짜기초 Node.js by Woo Jin Kim
진짜기초 Node.js진짜기초 Node.js
진짜기초 Node.js
Woo Jin Kim60.2K views
Node.js를 사용한 Big Data 사례연구 by ByungJoon Lee
Node.js를 사용한 Big Data 사례연구Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구
ByungJoon Lee6.8K views
Java/Spring과 Node.js의공존 by 동수 장
Java/Spring과 Node.js의공존Java/Spring과 Node.js의공존
Java/Spring과 Node.js의공존
동수 장28.9K views
웹 Front-End 실무 이야기 by JinKwon Lee
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
JinKwon Lee54.3K views
Node mcu 셋업하기 by Kyuho Kim
Node mcu 셋업하기Node mcu 셋업하기
Node mcu 셋업하기
Kyuho Kim1.9K views
AngularJS In Production by MooYeol Lee
AngularJS In ProductionAngularJS In Production
AngularJS In Production
MooYeol Lee1.2K views
Webkit overview by Eun Cho
Webkit overviewWebkit overview
Webkit overview
Eun Cho2.5K views
DGMIT 제3회 R&D 컨퍼런스 1TEAM : NODE.JS by dgmit2009
DGMIT 제3회 R&D 컨퍼런스 1TEAM : NODE.JSDGMIT 제3회 R&D 컨퍼런스 1TEAM : NODE.JS
DGMIT 제3회 R&D 컨퍼런스 1TEAM : NODE.JS
dgmit2009727 views
I know - Chrome and Plugin by Taewoo Kim
I know - Chrome and PluginI know - Chrome and Plugin
I know - Chrome and Plugin
Taewoo Kim329 views
부동산 텔레그램봇 사내공유 @Tech by HoChul Shin
부동산 텔레그램봇 사내공유 @Tech부동산 텔레그램봇 사내공유 @Tech
부동산 텔레그램봇 사내공유 @Tech
HoChul Shin14.9K views
IoT with Raspberry Pi + Node JS - Chapter 3 by Park Jonggun
IoT with Raspberry Pi + Node JS - Chapter 3IoT with Raspberry Pi + Node JS - Chapter 3
IoT with Raspberry Pi + Node JS - Chapter 3
Park Jonggun2.3K views
노드js 기초 by 경륜 이
노드js 기초 노드js 기초
노드js 기초
경륜 이623 views
웹 애플리케이션 프레임웍의 과거,현재 그리고 미래 - 봄날은 간다 by 동수 장
웹 애플리케이션 프레임웍의 과거,현재 그리고 미래 - 봄날은 간다웹 애플리케이션 프레임웍의 과거,현재 그리고 미래 - 봄날은 간다
웹 애플리케이션 프레임웍의 과거,현재 그리고 미래 - 봄날은 간다
동수 장6.9K views
track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ... by 양 한빛
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, ...
양 한빛377 views

Similar to Node.js 현재와 미래

[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기 by
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기현철 조
10.7K views63 slides
Mean 스택을 사용한 IoT 개발 by
Mean 스택을 사용한 IoT 개발Mean 스택을 사용한 IoT 개발
Mean 스택을 사용한 IoT 개발Jay Park
14K views62 slides
Development AR App with C++ and Windows Holographic API by
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
686 views56 slides
응답하라 반응형웹 - 4. angular by
응답하라 반응형웹 - 4. angular응답하라 반응형웹 - 4. angular
응답하라 반응형웹 - 4. angularredribbon1307
4K views41 slides
Frontend testing by
Frontend testingFrontend testing
Frontend testingKihoon Kim
1K views67 slides
캠프앱 개발 사례를 통해 본 하이브리드앱 어디까지 | Devon 2012 by
캠프앱 개발 사례를 통해 본 하이브리드앱 어디까지 | Devon 2012캠프앱 개발 사례를 통해 본 하이브리드앱 어디까지 | Devon 2012
캠프앱 개발 사례를 통해 본 하이브리드앱 어디까지 | Devon 2012Daum DNA
8.9K views105 slides

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

[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기 by 현철 조
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
현철 조10.7K views
Mean 스택을 사용한 IoT 개발 by Jay Park
Mean 스택을 사용한 IoT 개발Mean 스택을 사용한 IoT 개발
Mean 스택을 사용한 IoT 개발
Jay Park14K views
Development AR App with C++ and Windows Holographic API by YEONG-CHEON YOU
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
YEONG-CHEON YOU686 views
응답하라 반응형웹 - 4. angular by redribbon1307
응답하라 반응형웹 - 4. angular응답하라 반응형웹 - 4. angular
응답하라 반응형웹 - 4. angular
redribbon13074K views
Frontend testing by Kihoon Kim
Frontend testingFrontend testing
Frontend testing
Kihoon Kim1K views
캠프앱 개발 사례를 통해 본 하이브리드앱 어디까지 | Devon 2012 by Daum DNA
캠프앱 개발 사례를 통해 본 하이브리드앱 어디까지 | Devon 2012캠프앱 개발 사례를 통해 본 하이브리드앱 어디까지 | Devon 2012
캠프앱 개발 사례를 통해 본 하이브리드앱 어디까지 | Devon 2012
Daum DNA8.9K views
Front-end Development Process - 어디까지 개선할 수 있나 by JeongHun Byeon
Front-end Development Process - 어디까지 개선할 수 있나Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나
JeongHun Byeon50.5K views
Introduce Yeoman by 항희 이
Introduce YeomanIntroduce Yeoman
Introduce Yeoman
항희 이5.3K views
ARTIK 710 IoT class 02 by 정출 김
ARTIK 710 IoT class 02ARTIK 710 IoT class 02
ARTIK 710 IoT class 02
정출 김157 views
[IoT] MAKE with Open H/W + Node.JS - 3rd by Park Jonggun
[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
Park Jonggun6.8K views
Node.js and react by HyungKuIm
Node.js and reactNode.js and react
Node.js and react
HyungKuIm24 views
Let's play yoga with ARCore by Eunsil Jo 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
Eunsil Jo1K views
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js by 양재동 코드랩
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js [W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js
예제를 통해 쉽게_살펴보는_뷰제이에스 by Dexter Jung
예제를 통해 쉽게_살펴보는_뷰제이에스예제를 통해 쉽게_살펴보는_뷰제이에스
예제를 통해 쉽게_살펴보는_뷰제이에스
Dexter Jung2.2K views
다음 통합검색 로딩 속도 개선 삽질기 by 정윤 김
다음 통합검색 로딩 속도 개선 삽질기다음 통합검색 로딩 속도 개선 삽질기
다음 통합검색 로딩 속도 개선 삽질기
정윤 김701 views
개발자의 컴퓨터 by jaehyok Song
개발자의 컴퓨터개발자의 컴퓨터
개발자의 컴퓨터
jaehyok Song889 views
안드로이드 오픈소스 어플리케이션 블록 by YoungSu Son
안드로이드 오픈소스 어플리케이션 블록안드로이드 오픈소스 어플리케이션 블록
안드로이드 오픈소스 어플리케이션 블록
YoungSu Son14.4K views
[115] clean fe development_윤지수 by NAVER D2
[115] clean fe development_윤지수[115] clean fe development_윤지수
[115] clean fe development_윤지수
NAVER D22.8K views
Spark 소개 2부 by Jinho Yoo
Spark 소개 2부Spark 소개 2부
Spark 소개 2부
Jinho Yoo6.6K views

More from JeongHun Byeon

DevOps를 가속화하는 플랫폼 엔지니어링 by
DevOps를 가속화하는 플랫폼 엔지니어링DevOps를 가속화하는 플랫폼 엔지니어링
DevOps를 가속화하는 플랫폼 엔지니어링JeongHun Byeon
13 views53 slides
클라우드 시대에 맞는 사이트 신뢰성 엔지니어 by
클라우드 시대에 맞는 사이트 신뢰성 엔지니어클라우드 시대에 맞는 사이트 신뢰성 엔지니어
클라우드 시대에 맞는 사이트 신뢰성 엔지니어JeongHun Byeon
11 views45 slides
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요 by
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요 디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요 JeongHun Byeon
25 views13 slides
Citizen 개발기 by
Citizen 개발기Citizen 개발기
Citizen 개발기JeongHun Byeon
18 views62 slides
오픈소스 뒤에 메인테이너 있어요 by
오픈소스 뒤에 메인테이너 있어요오픈소스 뒤에 메인테이너 있어요
오픈소스 뒤에 메인테이너 있어요JeongHun Byeon
1.5K views28 slides
오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일 by
오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일
오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일JeongHun Byeon
3.8K views31 slides

More from JeongHun Byeon(20)

DevOps를 가속화하는 플랫폼 엔지니어링 by JeongHun Byeon
DevOps를 가속화하는 플랫폼 엔지니어링DevOps를 가속화하는 플랫폼 엔지니어링
DevOps를 가속화하는 플랫폼 엔지니어링
JeongHun Byeon13 views
클라우드 시대에 맞는 사이트 신뢰성 엔지니어 by JeongHun Byeon
클라우드 시대에 맞는 사이트 신뢰성 엔지니어클라우드 시대에 맞는 사이트 신뢰성 엔지니어
클라우드 시대에 맞는 사이트 신뢰성 엔지니어
JeongHun Byeon11 views
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요 by JeongHun Byeon
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요 디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요
JeongHun Byeon25 views
오픈소스 뒤에 메인테이너 있어요 by JeongHun Byeon
오픈소스 뒤에 메인테이너 있어요오픈소스 뒤에 메인테이너 있어요
오픈소스 뒤에 메인테이너 있어요
JeongHun Byeon1.5K views
오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일 by JeongHun Byeon
오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일
오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일
JeongHun Byeon3.8K views
Lessons from maintaining Mocha, an open source project by JeongHun Byeon
Lessons from maintaining Mocha, an open source projectLessons from maintaining Mocha, an open source project
Lessons from maintaining Mocha, an open source project
JeongHun Byeon231 views
개발 관련 기술 블로그 운영하기 by JeongHun Byeon
개발 관련 기술 블로그 운영하기개발 관련 기술 블로그 운영하기
개발 관련 기술 블로그 운영하기
JeongHun Byeon5.6K views
Terraform을 이용한 Infrastructure as Code 실전 구성하기 by JeongHun Byeon
Terraform을 이용한 Infrastructure as Code 실전 구성하기Terraform을 이용한 Infrastructure as Code 실전 구성하기
Terraform을 이용한 Infrastructure as Code 실전 구성하기
JeongHun Byeon4.4K views
오픈소스 생태계 일원으로서의 개발자(자막 버전) by JeongHun Byeon
오픈소스 생태계 일원으로서의 개발자(자막 버전)오픈소스 생태계 일원으로서의 개발자(자막 버전)
오픈소스 생태계 일원으로서의 개발자(자막 버전)
JeongHun Byeon3.2K views
오픈소스 생태계 일원으로서의 개발자 by JeongHun Byeon
오픈소스 생태계 일원으로서의 개발자오픈소스 생태계 일원으로서의 개발자
오픈소스 생태계 일원으로서의 개발자
JeongHun Byeon494 views
Node.js API 서버 성능 개선기 by JeongHun Byeon
Node.js API 서버 성능 개선기Node.js API 서버 성능 개선기
Node.js API 서버 성능 개선기
JeongHun Byeon14.4K views
더 나은 개발자 되기 by JeongHun Byeon
더 나은 개발자 되기더 나은 개발자 되기
더 나은 개발자 되기
JeongHun Byeon19.7K views
블로그 주도 개발 by JeongHun Byeon
블로그 주도 개발블로그 주도 개발
블로그 주도 개발
JeongHun Byeon15.1K views
Popular Convention 개발기 by JeongHun Byeon
Popular Convention 개발기Popular Convention 개발기
Popular Convention 개발기
JeongHun Byeon8.5K views
Spring Scala : 스프링이 스칼라를 만났을 때 by JeongHun Byeon
Spring Scala : 스프링이 스칼라를 만났을 때Spring Scala : 스프링이 스칼라를 만났을 때
Spring Scala : 스프링이 스칼라를 만났을 때
JeongHun Byeon12.1K views
혼자서 프로젝트 수행하기 by JeongHun Byeon
혼자서 프로젝트 수행하기혼자서 프로젝트 수행하기
혼자서 프로젝트 수행하기
JeongHun Byeon22.6K views
초급 개발자 탈출 by JeongHun Byeon
초급 개발자 탈출초급 개발자 탈출
초급 개발자 탈출
JeongHun Byeon37.5K views

Recently uploaded

CES 처음 가는 분을 위한 가이드 by
CES 처음 가는 분을 위한 가이드CES 처음 가는 분을 위한 가이드
CES 처음 가는 분을 위한 가이드Minsuk Lee
677 views31 slides
성능 테스트 by
성능 테스트성능 테스트
성능 테스트Wonjun Hwang
8 views13 slides
해커가 되고 싶은 자는 나에게... 정보보안 입문과 길 찾기 by
해커가 되고 싶은 자는 나에게... 정보보안 입문과 길 찾기해커가 되고 싶은 자는 나에게... 정보보안 입문과 길 찾기
해커가 되고 싶은 자는 나에게... 정보보안 입문과 길 찾기Jinkyoung Kim
46 views139 slides
컴포넌트 설계 by
컴포넌트 설계컴포넌트 설계
컴포넌트 설계Wonjun Hwang
11 views21 slides
Exploring Deep Learning Acceleration Technology Embedded in LLMs by
Exploring Deep Learning Acceleration Technology Embedded in LLMsExploring Deep Learning Acceleration Technology Embedded in LLMs
Exploring Deep Learning Acceleration Technology Embedded in LLMsTae Young Lee
26 views53 slides
클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략 by
클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략
클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략Open Source Consulting
114 views25 slides

Recently uploaded(6)

CES 처음 가는 분을 위한 가이드 by Minsuk Lee
CES 처음 가는 분을 위한 가이드CES 처음 가는 분을 위한 가이드
CES 처음 가는 분을 위한 가이드
Minsuk Lee677 views
해커가 되고 싶은 자는 나에게... 정보보안 입문과 길 찾기 by Jinkyoung Kim
해커가 되고 싶은 자는 나에게... 정보보안 입문과 길 찾기해커가 되고 싶은 자는 나에게... 정보보안 입문과 길 찾기
해커가 되고 싶은 자는 나에게... 정보보안 입문과 길 찾기
Jinkyoung Kim46 views
Exploring Deep Learning Acceleration Technology Embedded in LLMs by Tae Young Lee
Exploring Deep Learning Acceleration Technology Embedded in LLMsExploring Deep Learning Acceleration Technology Embedded in LLMs
Exploring Deep Learning Acceleration Technology Embedded in LLMs
Tae Young Lee26 views
클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략 by Open Source Consulting
클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략
클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략

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 영하고 있습니다.
  • 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
  • 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