際際滷

際際滷Share a Scribd company logo
Implementing 
web based 
online multiplayer 
Tetris with 
Open 
Source 
Jin Kwon Lee 
NHN Technology Services
Speaker 
NHN Technology Services 
Jin-Kwon Lee 
Front-End Developer
Without JavaScript
Without JavaScript
Who is 
Front-End Developer? 
 Markup(HTML, CSS), JavaScript 煙 伎 
螳   危  螳覦 螳覦 
 豕蠏殊  蠏殊, UX/UI,  危 豕 
煙 覓企ゼ 螳
Who is 
Front-End Developer? 
HTML貊 
Markup 
Developer 
UI 
Developer 
Front-End 
Developer 
HTML     
CSS     
 蠏殊    
 譴 譴    
Javascript    
襦 焔 豕   
UI/UX
覦ろ襴渚語  
覈危(轟 1 觚殊一)襯 願幻る 覘螳 
蟯谿 蟆 ! 
麹伎 l 螳 襦蠏碁覦 語企ゼ 
螻企慨. 
Netscape Communications 
Brendan Eich 
1995.8.19 
豕豐襦 JS螳  Netscape 觚殊一 覦
企 讌伎 , 
瑚鍵 Java企 覿 讌朱 
螳 瑚鍵螳 るゴ讌 蟾? 
觜譟一! 螳 語  襷れ 
蠍一 Java襯 覿 JavaScript 
手 企 蟾? 
. 
 襷襦~!! 
Sun MicroSystems 
Bill Joy
蠏碁 覦 蟯螻  
企襷 JavaScript 
 Java企  Bill Joy 
覈視 蟆一 伎る 覦語
襷一 壱企Ν襷朱, 
企 ろ  JavaScript れ 
覿 OPEN
JS 覦 螻殊 
2 
蠍襦覯 IT蠍一れ 
覲瑚鴬朱 JS襯   
3 
れ UX襯 螳讌 
 危襴貅伎 煙 
 Google Map 
5 
iOS Web Browser 
Flash 覩語, 朱 JS 
4 
 2.0, HTML5 覿 
JS 覦 
襷   
6 
Android Web Browser 
 磯殊 Flash 覩語 
1 
豢  る 螳 
Toy Language 豬蠍
JS 
ロ る覿 
 る Open Source 
383,185 
Github JavaScript repository
ロ れ 覘讌 襷り, 
. (dot) JS 襯 覿 螻糾蠍  
Whatever _____ . JS
JavaScript  
Browser 
Library 
Desktop 
Server-Side 
JavaScript 
Application 
JS in Device, 
IoT 
Database with 
JSON 
螳讌 覿朱 覦
Browser Library 
Browser 
Library 
ServerSide 
JavaScript 
Desktop 
Application 
Database 
with JSON 
JS in 
Device, IoT 
螳 Util 炎鴬 殊企襴覿, 
jQuery, Underscore, Zepto 
HTML5 螻 殊企襴, 
Three.js, Socket.io, Raphael 
蠏碁Μ螻, MVC 襯 , 
Backbone.js, Angular.js, Ember.js 
Complie Javascript蟾讌 れ 覦 
CoffeeScript, TypeScript, Dart, JSX 
伎 Web 危襴貅伎企朱 
譴 企ゴ
Server Side Javascript 
Browser 
Library 
ServerSide 
JavaScript 
Desktop 
Application 
Database 
with JSON 
JS in 
Device, IoT 
覯 覦ろ襴渚碁ゼ 
襴  讌 蟾? 
蟲蠍 v8 JS 讌  
覯 企 JavaScript   
 れ at NPM 
Total : 104,651
覯 JS襯 れ 覘譯? 
Spring 
Framework 
Node.js PHP on 
蠍一ヾ 弮 語伎 螳 覯 
觜るゼ 螳覦  蟆  
Browser 
Library 
ServerSide 
JavaScript 
Desktop 
Application 
Database 
with JSON 
JS in 
Device, IoT 
Linux 
Apache 
Java on 
Tomcat 
Lalavel 
Framework 
express.js 
Framework
Desktop App 
Browser 
Library 
ServerSide 
JavaScript 
Desktop 
Application 
Database 
with JSON 
JS in 
Device, IoT 
一ろ 危襴貅伎 濠鍵襦 襷 
 讌 蟾? 
轟 觚殊一襯 覯企  蠍 覓語 
覦朱 螳 覦覯 谿剰鍵  
Web App Desktop App
Desktop App 
Browser 
Library 
ServerSide 
JavaScript 
Desktop 
Application 
Database 
with JSON 
JS in 
Device, IoT 
Node-Webkit 
企殊伎誤語 蠍一 麹血, 
 る 覯 蠍一 Node.js襯  
Node.js 螳    蟆れ 襦語 
  蟆
Database with JSON 
Browser 
Library 
ServerSide 
Javascript 
Desktop 
Application 
Database 
with JSON 
JS in 
Device, IoT 
NoSQL 一危磯伎 mongoDB 
襾狩 讌 一危磯伎 ろ 
JSON ろ殊 覓語襯  
(JavaScript Object Notation)
JS in Device, IoT 
Browser 
Library 
ServerSide 
Javascript 
Desktop 
Application 
Database 
with JSON 
JS in 
Device, IoT 
Raspberry Pi 
Node.js  
れ螳 
Device 企ゼ 
JS Code襦    
with pi.js
伎 覓伎瑚 
螳覦  覲朱  苦給 
伎企 覦 蟇碁!
Lets make GAMES
螳覦 譯殊 ? 
譯殊  覈, 
Full Stack JS襯 伎  螳覦 
 譯殊襦  覲願鍵 
