SlideShare a Scribd company logo
1 of 40
Download to read offline
“Node.js-Engined”
                      open source map service

                            - Node.js로 구현한 Open Source 맵 서비스



                                                 Doh Kyoung Tae




12년	 11월	 27일	 화
TOC

                   What? Node.js?

                   Why Node.js?

                   Yes! Node.js

                   NodeMap!

                   Benchmark Test




12년	 11월	 27일	 화
What? Node.js?




12년	 11월	 27일	 화
What? Node.js?
                            Server-Side Javascript




12년	 11월	 27일	 화
What? Node.js?
                            Server-Side Javascript
                            Made by V8 Engine
                            (= Chrome Javascript Engine)




12년	 11월	 27일	 화
What? Node.js?
                            Server-Side Javascript
                            Made by V8 Engine
                            (= Chrome Javascript Engine)
                                 vs Rhino, SpiderMonkey




12년	 11월	 27일	 화
What? Node.js?
                            Server-Side Javascript
                            Made by V8 Engine
                            (= Chrome Javascript Engine)
                                 vs Rhino, SpiderMonkey


                            Common JS Spec.




12년	 11월	 27일	 화
What? Node.js?
                            Server-Side Javascript
                            Made by V8 Engine
                            (= Chrome Javascript Engine)
                                 vs Rhino, SpiderMonkey


                            Common JS Spec.
                                 Modules 1.0 spec draft




12년	 11월	 27일	 화
What? Node.js?
                            Server-Side Javascript
                            Made by V8 Engine
                            (= Chrome Javascript Engine)
                                 vs Rhino, SpiderMonkey


                            Common JS Spec.
                                 Modules 1.0 spec draft

                            company, community, developer




12년	 11월	 27일	 화
Why? Node.js


                         ??




12년	 11월	 27일	 화
Why? Node.js
     1. Event Loop
         Apache Uses one thread/connection
         Nginx doesn’t use thread
         It uses event Loop


                                             thread vs event loop




12년	 11월	 27일	 화
Why? Node.js
     1. Event Loop
         Apache Uses one thread/connection
         Nginx doesn’t use thread
         It uses event Loop


                                             thread vs event loop




12년	 11월	 27일	 화
Why? Node.js
     2.Non-block I/O

                           synchronous block IO              asynchronous non-block IO




                                                  vs




                   http://www.ibm.com/developerworks/linux/library/l-async/

12년	 11월	 27일	 화
Why? Node.js
     2.Non-block I/O

                           synchronous block IO              asynchronous non-block IO




                                                  vs




                   http://www.ibm.com/developerworks/linux/library/l-async/

12년	 11월	 27일	 화
Why? Node.js
     2.Non-block I/O

                           synchronous block IO              asynchronous non-block IO




                                                  vs




                   http://www.ibm.com/developerworks/linux/library/l-async/

12년	 11월	 27일	 화
Why? Node.js
    2.Non-block I/O


          Blocking code




12년	 11월	 27일	 화
Why? Node.js
    2.Non-block I/O


          Blocking code




          Non - blocking code




12년	 11월	 27일	 화
Why? Node.js
    2.Non-block I/O


          Blocking code




          Non - blocking code




12년	 11월	 27일	 화
Yes! Node.js



12년	 11월	 27일	 화
Yes! Node.js
    Modules
                                                    java - maven
  /Users/dev/node.js> npm install                   Linux - rpm
                                    node.js - npm
  .....
                                                    homebrew - brew
  exports
  .defineFunction = function(){
          …….
  }

  var usingFunction =
  require(‘ModuleA’)
  .defineFunction;




12년	 11월	 27일	 화
Yes! Node.js
    NVM - Node.js Version Manager




                                    Preventing headache
                                    from Dependency Hell.




12년	 11월	 27일	 화
Yes! Node.js
    NVM - Node.js Version Manager   真っ白に燃え尽きたジョーは、どこか満足そう
                                    な顔をしている



                                         Preventing headache
                                         from Dependency Hell.




12년	 11월	 27일	 화
Node Map




                   •   Image Service
                   •   Vector Service
                   •   Tile Making
                   •   Using Canvas - Image Effect
12년	 11월	 27일	 화
Node Map
    1. DB Connector - pg                                           /Users/dev/node.js> npm install pg

              pg.connect(conString, function(err, client) {
              !      client.query("SELECT NOW() as when", function(err, result) {
              !      !     console.log("Row count: %d",result.rows.length); / 1
                                                                             /
              !      !     console.log("Current year: %d", result.rows[0].when.getYear());
              !      });
                   });




                                                         pg module



