[발표] 멜팅팟 서버 사이드...

80
VOIDSOFT. 2014.5.22 서버 사이드 레벨에서 자바 스크립트 엔진 node.js가능성한계 VOIDSOFT. 2014.3.22 보이드소프트 대표 김호광 2014.05.22 마이크로소프트 멜팅팟

Upload: dennis-kim

Post on 13-Jan-2015

750 views

Category:

Technology


7 download

DESCRIPTION

2014년 5월 22일 microsoft melting pot 세미나 node.js

TRANSCRIPT

Page 1: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

서버 사이드 레벨에서 자바 스크립트 엔진

node.js의 가능성과 한계

VOIDSOFT. 2014.3.22

보이드소프트 대표 김 호 광

2014.05.22 마이크로소프트 멜팅팟

Page 2: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

WHO AM I ?

- MMORPG 붉은 보석 보안

- 해외 게임 포털 보안 구축

- MMORPG 드래곤볼 온라인 보안

- MMORPG 드라고나 온라인 보안

- MMORPG 퀸스 블레이드

- 나이키 런 더 시티 for Kakao 보안, PM

- NOW – Mobile Game Portal 구축 중

Page 3: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

WHO AM I ?

ONE SHOW

2014 BRANDED ENTERTAINMENT BRONZE PENCIL

수상

Page 4: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

WHO AM I ?

덕분에…일복!!!

나이키 글로벌의 사랑을 받아 6월 부터한달마다 뭔가런칭 예정

나이키 2015년까지 프로젝트예약

Page 5: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

WHO AM I ?

2014년 10개 게임 런칭 지원 예정

개발 환경과 운영체제, 언어, DB까지 일치하는 것이 없는…

ㅜㅜ

Page 6: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

제 1장

미소녀 아이돌 출현!

Page 7: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

모바일 게임 업계 토막 상식

모바일 게임 업계는 SI와

매우 다.르.다

Page 8: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

모바일 게임 업계 토막 상식

주로 사용되는 언어

약 10 종

Page 9: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

모바일 게임 업계 토막 상식

Python

Java Script

Ruby

Perl

node.js

PHP

JSP

Java

C#

C++

Asp

Asp.net다양한 생태계

Page 10: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

모바일 게임 업계 토막 상식

주로 사용되는 Database

약 10 종

Page 11: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

모바일 게임 업계 토막 상식

SQLite

Hbase

카우치베이스

My-sql

MariaDB

MongoDB

카산드라

Redis (이 친구도 디비 취급 중)

MS-SQL

ORACLE (본적있는가? ㅜㅜ)다양한삽질 ㅠㅠ

Page 12: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

모바일 게임 업계 토막 상식

Avant-garde 생태계

Page 13: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

모바일 게임 업계 토막 상식

Java 세상과 다른

히피 생태계

Page 14: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

모바일 게임 업계 토막 상식

혼돈의 무림.

모바일 게임 세상!

Page 15: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

모바일 게임 업계 토막 상식

그 혼돈을 끝낼

미소녀 아이돌 등장!

Page 16: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

Page 17: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

모바일 게임 업계 토막 상식

node.js

Page 18: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

모바일 게임 업계 토막 상식

장점과 자세한 설명

과감히 생.략!!!

Page 19: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

모바일 게임 업계 토막 상식

이유는…

Page 20: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

모바일 게임 업계 토막 상식

Page 21: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

제 2장

게임 업계 히트 이유!

Page 22: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

첫째

개발 속도가 빠르다

Page 23: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

둘째

Unity3d script로

node.js 통합 개발

Page 24: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

셋째

웹 프로그래머가

서버 프로그래머로 !!!

Page 25: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

이유는?

카카오톡 게임도 이젠

월 매출 50만원 시대!

Page 26: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

이유는?

‘모’아니면 ‘도‘

Page 27: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

이유는?

개발 기간은 짧아지고

평균 6개월

Page 28: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

이유는?

마케팅 비용은 상승

평균 5억

Page 29: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

이유는?

Prototype 빠른

Node.js 포텐셜 폭발!!!

Page 30: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

이유는?

하지만…