襦語 螳覦 譴朱 覯蟾讌! 
覃  蟆朱 
觜蟲  襦讌 碁Μ?
襦語 螳覦 襦語 
蟲 
覿 
殊企襴 
 
螳覦蟆 
蟲豢 
 
 
り 
螳覦/ 
ろ 
覦壱蟆 
蟲豢 
1 2 3 4 5 6 7 
8 
焔 
豕 
覦壱 
9
蟲 覿 
kり 螳朱 企讌 觚襦 
l 豌豌 觚襦 企れ 
m譴 豈磯   
 螳 讌襦  觜殊 
k 豕蟾讌 企 蟆 譬襭
蠍一 蟲  
 Multi Play襯 る 貅 郁屋  
(WebSocket) 
 Game Status  讌伎  
(Do not replace URL) 
 螳 一危 旧  
 蟆  朱 覃伎 螳煙伎
Framework & Library
  
JS ? 
譴覲 貊 蟇, 一 レ, 貊 手 讌 
轟 螳 襷レ 蠍 覓語 
 磯 螻殊
JavaScript Full Stack 
覈 JavaScript蟯 蠍一襷朱  
Client MVC Framework 
Server Platform 
Server MVC Framework 
NoSQL DB
殊企襴  
There are too many libraries 
襦語  殊企襴襯  
 蟆 覓伎 ! 
 るゴ蟆 殊企襴 襴曙煙  
(碁Μ 炎鴬 螳)
螳覦蟆 蟲豢
螳覦蟆 蟲豢 
伎 Notepad 螳覦讌  
 IDE, WebStorm 9 
貊  覿, れ螳 貊  豌危, ETC.
Project Scaffolding 
豌  覲旧伎 螳覦讌  
Scaffolding 碁Μ磯ゼ 伎 螳覦 蟆 誤 
YEOMAN, GRUNT-INIT 
 貉るЖ ろ朱 襦 启 れ
貉るЖ襦 殊企襴 覲旧 
 殊企襴 蟯襴 
Bower 碁Μ磯ゼ 伎 貉るЖ 所 
覦ろ襴渚 殊企襴襯 蟯襴   
bower install jquery 
bower search underscore 
< File result > 
bower_components/jquery 
bower_components/underscore
Chrome Debugger 
讌覲企 覦ろ襴渚 覯蟾 蟆 
watch runtime 
scope variables
り
UI/UX り 
豕螻 UXり 蟲   蠏碁
覃 り 
Login Dashboard 
Single 
Game 
Multi 
Robby 
Option 
Score 
Board 
Multi 
Game
 蠍一 
Web Socket 
Server 
Node.js 
express.js 
socket.io 
MongoDB 
Mongoose.js 
Client 
MVC Framework 
Backbone.js 
UI Effect 
Animate.css 
Network 
Socket.io-client 
Game Stage 
Canvas & WebGL 
Build with Grunt 
Node-webkit (for Mac, windows) 
Phonegap (for Android, iOS, ETC)
Modeling 
り DB覈語, 
覯 企殊伎誤 讓曙 蠏碁襦  
Server 
JSON 
DB 
JSON 
Client 
JSON
Model Schema 
覲 螳豌. 語覲伎 語 覲
Model Schema 
覃郁 覦 覲 螳豌. 
覦 join   覲企 users襦 覈 
觚 貉 Push 
覦 燕 owner 蟆
Model Schema 
覃郁   覲 螳豌 
碁Μ 覃伎 覦一願骸 れ 覲
Model Schema 
螳碁襦 豕 襯 , 
Score 貊 蠍磯 
ScoreBoard  覲
Client Architecture 
觀一 覈語 襦讌 殊蠍  JavaScript 
JavaScript 螳覦 蠏覈螳 貉れ覃伎, 
るジ 語伎  螳覦 企れ  
(MVC, Facade, Singleton, ETC) 
螳 企れ 螳  覿 !
Client Architecture 
伎 JavaScript MVC 伎 伎 
 伎 覯 API 旧 覃伎 
覃 螳煙 
Client Side MV* Framework
Server Architecture 
Server Platform, Node.js 
Server MVC Framework, express.js 
NoSQL Database, mongoDB
Server Architecture 
 Account Manager : 螳螻 襦蠏語語 企
Server Architecture 
Game Manager : 覃 蟆 蟯襴
螳覦/ろ
碁Μ 襦讌 蟲 
2谿覦一 : matrix[x][x] 
Event Tick 讌襷 
觚襦 企 
焔 豢 覦 れ 豌危 
讌  觚襦 豢覃 
覦一伎 豢螳 
譴 谿覃 蟇/れ 豢螳
碁Μ ろ伎 豐蠍壱 
2谿 覦一伎 
覃伎朱 蠏碁Μ覃
碁Μ 觚襦 覈 
 螳 れ 
  觚襦 
豢 豌危 
觚襦
Stage Canvas 
 Flag螳 1企 