12년	 11월	 27일	 화
Node Map
    1. pg - Why not mongo?



                             •   Poor Spatial Index
                                 - Just Point support
                             •   Post GIS Limitation
                                 - Block I/O
                                 - So, DB can be bottle neck




                             •   Alternative Way
                                 - couch DB

12년	 11월	 27일	 화
Node Map
    2. Web module - express   /Users/dev/node.js> npm install express




                                        •   MVC Web Framework
                                             - jade support
                                             - like spring in java
                                        •   Always Top Module
                                             - npm registry




12년	 11월	 27일	 화
Node Map
    3. Image Processing - Node-Canvas    /Users/dev/node.js> npm install canvas




                                        var Canvas = require('canvas')
                                          , canvas = new Canvas(200,200)
                                          , ctx = canvas.getContext('2d');
                                        ctx.beginPath();
                                        ctx.lineTo(50, 102);
                                        ctx.lineTo(50 + te.width, 102);
                                        ctx.stroke();




12년	 11월	 27일	 화
At a glance




12년	 11월	 27일	 화
At a glance




12년	 11월	 27일	 화
Demo




12년	 11월	 27일	 화
Test - 20user
                   A corp. – C Engine   B corp. – JAVA Engine   NodeMap




12년	 11월	 27일	 화
Test - 20user
                   A corp. – C Engine         B corp. – JAVA Engine             NodeMap




                                        A product response time : AVG 770 ms
                                        B product response time : AVG 1363 ms
                                        NodeMap response time : AVG 536 ms




12년	 11월	 27일	 화
Test - 50user
                   A corp. – C Engine   B corp. – JAVA Engine   NodeMap




12년	 11월	 27일	 화
Test - 50user
                   A corp. – C Engine         B corp. – JAVA Engine              NodeMap




                                         A product response time : AVG 1955ms
                                        B product response time : AVG 20513 ms
                                         NodeMap response time : AVG 1351ms




12년	 11월	 27일	 화
Test - 100user
                   A corp. – C Engine   B corp. – JAVA Engine   NodeMap




12년	 11월	 27일	 화
Test - 100user
                   A corp. – C Engine        B corp. – JAVA Engine             NodeMap




                                        A product response time : AVG 3841ms
                                         B product response time : AVG - ms
                                        NodeMap response time : AVG 2635ms




12년	 11월	 27일	 화
Insight from Test


                          VS




12년	 11월	 27일	 화
Where? NodeMap!
                                       @iam_keen
                                       ehrudxo@gmail.com




                   https://github.com/ehrudxo/nodeMap


12년	 11월	 27일	 화
Beyond the border




                     Between Client & Server language


12년	 11월	 27일	 화
Thank You!
                      •   Q&A




12년	 11월	 27일	 화

More Related Content

What's hot

Node.js의 도입과 활용
Node.js의 도입과 활용Node.js의 도입과 활용
Node.js의 도입과 활용Jin wook
 
Tips and experience_of_dx12_engine_development._ver_1.2
Tips and experience_of_dx12_engine_development._ver_1.2Tips and experience_of_dx12_engine_development._ver_1.2
Tips and experience_of_dx12_engine_development._ver_1.2YEONG-CHEON YOU
 
Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기YEONG-CHEON YOU
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012devCAT Studio, NEXON
 
이승재, M2 AI코드 개발 생산성 향상 사례, NDC2013
이승재, M2 AI코드 개발 생산성 향상 사례, NDC2013이승재, M2 AI코드 개발 생산성 향상 사례, NDC2013
이승재, M2 AI코드 개발 생산성 향상 사례, NDC2013devCAT Studio, NEXON
 
CUDA 프로그래밍 기초 MODUCON2018
CUDA 프로그래밍 기초 MODUCON2018CUDA 프로그래밍 기초 MODUCON2018
CUDA 프로그래밍 기초 MODUCON2018Shengzhe Li
 
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기sung ki choi
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)YEONG-CHEON YOU
 
Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015sung yong jung
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략YEONG-CHEON YOU
 