Page 31: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

이유는?

현실은…

Page 32: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

제 3장

node.js Live CASE

Page 33: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

개발 환경

우분투

node.js

my-SQL

vCore Cloud

4 Vcore 4GB

메모리 캐시

Page 34: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

Open후 상황

게임은 중박!!!

100만원 / 시간당 매출

Page 35: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

Open후 상황

Vcore 당 500~ 1000

유저 동접

Page 36: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

Open후 상황

서버는 무한 증설 시작!

인프라 비용 쯤이야…

Page 37: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

Open후 상황

CLOUD 장점 발휘!

Page 38: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

Open후 상황

운영은…

Page 39: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

Open후 상황

Hell Gate

Page 40: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

Open후 상황

node.js가 이유 없이

다운되기 때문

Page 41: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

Open후 상황

Forever로 살리던

Page 42: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

Open후 상황

서버 수를 늘리던

Page 43: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

Open후 상황

Logic 변경

하던지…

Page 44: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

Open후 상황

Random

Down

Page 45: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

Open후 상황

Item

다운과 함께 사라지고

Page 46: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

Open후 상황

召喚

주문 발동!

Page 47: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

Open후 상황

새벽에 소환 ㅠㅠ

그리고

Live Debugging

Page 48: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

제 4장

node.js 삽질하다

Page 49: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

Live Debugging

근원을 알자

Page 50: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

Live Debugging

node.js의 특징

Page 51: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

Live Debugging

Java script V8

원래는 서버 엔진 아님

Page 52: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

Live Debugging

G.C

UN-control

Page 53: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

Live Debugging

String 파싱

NO – Answer

Page 54: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

Live Debugging

1 Thread

Event driven

Page 55: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

튜닝 포인트

#1

Page 56: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

튜닝 포인트 #1

기존

4 vCore

4 node.JS Server

Page 57: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

튜닝 포인트 #1

변경

4 vCore

2 node.JS Server

Page 58: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

다운 21.5%

감소

튜닝 포인트 #1

Page 59: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

튜닝 포인트 #1

vCore는 Hyper Thread

여러 개를 섞어 1 vCore

Page 60: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

튜닝 포인트 #1

OS 여유

node.js node.js

Page 61: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

튜닝 포인트 #1

Thread 교착

Page 62: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

튜닝 포인트 #2

마공의 등장

Page 63: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

튜닝 포인트 #2

이기적인 클라우드 버그 이용

Page 64: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

튜닝 포인트 #2

VM 생성할 때 MAX Core

완료 후 4 core로 변경

Page 65: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

튜닝 포인트 #2

MYVM

Page 66: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

튜닝 포인트 #2

MYVM

NOTUsed

NOTUsed

NOTUsed

NOTUsed

NOTUsed

NOTUsed

NOTUsed

NOTUsed

NOTUsed

NOTUsed

VictimVM

Page 67: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

튜닝 포인트 #2

클라우드 리소스할당

알고리즘 이용

Page 68: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

튜닝 포인트 #2

Hidden API Script

vCore를 2 thread에서

4개로 변경

Page 69: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

튜닝 포인트 #2

HyperThread

HyperThread

HyperThread

HyperThread

1 VCore HyperThread

HyperThread

1 VCore

Page 70: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

다운 15.5%

감소

튜닝 포인트 #2

Page 71: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

튜닝 포인트 #3

Hello world

Page 72: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

문자열 (encryption)

타 웹 언어 or C

튜닝 포인트 #3

Page 73: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

DB 의존성 줄임

IIS 아웃풋 캐시 Ranking

튜닝 포인트 #3

Page 74: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

다운 3.5%

감소!!!

튜닝 포인트 #3

Page 75: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

삶의 지혜

Page 76: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

날림 Open 금지

Page 77: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

제발 ㅠ.ㅠ

Page 78: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

think

서비스 운영 시나리오

Page 79: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22

극복해야 할 문제와 비전

Page 80: [발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의

VOIDSOFT. 2014.5.22VOIDSOFT. 2014.3.22

보이드소프트 대표 김 호 광 (Dennis Kim)

[email protected]