drawBlock 
drawBlock 企 螳朱 
canvas 蠏碁殊 蠏碁Μ 襦讌
Draw Game Stage 
2D Stage in Canvas 3D Stage in WebGL
WebGL Now 
Global Coverage 48.27% + 26.37% = 74.64%
Data Handling 
企殊伎誤語 燕 JavaScript Object螳 
覯蟾讌 覲 蠏碁襦 . (ORM  ) 
Create Object 
from Client (Browser) 
Web 
Server 
NoSQL 
Database 
Pass-thru without converting!!
Cli/Server Network 
Socket Communication 
on螻 emit 襷覯 
Client Code 
socket.emit(sendMessage, data); 
socket.on(receive, function(){ 
alert(Server received Message); 
}); 
socket.on(sendMessage, function(data){ 
socket.broadcast.emit(receive); 
}); 
Server Code
觜 覦 覦壱蟆 蟲豢
JS Build Environment 
with Grunt.js 
覦ろ襴渚 ろ  
螳讌 蠏谿 れ 貉るЖ 覯 ろ 
> js  豢, css 豕  
gruntfile.js  
(れ ) 
GRUNT ろ 
(with ONE Command) 
豕譬 一覓  
 襭
JavaScript Deploy 
Deploy  蟆 蟲豢, git push螳 覦覃 
(git hook 伎) 螳覦 覯 朱 Deploy 
Deploy? grunt.js ろ 襯 伎
Packaging N Device 
Webs good parts, can run everywhere 
MOBILE APP 
DESKTOP APP 
Web Product 
HTML, CSS, JS 
Tizen
Phonegap 蟆 
WebView襯  
れ危磯  蟲譟 
れ危磯 API JS覯 
   (Bridge) 
WebView 
Native App 
OS
Node-Webkit 蟆 
一ろ 危襴貅伎 . 
, OSX, Ubuntu 讌 
DESKTOP APP 
Build 
Build 
Build
Package 覦壱 
OS覲襦, 
ろ 螳ロ, 
襴 危襴貅伎 
觜 襭
Code is Open at Github 
https://github.com/Jinkwon/tetris.js
Play Game! 
http://srv.bdyne.net/dn
What do you want to do? 
Front-End 覿 Back-End蟾讌  語 
伎 PHP螳  蠏殊 語  る, 
觜襯 螳覦 狩襾殊る 蠏  豌危襷 
JavaScript Full Stack 
Its for StartUp!!!!
Let's Make 
something nice! 
Thanks!!! 
lee.jinkwon@nhn.com
Ad

Recommended

Logcat螻 蟷 覈覦 覯蟾
Logcat螻 蟷 覈覦 覯蟾
JinKwon Lee
[D2 ろ碁碁]5.html5 api 碁Μり_伎蟠
[D2 ろ碁碁]5.html5 api 碁Μり_伎蟠
NAVER D2
HTML5襦 襷 一ろ 危襴貅伎 (Node-Webkit)
HTML5襦 襷 一ろ 危襴貅伎 (Node-Webkit)
JinKwon Lee
Cooking jquery
Cooking jquery
JinKwon Lee
れ螳朱 襦企 襦語 蠍
れ螳朱 襦企 襦語 蠍
Haze Lee
豕覦 譟企 - 襦語 螳覦襦 伎螳蠍
豕覦 譟企 - 襦語 螳覦襦 伎螳蠍
Hyeonjin Cho
牛 覦 - 4. angular
牛 覦 - 4. angular
redribbon1307
梶梶 ≡=
梶梶 ≡=
jung kyunghwan
蟲襯 螳覦: Yeoman
蟲襯 螳覦: Yeoman
Jae Sung Park
衣 Front-End 求 求a
衣 Front-End 求 求a
JinKwon Lee
[124] =求梶求 ≡ ≡= 求戟=
[124] =求梶求 ≡ ≡= 求戟=
NAVER D2
JavaScript襦 ろるゼ 企慨. bsJS
JavaScript襦 ろるゼ 企慨. bsJS
NAVER D2
Next Javascript ES2015 求==
Next Javascript ES2015 求==
JinKwon Lee
[JCO 貉朱一] 轟危 Front-End 焔 豕
[JCO 貉朱一] 轟危 Front-End 焔 豕
ル 蟾
觜襯 襦危 轟 - YEOMAN
觜襯 襦危 轟 - YEOMAN
Yeoman(覈 螳覦 蟯襴蟲)れ螳企
Yeoman(覈 螳覦 蟯襴蟲)れ螳企
磯Μ螳 覈磯 襦 螳覦 蟲
磯Μ螳 覈磯 襦 螳覦 蟲
Jae Sung Park
Electron 蠍
Electron 蠍
Hyeokjoo Yoon
衣 IDE 求
衣 IDE 求
Junyoung Lee
BEM梶 ≡求.
BEM梶 ≡求.
一 譯
[れ企ろれ碁碁] egjs-view360 螳覦蠍 - 蟾
[れ企ろれ碁碁] egjs-view360 螳覦蠍 - 蟾
NAVER D2
梶 =釈= HTML5
梶 =釈= HTML5
Taegon Kim
[145]5п=玩求メ衣午求≡==午求求梶求 求戟
[145]5п=玩求メ衣午求≡==午求求梶求 求戟
NAVER D2
貉危 蟯 螳覦蠍
貉危 蟯 螳覦蠍
一 譯
讌覲危 螳覦 蟆曙 讌 譬 貊 (WebStorm)
讌覲危 螳覦 蟆曙 讌 譬 貊 (WebStorm)
一 譯
Electron 螳覦蠍
Electron 螳覦蠍
襦語 螳覦 覦ろ襴渚
襦語 螳覦 覦ろ襴渚
jeong seok yang
Jenkins with Unity3d & Android
Jenkins with Unity3d & Android
譬蟲
梶梶梶 求==梶 衣 ≡= =釈メ午 求求梶
梶梶梶 求==梶 衣 ≡= =釈メ午 求求梶
Eun Cho
Template method Pattern 危エ覲願鍵
Template method Pattern 危エ覲願鍵
JinKwon Lee