[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임sung ki choi
 
임태현, 서버점검 제로에의 도전, NDC2011
임태현, 서버점검 제로에의 도전, NDC2011임태현, 서버점검 제로에의 도전, NDC2011
임태현, 서버점검 제로에의 도전, NDC2011devCAT Studio, NEXON
 
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~YEONG-CHEON YOU
 
서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기YEONG-CHEON YOU
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기현철 조
 
20160427 ndc16 글로벌 원빌드 모바일 게임 런칭과 라이브 개발
20160427 ndc16 글로벌 원빌드 모바일 게임 런칭과 라이브 개발20160427 ndc16 글로벌 원빌드 모바일 게임 런칭과 라이브 개발
20160427 ndc16 글로벌 원빌드 모바일 게임 런칭과 라이브 개발Heeyoung Lee
 
중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직Hoyoung Choi
 
리얼타임 렌더링에 대해
리얼타임 렌더링에 대해리얼타임 렌더링에 대해
리얼타임 렌더링에 대해필성 권
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012devCAT Studio, NEXON
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012devCAT Studio, NEXON
 

What's hot (20)

Node.js의 도입과 활용
Node.js의 도입과 활용Node.js의 도입과 활용
Node.js의 도입과 활용
 
Tips and experience_of_dx12_engine_development._ver_1.2
Tips and experience_of_dx12_engine_development._ver_1.2Tips and experience_of_dx12_engine_development._ver_1.2
Tips and experience_of_dx12_engine_development._ver_1.2
 
Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
 
이승재, M2 AI코드 개발 생산성 향상 사례, NDC2013
이승재, M2 AI코드 개발 생산성 향상 사례, NDC2013이승재, M2 AI코드 개발 생산성 향상 사례, NDC2013
이승재, M2 AI코드 개발 생산성 향상 사례, NDC2013
 
CUDA 프로그래밍 기초 MODUCON2018
CUDA 프로그래밍 기초 MODUCON2018CUDA 프로그래밍 기초 MODUCON2018
CUDA 프로그래밍 기초 MODUCON2018
 
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)
 
Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략
 
[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임
 
임태현, 서버점검 제로에의 도전, NDC2011
임태현, 서버점검 제로에의 도전, NDC2011임태현, 서버점검 제로에의 도전, NDC2011
임태현, 서버점검 제로에의 도전, NDC2011
 
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
 
서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
 
20160427 ndc16 글로벌 원빌드 모바일 게임 런칭과 라이브 개발
20160427 ndc16 글로벌 원빌드 모바일 게임 런칭과 라이브 개발20160427 ndc16 글로벌 원빌드 모바일 게임 런칭과 라이브 개발
20160427 ndc16 글로벌 원빌드 모바일 게임 런칭과 라이브 개발
 
중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직
 
리얼타임 렌더링에 대해
리얼타임 렌더링에 대해리얼타임 렌더링에 대해
리얼타임 렌더링에 대해
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
 

Similar to Node map keynote -FOSS4G Osaka

[Hello world]nodejs helloworld chaesuwon
[Hello world]nodejs helloworld chaesuwon[Hello world]nodejs helloworld chaesuwon
[Hello world]nodejs helloworld chaesuwonNAVER D2
 
Node.js 리뷰
Node.js 리뷰Node.js 리뷰
Node.js 리뷰Ray Park
 
[C5]deview 2012 nodejs
[C5]deview 2012 nodejs[C5]deview 2012 nodejs
[C5]deview 2012 nodejsNAVER D2
 
Java (spring) vs javascript (node.js)
Java (spring) vs javascript (node.js)Java (spring) vs javascript (node.js)
Java (spring) vs javascript (node.js)류 영수
 
Single-page Application
Single-page ApplicationSingle-page Application
Single-page ApplicationSangmin Yoon
 
Nodejs발표자료 - 팀 세미나용
Nodejs발표자료 - 팀 세미나용 Nodejs발표자료 - 팀 세미나용
Nodejs발표자료 - 팀 세미나용 SuHyun Jeon
 
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기) FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기) YoungSu Son
 
모바일 크로스플랫폼 비교 - 월간슬라이드 4월
모바일 크로스플랫폼 비교 - 월간슬라이드 4월모바일 크로스플랫폼 비교 - 월간슬라이드 4월
모바일 크로스플랫폼 비교 - 월간슬라이드 4월월간 IT 슬라이드
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyondJae Sung Park
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Minsu Park
 
빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.xTerry Cho
 
Node.js 팀 스터디 발표자료.
Node.js 팀 스터디 발표자료.Node.js 팀 스터디 발표자료.
Node.js 팀 스터디 발표자료.SeungWoo Lee
 