More Related Content

What's hot (20)

蟲襯 螳覦: Yeoman
蟲襯 螳覦: Yeoman
Jae Sung Park
衣 Front-End 求 求a
衣 Front-End 求 求a
JinKwon Lee
[124] =求梶求 ≡ ≡= 求戟=
[124] =求梶求 ≡ ≡= 求戟=
NAVER D2
JavaScript襦 ろるゼ 企慨. bsJS
JavaScript襦 ろるゼ 企慨. bsJS
NAVER D2
Next Javascript ES2015 求==
Next Javascript ES2015 求==
JinKwon Lee
[JCO 貉朱一] 轟危 Front-End 焔 豕
[JCO 貉朱一] 轟危 Front-End 焔 豕
ル 蟾
觜襯 襦危 轟 - YEOMAN
觜襯 襦危 轟 - YEOMAN
Yeoman(覈 螳覦 蟯襴蟲)れ螳企
Yeoman(覈 螳覦 蟯襴蟲)れ螳企
磯Μ螳 覈磯 襦 螳覦 蟲
磯Μ螳 覈磯 襦 螳覦 蟲
Jae Sung Park
Electron 蠍
Electron 蠍
Hyeokjoo Yoon
衣 IDE 求
衣 IDE 求
Junyoung Lee
BEM梶 ≡求.
BEM梶 ≡求.
一 譯
[れ企ろれ碁碁] egjs-view360 螳覦蠍 - 蟾
[れ企ろれ碁碁] egjs-view360 螳覦蠍 - 蟾
NAVER D2
梶 =釈= HTML5
梶 =釈= HTML5
Taegon Kim
[145]5п=玩求メ衣午求≡==午求求梶求 求戟
[145]5п=玩求メ衣午求≡==午求求梶求 求戟
NAVER D2
貉危 蟯 螳覦蠍
貉危 蟯 螳覦蠍
一 譯
讌覲危 螳覦 蟆曙 讌 譬 貊 (WebStorm)
讌覲危 螳覦 蟆曙 讌 譬 貊 (WebStorm)
一 譯
Electron 螳覦蠍
Electron 螳覦蠍
襦語 螳覦 覦ろ襴渚
襦語 螳覦 覦ろ襴渚
jeong seok yang
Jenkins with Unity3d & Android
Jenkins with Unity3d & Android
譬蟲
蟲襯 螳覦: Yeoman
蟲襯 螳覦: Yeoman
Jae Sung Park
衣 Front-End 求 求a
衣 Front-End 求 求a
JinKwon Lee
[124] =求梶求 ≡ ≡= 求戟=
[124] =求梶求 ≡ ≡= 求戟=
NAVER D2
JavaScript襦 ろるゼ 企慨. bsJS
JavaScript襦 ろるゼ 企慨. bsJS
NAVER D2
Next Javascript ES2015 求==
Next Javascript ES2015 求==
JinKwon Lee
[JCO 貉朱一] 轟危 Front-End 焔 豕
[JCO 貉朱一] 轟危 Front-End 焔 豕
ル 蟾
觜襯 襦危 轟 - YEOMAN
觜襯 襦危 轟 - YEOMAN
Yeoman(覈 螳覦 蟯襴蟲)れ螳企
Yeoman(覈 螳覦 蟯襴蟲)れ螳企
磯Μ螳 覈磯 襦 螳覦 蟲
磯Μ螳 覈磯 襦 螳覦 蟲
Jae Sung Park
BEM梶 ≡求.
BEM梶 ≡求.
一 譯
[れ企ろれ碁碁] egjs-view360 螳覦蠍 - 蟾
[れ企ろれ碁碁] egjs-view360 螳覦蠍 - 蟾
NAVER D2
梶 =釈= HTML5
梶 =釈= HTML5
Taegon Kim
[145]5п=玩求メ衣午求≡==午求求梶求 求戟
[145]5п=玩求メ衣午求≡==午求求梶求 求戟
NAVER D2
貉危 蟯 螳覦蠍
貉危 蟯 螳覦蠍
一 譯
讌覲危 螳覦 蟆曙 讌 譬 貊 (WebStorm)
讌覲危 螳覦 蟆曙 讌 譬 貊 (WebStorm)
一 譯
Electron 螳覦蠍
Electron 螳覦蠍
襦語 螳覦 覦ろ襴渚
襦語 螳覦 覦ろ襴渚
jeong seok yang
Jenkins with Unity3d & Android
Jenkins with Unity3d & Android
譬蟲

Viewers also liked (20)

梶梶梶 求==梶 衣 ≡= =釈メ午 求求梶
梶梶梶 求==梶 衣 ≡= =釈メ午 求求梶
Eun Cho
Template method Pattern 危エ覲願鍵
Template method Pattern 危エ覲願鍵
JinKwon Lee
WebSocket 蠍磯 覦 覃讌
WebSocket 蠍磯 覦 覃讌
trustinlee
Introduction to Web Components
Introduction to Web Components
EunYoung Kim
How AMP Work?
How AMP Work?
Tai Hoon KIM
[NAVER D2] html5 api梶 釈= 求求= ≡メ 梶求 求 ≡=
[NAVER D2] html5 api梶 釈= 求求= ≡メ 梶求 求 ≡=
JinKwon Lee
Google AMP梶 メメ =梶 メ釈梶釈梶 ≡?
Google AMP梶 メメ =梶 メ釈梶釈梶 ≡?
Tai Hoon KIM
(2015 11) 譯狩谿螳 螳語 覲 譯殊 伎(谿)
(2015 11) 譯狩谿螳 螳語 覲 譯殊 伎(谿)
谿
譬 企, 襦碁Г, 伎 螳覦
譬 企, 襦碁Г, 伎 螳覦
Suyeol Jeon
伎轟, れ螳 HTTP 覦 旧, NDC2012
伎轟, れ螳 HTTP 覦 旧, NDC2012
devCAT Studio, NEXON
Mqtt
Mqtt
Junho Lee
覦ろ襴渚語 るジ 覦, Backbone.js
覦ろ襴渚語 るジ 覦, Backbone.js
JinKwon Lee
蟾豢, 10讌 螳 襯 る螻 給
蟾豢, 10讌 螳 襯 る螻 給
devCAT Studio, NEXON
Data-binding AngularJS
Data-binding AngularJS
EunYoung Kim
襦語螳覦 覯 蠍 覦覯 螳企 殊
襦語螳覦 覯 蠍 覦覯 螳企 殊
Ji-Tae Kim
Ux Camp Seoul 2014 - 螻 覦蟆 譬
Ux Camp Seoul 2014 - 螻 覦蟆 譬
Woo Sanghun
Front-End 螳覦 蟯谿 ES6 & React
Front-End 螳覦 蟯谿 ES6 & React
Android Push Server & MQTT
Android Push Server & MQTT
1.openseminar
1.openseminar
NAVER D2
-襦 覯ろ誤一
-襦 覯ろ誤一
Tai Hoon KIM
梶梶梶 求==梶 衣 ≡= =釈メ午 求求梶
梶梶梶 求==梶 衣 ≡= =釈メ午 求求梶
Eun Cho
Template method Pattern 危エ覲願鍵
Template method Pattern 危エ覲願鍵
JinKwon Lee
WebSocket 蠍磯 覦 覃讌
WebSocket 蠍磯 覦 覃讌
trustinlee
Introduction to Web Components
Introduction to Web Components
EunYoung Kim
[NAVER D2] html5 api梶 釈= 求求= ≡メ 梶求 求 ≡=
[NAVER D2] html5 api梶 釈= 求求= ≡メ 梶求 求 ≡=
JinKwon Lee
Google AMP梶 メメ =梶 メ釈梶釈梶 ≡?
Google AMP梶 メメ =梶 メ釈梶釈梶 ≡?
Tai Hoon KIM
(2015 11) 譯狩谿螳 螳語 覲 譯殊 伎(谿)
(2015 11) 譯狩谿螳 螳語 覲 譯殊 伎(谿)
谿
譬 企, 襦碁Г, 伎 螳覦
譬 企, 襦碁Г, 伎 螳覦
Suyeol Jeon
伎轟, れ螳 HTTP 覦 旧, NDC2012
伎轟, れ螳 HTTP 覦 旧, NDC2012
devCAT Studio, NEXON
覦ろ襴渚語 るジ 覦, Backbone.js
覦ろ襴渚語 るジ 覦, Backbone.js
JinKwon Lee
蟾豢, 10讌 螳 襯 る螻 給
蟾豢, 10讌 螳 襯 る螻 給
devCAT Studio, NEXON
Data-binding AngularJS
Data-binding AngularJS
EunYoung Kim
襦語螳覦 覯 蠍 覦覯 螳企 殊
襦語螳覦 覯 蠍 覦覯 螳企 殊
Ji-Tae Kim
Ux Camp Seoul 2014 - 螻 覦蟆 譬
Ux Camp Seoul 2014 - 螻 覦蟆 譬
Woo Sanghun
Front-End 螳覦 蟯谿 ES6 & React
Front-End 螳覦 蟯谿 ES6 & React
Android Push Server & MQTT
Android Push Server & MQTT
1.openseminar
1.openseminar
NAVER D2
-襦 覯ろ誤一
-襦 覯ろ誤一
Tai Hoon KIM
Ad