[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
 
Best practice instagram
Best practice   instagramBest practice   instagram
Best practice instagramWooseung Kim
 
Backend Master | 3.1.1 Build - JS build tools
Backend Master | 3.1.1 Build - JS build toolsBackend Master | 3.1.1 Build - JS build tools
Backend Master | 3.1.1 Build - JS build toolsKyunghun Jeon
 
[211]대규모 시스템 시각화 현동석김광림
[211]대규모 시스템 시각화 현동석김광림[211]대규모 시스템 시각화 현동석김광림
[211]대규모 시스템 시각화 현동석김광림NAVER D2
 
Node.js
Node.jsNode.js
Node.jsymtech
 

Similar to Node map keynote -FOSS4G Osaka (20)

[Hello world]nodejs helloworld chaesuwon
[Hello world]nodejs helloworld chaesuwon[Hello world]nodejs helloworld chaesuwon
[Hello world]nodejs helloworld chaesuwon
 
Node.js 리뷰
Node.js 리뷰Node.js 리뷰
Node.js 리뷰
 
[C5]deview 2012 nodejs
[C5]deview 2012 nodejs[C5]deview 2012 nodejs
[C5]deview 2012 nodejs
 
Java (spring) vs javascript (node.js)
Java (spring) vs javascript (node.js)Java (spring) vs javascript (node.js)
Java (spring) vs javascript (node.js)
 
Single-page Application
Single-page ApplicationSingle-page Application
Single-page Application
 
Nodejs발표자료 - 팀 세미나용
Nodejs발표자료 - 팀 세미나용 Nodejs발표자료 - 팀 세미나용
Nodejs발표자료 - 팀 세미나용
 
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기) FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
 
모바일 크로스플랫폼 비교 - 월간슬라이드 4월
모바일 크로스플랫폼 비교 - 월간슬라이드 4월모바일 크로스플랫폼 비교 - 월간슬라이드 4월
모바일 크로스플랫폼 비교 - 월간슬라이드 4월
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyond
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)
 
Deno
DenoDeno
Deno
 
빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x
 
Node.js 팀 스터디 발표자료.
Node.js 팀 스터디 발표자료.Node.js 팀 스터디 발표자료.
Node.js 팀 스터디 발표자료.
 
Node week1
Node week1Node week1
Node week1
 
[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
 
Best practice instagram
Best practice   instagramBest practice   instagram
Best practice instagram
 
Backend Master | 3.1.1 Build - JS build tools
Backend Master | 3.1.1 Build - JS build toolsBackend Master | 3.1.1 Build - JS build tools
Backend Master | 3.1.1 Build - JS build tools
 
[211]대규모 시스템 시각화 현동석김광림
[211]대규모 시스템 시각화 현동석김광림[211]대규모 시스템 시각화 현동석김광림
[211]대규모 시스템 시각화 현동석김광림
 
Fastboot
FastbootFastboot
Fastboot
 
Node.js
Node.jsNode.js
Node.js
 

Recently uploaded

Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
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
 
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월호 목차캐드앤그래픽스
 
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
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 

Recently uploaded (6)

Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
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)
 
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월호 목차
 
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 ...
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 