Similar to [Korea Linux Forum] Implementing web based online multiplayer tetris with OpenSource (20)

Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
Daum DNA
[=] 求釈= メ =求 = 梶梶求午 求 Node.js =梶...
[=] 求釈= メ =求 = 梶梶求午 求 Node.js =梶...
Dennis Kim
[111217 蠖磯覈] 轟貅螻殊殊瑚
[111217 蠖磯覈] 轟貅螻殊殊瑚
sung ki choi
Nodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjs
蠍磯
Front end dev 2016 & beyond
Front end dev 2016 & beyond
Jae Sung Park
蟆 覯 螳覦 蟯 覲 Node.js ル螻
蟆 覯 螳覦 蟯 覲 Node.js ル螻
Jeongsang Baek
Why javaScript?
Why javaScript?
Kim Hunmin
る誤 覦- 襭 螳覦 Node.js れ 螳企
る誤 覦- 襭 螳覦 Node.js れ 螳企
Jeongsang Baek
[IGC 2017] 讌覃危 企 - 伎 轟 蟆 襷 蟆 'Construct3襯 覦朱'
[IGC 2017] 讌覃危 企 - 伎 轟 蟆 襷 蟆 'Construct3襯 覦朱'
螳 覩殊
[DEVIEW 2016] れ企 覈 殊企襴 - egjs
[DEVIEW 2016] れ企 覈 殊企襴 - egjs
Jae Sung Park
JavaScript Everywhere from Mobile and Robot
JavaScript Everywhere from Mobile and Robot
Circulus
Softcon_蟠_Only javascript 企襴 煙覯 蠍
Softcon_蟠_Only javascript 企襴 煙覯 蠍
hajaekwon
Datasnap web client
Datasnap web client
Kenu, GwangNam Heo
Node.js 螻
Node.js 螻
Jin wook
Node.js 蠍
Node.js 蠍
Huey Park
Node.js
Node.js
ymtech
[危襴]2017 NDC 螳 襭_危 讌 螳覦 誤
[危襴]2017 NDC 螳 襭_危 讌 螳覦 誤
iFunFactory Inc.
Single-page Application
Single-page Application
Sangmin Yoon
Slipp = = 20151212
Slipp = = 20151212
Jinsoo Jung
IT 觜 螳覦 15 _ IT service 15 years
IT 觜 螳覦 15 _ IT service 15 years
一 蟾
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
Daum DNA
[=] 求釈= メ =求 = 梶梶求午 求 Node.js =梶...
[=] 求釈= メ =求 = 梶梶求午 求 Node.js =梶...
Dennis Kim
[111217 蠖磯覈] 轟貅螻殊殊瑚
[111217 蠖磯覈] 轟貅螻殊殊瑚
sung ki choi
Nodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjs
蠍磯
Front end dev 2016 & beyond
Front end dev 2016 & beyond
Jae Sung Park
蟆 覯 螳覦 蟯 覲 Node.js ル螻
蟆 覯 螳覦 蟯 覲 Node.js ル螻
Jeongsang Baek
Why javaScript?
Why javaScript?
Kim Hunmin
る誤 覦- 襭 螳覦 Node.js れ 螳企
る誤 覦- 襭 螳覦 Node.js れ 螳企
Jeongsang Baek
[IGC 2017] 讌覃危 企 - 伎 轟 蟆 襷 蟆 'Construct3襯 覦朱'
[IGC 2017] 讌覃危 企 - 伎 轟 蟆 襷 蟆 'Construct3襯 覦朱'
螳 覩殊
[DEVIEW 2016] れ企 覈 殊企襴 - egjs
[DEVIEW 2016] れ企 覈 殊企襴 - egjs
Jae Sung Park
JavaScript Everywhere from Mobile and Robot
JavaScript Everywhere from Mobile and Robot
Circulus
Softcon_蟠_Only javascript 企襴 煙覯 蠍
Softcon_蟠_Only javascript 企襴 煙覯 蠍
hajaekwon
Node.js 螻
Node.js 螻
Jin wook
Node.js 蠍
Node.js 蠍
Huey Park
Node.js
Node.js
ymtech
[危襴]2017 NDC 螳 襭_危 讌 螳覦 誤
[危襴]2017 NDC 螳 襭_危 讌 螳覦 誤
iFunFactory Inc.
Single-page Application
Single-page Application
Sangmin Yoon
Slipp = = 20151212
Slipp = = 20151212
Jinsoo Jung
IT 觜 螳覦 15 _ IT service 15 years
IT 觜 螳覦 15 _ IT service 15 years
一 蟾
Ad

[Korea Linux Forum] Implementing web based online multiplayer tetris with OpenSource

  • 1. Implementing web based online multiplayer Tetris with Open Source Jin Kwon Lee NHN Technology Services
  • 2. Speaker NHN Technology Services Jin-Kwon Lee Front-End Developer
  • 5. Who is Front-End Developer? Markup(HTML, CSS), JavaScript 煙 伎 螳 危 螳覦 螳覦 豕蠏殊 蠏殊, UX/UI, 危 豕 煙 覓企ゼ 螳
  • 6. Who is Front-End Developer? HTML貊 Markup Developer UI Developer Front-End Developer HTML CSS 蠏殊 譴 譴 Javascript 襦 焔 豕 UI/UX
  • 7. 覦ろ襴渚語 覈危(轟 1 觚殊一)襯 願幻る 覘螳 蟯谿 蟆 ! 麹伎 l 螳 襦蠏碁覦 語企ゼ 螻企慨. Netscape Communications Brendan Eich 1995.8.19 豕豐襦 JS螳 Netscape 觚殊一 覦
  • 8. 企 讌伎 , 瑚鍵 Java企 覿 讌朱 螳 瑚鍵螳 るゴ讌 蟾? 觜譟一! 螳 語 襷れ 蠍一 Java襯 覿 JavaScript 手 企 蟾? . 襷襦~!! Sun MicroSystems Bill Joy
  • 9. 蠏碁 覦 蟯螻 企襷 JavaScript Java企 Bill Joy 覈視 蟆一 伎る 覦語
  • 10. 襷一 壱企Ν襷朱, 企 ろ JavaScript れ 覿 OPEN
  • 11. JS 覦 螻殊 2 蠍襦覯 IT蠍一れ 覲瑚鴬朱 JS襯 3 れ UX襯 螳讌 危襴貅伎 煙 Google Map 5 iOS Web Browser Flash 覩語, 朱 JS 4 2.0, HTML5 覿 JS 覦 襷 6 Android Web Browser 磯殊 Flash 覩語 1 豢 る 螳 Toy Language 豬蠍
  • 12. JS ロ る覿 る Open Source 383,185 Github JavaScript repository
  • 13. ロ れ 覘讌 襷り, . (dot) JS 襯 覿 螻糾蠍 Whatever _____ . JS
  • 14. JavaScript Browser Library Desktop Server-Side JavaScript Application JS in Device, IoT Database with JSON 螳讌 覿朱 覦
  • 15. Browser Library Browser Library ServerSide JavaScript Desktop Application Database with JSON JS in Device, IoT 螳 Util 炎鴬 殊企襴覿, jQuery, Underscore, Zepto HTML5 螻 殊企襴, Three.js, Socket.io, Raphael 蠏碁Μ螻, MVC 襯 , Backbone.js, Angular.js, Ember.js Complie Javascript蟾讌 れ 覦 CoffeeScript, TypeScript, Dart, JSX 伎 Web 危襴貅伎企朱 譴 企ゴ
  • 16. Server Side Javascript Browser Library ServerSide JavaScript Desktop Application Database with JSON JS in Device, IoT 覯 覦ろ襴渚碁ゼ 襴 讌 蟾? 蟲蠍 v8 JS 讌 覯 企 JavaScript れ at NPM Total : 104,651
  • 17. 覯 JS襯 れ 覘譯? Spring Framework Node.js PHP on 蠍一ヾ 弮 語伎 螳 覯 觜るゼ 螳覦 蟆 Browser Library ServerSide JavaScript Desktop Application Database with JSON JS in Device, IoT Linux Apache Java on Tomcat Lalavel Framework express.js Framework
  • 18. Desktop App Browser Library ServerSide JavaScript Desktop Application Database with JSON JS in Device, IoT 一ろ 危襴貅伎 濠鍵襦 襷 讌 蟾? 轟 觚殊一襯 覯企 蠍 覓語 覦朱 螳 覦覯 谿剰鍵 Web App Desktop App
  • 19. Desktop App Browser Library ServerSide JavaScript Desktop Application Database with JSON JS in Device, IoT Node-Webkit 企殊伎誤語 蠍一 麹血, る 覯 蠍一 Node.js襯 Node.js 螳 蟆れ 襦語 蟆
  • 20. Database with JSON Browser Library ServerSide Javascript Desktop Application Database with JSON JS in Device, IoT NoSQL 一危磯伎 mongoDB 襾狩 讌 一危磯伎 ろ JSON ろ殊 覓語襯 (JavaScript Object Notation)
  • 21. JS in Device, IoT Browser Library ServerSide Javascript Desktop Application Database with JSON JS in Device, IoT Raspberry Pi Node.js れ螳 Device 企ゼ JS Code襦 with pi.js
  • 22. 伎 覓伎瑚 螳覦 覲朱 苦給 伎企 覦 蟇碁!
  • 24. 螳覦 譯殊 ? 譯殊 覈, Full Stack JS襯 伎 螳覦 譯殊襦 覲願鍵 襦語 螳覦 譴朱 覯蟾讌! 覃 蟆朱 觜蟲 襦讌 碁Μ?
  • 25. 襦語 螳覦 襦語 蟲 覿 殊企襴 螳覦蟆 蟲豢 り 螳覦/ ろ 覦壱蟆 蟲豢 1 2 3 4 5 6 7 8 焔 豕 覦壱 9
  • 26. 蟲 覿 kり 螳朱 企讌 觚襦 l 豌豌 觚襦 企れ m譴 豈磯 螳 讌襦 觜殊 k 豕蟾讌 企 蟆 譬襭
  • 27. 蠍一 蟲 Multi Play襯 る 貅 郁屋 (WebSocket) Game Status 讌伎 (Do not replace URL) 螳 一危 旧 蟆 朱 覃伎 螳煙伎
  • 29. JS ? 譴覲 貊 蟇, 一 レ, 貊 手 讌 轟 螳 襷レ 蠍 覓語 磯 螻殊
  • 30. JavaScript Full Stack 覈 JavaScript蟯 蠍一襷朱 Client MVC Framework Server Platform Server MVC Framework NoSQL DB
  • 31. 殊企襴 There are too many libraries 襦語 殊企襴襯 蟆 覓伎 ! るゴ蟆 殊企襴 襴曙煙 (碁Μ 炎鴬 螳)
  • 33. 螳覦蟆 蟲豢 伎 Notepad 螳覦讌 IDE, WebStorm 9 貊 覿, れ螳 貊 豌危, ETC.
  • 34. Project Scaffolding 豌 覲旧伎 螳覦讌 Scaffolding 碁Μ磯ゼ 伎 螳覦 蟆 誤 YEOMAN, GRUNT-INIT 貉るЖ ろ朱 襦 启 れ
  • 35. 貉るЖ襦 殊企襴 覲旧 殊企襴 蟯襴 Bower 碁Μ磯ゼ 伎 貉るЖ 所 覦ろ襴渚 殊企襴襯 蟯襴 bower install jquery bower search underscore < File result > bower_components/jquery bower_components/underscore
  • 36. Chrome Debugger 讌覲企 覦ろ襴渚 覯蟾 蟆 watch runtime scope variables
  • 37.
  • 38. UI/UX り 豕螻 UXり 蟲 蠏碁
  • 39. 覃 り Login Dashboard Single Game Multi Robby Option Score Board Multi Game
  • 40. 蠍一 Web Socket Server Node.js express.js socket.io MongoDB Mongoose.js Client MVC Framework Backbone.js UI Effect Animate.css Network Socket.io-client Game Stage Canvas & WebGL Build with Grunt Node-webkit (for Mac, windows) Phonegap (for Android, iOS, ETC)
  • 41. Modeling り DB覈語, 覯 企殊伎誤 讓曙 蠏碁襦 Server JSON DB JSON Client JSON
  • 42. Model Schema 覲 螳豌. 語覲伎 語 覲
  • 43. Model Schema 覃郁 覦 覲 螳豌. 覦 join 覲企 users襦 覈 觚 貉 Push 覦 燕 owner 蟆
  • 44. Model Schema 覃郁 覲 螳豌 碁Μ 覃伎 覦一願骸 れ 覲
  • 45. Model Schema 螳碁襦 豕 襯 , Score 貊 蠍磯 ScoreBoard 覲
  • 46. Client Architecture 觀一 覈語 襦讌 殊蠍 JavaScript JavaScript 螳覦 蠏覈螳 貉れ覃伎, るジ 語伎 螳覦 企れ (MVC, Facade, Singleton, ETC) 螳 企れ 螳 覿 !
  • 47. Client Architecture 伎 JavaScript MVC 伎 伎 伎 覯 API 旧 覃伎 覃 螳煙 Client Side MV* Framework
  • 48. Server Architecture Server Platform, Node.js Server MVC Framework, express.js NoSQL Database, mongoDB
  • 49. Server Architecture Account Manager : 螳螻 襦蠏語語 企
  • 50. Server Architecture Game Manager : 覃 蟆 蟯襴
  • 52. 碁Μ 襦讌 蟲 2谿覦一 : matrix[x][x] Event Tick 讌襷 觚襦 企 焔 豢 覦 れ 豌危 讌 觚襦 豢覃 覦一伎 豢螳 譴 谿覃 蟇/れ 豢螳
  • 53. 碁Μ ろ伎 豐蠍壱 2谿 覦一伎 覃伎朱 蠏碁Μ覃
  • 54. 碁Μ 觚襦 覈 螳 れ 觚襦 豢 豌危 觚襦
  • 55. Stage Canvas Flag螳 1企 drawBlock drawBlock 企 螳朱 canvas 蠏碁殊 蠏碁Μ 襦讌
  • 56. Draw Game Stage 2D Stage in Canvas 3D Stage in WebGL
  • 57. WebGL Now Global Coverage 48.27% + 26.37% = 74.64%
  • 58. Data Handling 企殊伎誤語 燕 JavaScript Object螳 覯蟾讌 覲 蠏碁襦 . (ORM ) Create Object from Client (Browser) Web Server NoSQL Database Pass-thru without converting!!
  • 59. Cli/Server Network Socket Communication on螻 emit 襷覯 Client Code socket.emit(sendMessage, data); socket.on(receive, function(){ alert(Server received Message); }); socket.on(sendMessage, function(data){ socket.broadcast.emit(receive); }); Server Code
  • 61. JS Build Environment with Grunt.js 覦ろ襴渚 ろ 螳讌 蠏谿 れ 貉るЖ 覯 ろ > js 豢, css 豕 gruntfile.js (れ ) GRUNT ろ (with ONE Command) 豕譬 一覓 襭
  • 62. JavaScript Deploy Deploy 蟆 蟲豢, git push螳 覦覃 (git hook 伎) 螳覦 覯 朱 Deploy Deploy? grunt.js ろ 襯 伎
  • 63. Packaging N Device Webs good parts, can run everywhere MOBILE APP DESKTOP APP Web Product HTML, CSS, JS Tizen
  • 64. Phonegap 蟆 WebView襯 れ危磯 蟲譟 れ危磯 API JS覯 (Bridge) WebView Native App OS
  • 65. Node-Webkit 蟆 一ろ 危襴貅伎 . , OSX, Ubuntu 讌 DESKTOP APP Build Build Build
  • 66. Package 覦壱 OS覲襦, ろ 螳ロ, 襴 危襴貅伎 觜 襭
  • 67. Code is Open at Github https://github.com/Jinkwon/tetris.js
  • 69. What do you want to do? Front-End 覿 Back-End蟾讌 語 伎 PHP螳 蠏殊 語 る, 觜襯 螳覦 狩襾殊る 蠏 豌危襷 JavaScript Full Stack Its for StartUp!!!!
  • 70. Let's Make something nice! Thanks!!! lee.jinkwon@nhn.com