Node map keynote -FOSS4G Osaka

  • 1. “Node.js-Engined” open source map service - Node.js로 구현한 Open Source 맵 서비스 Doh Kyoung Tae 12년 11월 27일 화
  • 2. TOC What? Node.js? Why Node.js? Yes! Node.js NodeMap! Benchmark Test 12년 11월 27일 화
  • 4. What? Node.js? Server-Side Javascript 12년 11월 27일 화
  • 5. What? Node.js? Server-Side Javascript Made by V8 Engine (= Chrome Javascript Engine) 12년 11월 27일 화
  • 6. What? Node.js? Server-Side Javascript Made by V8 Engine (= Chrome Javascript Engine) vs Rhino, SpiderMonkey 12년 11월 27일 화
  • 7. What? Node.js? Server-Side Javascript Made by V8 Engine (= Chrome Javascript Engine) vs Rhino, SpiderMonkey Common JS Spec. 12년 11월 27일 화
  • 8. What? Node.js? Server-Side Javascript Made by V8 Engine (= Chrome Javascript Engine) vs Rhino, SpiderMonkey Common JS Spec. Modules 1.0 spec draft 12년 11월 27일 화
  • 9. What? Node.js? Server-Side Javascript Made by V8 Engine (= Chrome Javascript Engine) vs Rhino, SpiderMonkey Common JS Spec. Modules 1.0 spec draft company, community, developer 12년 11월 27일 화
  • 10. Why? Node.js ?? 12년 11월 27일 화
  • 11. Why? Node.js 1. Event Loop Apache Uses one thread/connection Nginx doesn’t use thread It uses event Loop thread vs event loop 12년 11월 27일 화
  • 12. Why? Node.js 1. Event Loop Apache Uses one thread/connection Nginx doesn’t use thread It uses event Loop thread vs event loop 12년 11월 27일 화
  • 13. Why? Node.js 2.Non-block I/O synchronous block IO asynchronous non-block IO vs http://www.ibm.com/developerworks/linux/library/l-async/ 12년 11월 27일 화
  • 14. Why? Node.js 2.Non-block I/O synchronous block IO asynchronous non-block IO vs http://www.ibm.com/developerworks/linux/library/l-async/ 12년 11월 27일 화
  • 15. Why? Node.js 2.Non-block I/O synchronous block IO asynchronous non-block IO vs http://www.ibm.com/developerworks/linux/library/l-async/ 12년 11월 27일 화
  • 16. Why? Node.js 2.Non-block I/O Blocking code 12년 11월 27일 화
  • 17. Why? Node.js 2.Non-block I/O Blocking code Non - blocking code 12년 11월 27일 화
  • 18. Why? Node.js 2.Non-block I/O Blocking code Non - blocking code 12년 11월 27일 화
  • 20. Yes! Node.js Modules java - maven /Users/dev/node.js> npm install Linux - rpm node.js - npm ..... homebrew - brew exports .defineFunction = function(){ ……. } var usingFunction = require(‘ModuleA’) .defineFunction; 12년 11월 27일 화
  • 21. Yes! Node.js NVM - Node.js Version Manager Preventing headache from Dependency Hell. 12년 11월 27일 화
  • 22. Yes! Node.js NVM - Node.js Version Manager 真っ白に燃え尽きたジョーは、どこか満足そう な顔をしている Preventing headache from Dependency Hell. 12년 11월 27일 화
  • 23. Node Map • Image Service • Vector Service • Tile Making • Using Canvas - Image Effect 12년 11월 27일 화
  • 24. Node Map 1. DB Connector - pg /Users/dev/node.js> npm install pg pg.connect(conString, function(err, client) { ! client.query("SELECT NOW() as when", function(err, result) { ! ! console.log("Row count: %d",result.rows.length); / 1 / ! ! console.log("Current year: %d", result.rows[0].when.getYear()); ! }); }); pg module 12년 11월 27일 화
  • 25. Node Map 1. pg - Why not mongo? • Poor Spatial Index - Just Point support • Post GIS Limitation - Block I/O - So, DB can be bottle neck • Alternative Way - couch DB 12년 11월 27일 화
  • 26. Node Map 2. Web module - express /Users/dev/node.js> npm install express • MVC Web Framework - jade support - like spring in java • Always Top Module - npm registry 12년 11월 27일 화
  • 27. Node Map 3. Image Processing - Node-Canvas /Users/dev/node.js> npm install canvas var Canvas = require('canvas') , canvas = new Canvas(200,200) , ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.lineTo(50, 102); ctx.lineTo(50 + te.width, 102); ctx.stroke(); 12년 11월 27일 화
  • 28. At a glance 12년 11월 27일 화
  • 29. At a glance 12년 11월 27일 화
  • 31. Test - 20user A corp. – C Engine B corp. – JAVA Engine NodeMap 12년 11월 27일 화
  • 32. Test - 20user A corp. – C Engine B corp. – JAVA Engine NodeMap A product response time : AVG 770 ms B product response time : AVG 1363 ms NodeMap response time : AVG 536 ms 12년 11월 27일 화
  • 33. Test - 50user A corp. – C Engine B corp. – JAVA Engine NodeMap 12년 11월 27일 화
  • 34. Test - 50user A corp. – C Engine B corp. – JAVA Engine NodeMap A product response time : AVG 1955ms B product response time : AVG 20513 ms NodeMap response time : AVG 1351ms 12년 11월 27일 화
  • 35. Test - 100user A corp. – C Engine B corp. – JAVA Engine NodeMap 12년 11월 27일 화
  • 36. Test - 100user A corp. – C Engine B corp. – JAVA Engine NodeMap A product response time : AVG 3841ms B product response time : AVG - ms NodeMap response time : AVG 2635ms 12년 11월 27일 화
  • 37. Insight from Test VS 12년 11월 27일 화
  • 38. Where? NodeMap! @iam_keen ehrudxo@gmail.com https://github.com/ehrudxo/nodeMap 12년 11월 27일 화
  • 39. Beyond the border Between Client & Server language 12년 11월 27일 화
  • 40. Thank You! • Q&A 12년 11월 27일 화