SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
맛만 보자 Undertow
Jeff Lee
Who am i
초콜릿을 14년 동안 받아보지 못한 개발자… (ㅠ.ㅠ )
GRD ASKY (그래도 안생겨요)
http://blog.daum.net/dhlh0h34/107
먹통~ 먹통~ 왜~ 왜~
“1초에 30만명 접속"
중국 춘제 기차표 예매사이트 '먹통' 막은 알리바바
출처 : http://www.ajunews.com/view/20150120144132775
제주항공 홈페이지 '먹통'…특가 항공권 예매 전쟁 시작
출처 : http://www.hankyung.com/news/app/newsview.php?aid=201501206254g
코레일 예매 서비스 먹통…"원인 파악 중"
출처 : http://biz.newdaily.co.kr/news/article.html?no=10034418
한국시리즈 예매, 작년에 이어 올해도 먹통
출처 : http://m.mk.co.kr/sports/home/2014/1383520
저희 회사 서비스의 특징
서비스 접속의 80% 이상은 데이터베이스를 사
용하지 않는다.
우리 회사 서비스는 글로벌을 지향한다.
그런데 돈이 부족하다. (ㅠ.ㅠ )
파트너 서버
스마트 폰
데이터 베이스회사 서비스 서버
인터넷 트래픽의 폭발적 증가
PC 모바일 IoT
http://www.moneyone.co.kr/attachfile/images/000043/20130514151019435_N9HT2H6D.png
Nginx versus Apache
동시 접속자가 많아 질수록
ngnix가 apache보다 많은
요청을 처리한다.
동시 접속자가 많아져도
ngnix는 apache처럼 메모리
사용량이 많이 증가 하지 않
는다.
http://blog.webfaction.com/2008/12/a-little-holiday-present-10000-reqssec-with-nginx-2/
어떤 마법이 숨어 있을까요?
Apache
Ngnix
Socket Connection Thread
Socket Connection
Socket Connection
Thread
OS Kernel
or
Thread Pool
Socket Connection Thread
Web Framework Benchmarks (EC2)
https://www.techempower.com/benchmarks/#section=data-r9&hw=peak&test=plaintext
Undertow - 나도 물 좋아해요~
저류,
되돌아가는 물결,
역류
Undertow - 넌 누구니?
Undertow has a composition based architecture
that allows you to build a web server by
combining small single purpose handlers.
- Full Java EE servlet 3.1 container
- Low level non-blocking handler
http://undertow.io
왜~ Undertow를 쓸까?
겁니 가벼워요~
- core 라이브러리 1M
- 단순 웹 서버는 4MB 이하 힙 사이즈에서 동작
프로토콜 바꿔줘요~ (HTTP Upgrade)
- HTTP 1.1에서 다른 프로토콜로 변경 해줌.
- Upgrade: websocket
당근~ Web Socket 지원
- JSR-356 스펙을 포함한 웹 소켓을 완벽하게 지원
왜~ Undertow를 쓸까?
오~ Servlet 3.1 지원
- Java EE servlet 3.1 지원
어디 숨었니?
- 애플리케이션 안에 포함 가능
- 혼자 작동 가능
앗 너무 유연해~
- 미리 만들어진 핸들러를 필요한 만큼 가져다가 사용 가능
근본 있는 Undertow
XNIO
비동기 통신 라이브러리 (ex:Netty)
SSL 지원
http://xnio.jboss.org/
지원하는 프로토콜
HTTP
HTTPS
AJP(Apache JServ Protocol)
SPDY
HTTP2(Draft 15)
미리 만들어진 Handlers
Path
Virtual Host
Path Template
Date
Resource
Predicate
HTTP Continue
Websocket
Redirect
Trace
Header
IP Access Control
ACL
URL Decoding
Set Attribute
Rewrite
Graceful Shutdown
Proxy Peer Address
Show me the code
Method chaining 방식으로 개발
Handler 만들기
File Service
WebSocket
Reverse Proxy
Error Handling
Servlet Deployment
개발 관련 코드 사이트
Undertow Github
https://github.com/undertow-io/undertow
JBoss Wildfly Github (웹서버 확장)
https://github.
com/wildfly/wildfly/tree/master/undertow
훈훈한 마무으~리
서비스 요구 사항에 맞는 프레임워크를 선택하
세요.
- 프레임워크는 각자의 목적을 가지고 있습니다.
- 프레임워크의 특징을 잘 파악하여야 합니다.
- Undertow는 그 선택지 중 하나 입니다.

Contenu connexe

Tendances

[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임sung ki choi
 
JBoss EAP on Azure
JBoss EAP on Azure JBoss EAP on Azure
JBoss EAP on Azure rockplace
 
20141229 dklee docker
20141229 dklee docker20141229 dklee docker
20141229 dklee dockerDK Lee
 
Network 초보자를 위한 Netty
Network 초보자를 위한 NettyNetwork 초보자를 위한 Netty
Network 초보자를 위한 NettyChoulhyouc Lee
 
Meteor 0.3.6 Preview
Meteor 0.3.6 PreviewMeteor 0.3.6 Preview
Meteor 0.3.6 PreviewJuntai Park
 
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라NAVER D2
 
Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초Circulus
 
[PHPFest 2013] PHP 성능 향상 방법
[PHPFest 2013] PHP 성능 향상 방법[PHPFest 2013] PHP 성능 향상 방법
[PHPFest 2013] PHP 성능 향상 방법phpkorea
 
Web socket
Web socketWeb socket
Web socketymtech
 
톰캣 #08-웹서버 연동
톰캣 #08-웹서버 연동톰캣 #08-웹서버 연동
톰캣 #08-웹서버 연동GyuSeok Lee
 
문돌이가 가르치는 서버사이드 PHP
문돌이가 가르치는 서버사이드 PHP문돌이가 가르치는 서버사이드 PHP
문돌이가 가르치는 서버사이드 PHP동현 조
 
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.sung ki choi
 
자바 네트워크 소녀 Netty 리뷰
자바 네트워크 소녀 Netty 리뷰자바 네트워크 소녀 Netty 리뷰
자바 네트워크 소녀 Netty 리뷰Woojin Joe
 
Leadweb Nodejs
Leadweb NodejsLeadweb Nodejs
Leadweb Nodejs근호 최
 
Valet 으로 windows php 개발 환경 구성하기
Valet 으로 windows php 개발 환경 구성하기Valet 으로 windows php 개발 환경 구성하기
Valet 으로 windows php 개발 환경 구성하기KwangSeob Jeong
 
Nodejs를 이용한 개발
Nodejs를 이용한 개발Nodejs를 이용한 개발
Nodejs를 이용한 개발WebFrameworks
 
유연하게 확장할 수 있는 PHP 웹 개발 이야기
유연하게 확장할 수 있는 PHP 웹 개발 이야기유연하게 확장할 수 있는 PHP 웹 개발 이야기
유연하게 확장할 수 있는 PHP 웹 개발 이야기Young D
 
tomcat jdbc mysql 프로그래밍
tomcat jdbc mysql 프로그래밍tomcat jdbc mysql 프로그래밍
tomcat jdbc mysql 프로그래밍Hoyoung Jung
 

Tendances (20)

[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임
 
JBoss EAP on Azure
JBoss EAP on Azure JBoss EAP on Azure
JBoss EAP on Azure
 
20141229 dklee docker
20141229 dklee docker20141229 dklee docker
20141229 dklee docker
 
Network 초보자를 위한 Netty
Network 초보자를 위한 NettyNetwork 초보자를 위한 Netty
Network 초보자를 위한 Netty
 
Meteor 0.3.6 Preview
Meteor 0.3.6 PreviewMeteor 0.3.6 Preview
Meteor 0.3.6 Preview
 
실시간통신
실시간통신실시간통신
실시간통신
 
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
 
Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초
 
[PHPFest 2013] PHP 성능 향상 방법
[PHPFest 2013] PHP 성능 향상 방법[PHPFest 2013] PHP 성능 향상 방법
[PHPFest 2013] PHP 성능 향상 방법
 
Web socket
Web socketWeb socket
Web socket
 
톰캣 #08-웹서버 연동
톰캣 #08-웹서버 연동톰캣 #08-웹서버 연동
톰캣 #08-웹서버 연동
 
문돌이가 가르치는 서버사이드 PHP
문돌이가 가르치는 서버사이드 PHP문돌이가 가르치는 서버사이드 PHP
문돌이가 가르치는 서버사이드 PHP
 
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
 
자바 네트워크 소녀 Netty 리뷰
자바 네트워크 소녀 Netty 리뷰자바 네트워크 소녀 Netty 리뷰
자바 네트워크 소녀 Netty 리뷰
 
Leadweb Nodejs
Leadweb NodejsLeadweb Nodejs
Leadweb Nodejs
 
Valet 으로 windows php 개발 환경 구성하기
Valet 으로 windows php 개발 환경 구성하기Valet 으로 windows php 개발 환경 구성하기
Valet 으로 windows php 개발 환경 구성하기
 
Nodejs를 이용한 개발
Nodejs를 이용한 개발Nodejs를 이용한 개발
Nodejs를 이용한 개발
 
유연하게 확장할 수 있는 PHP 웹 개발 이야기
유연하게 확장할 수 있는 PHP 웹 개발 이야기유연하게 확장할 수 있는 PHP 웹 개발 이야기
유연하게 확장할 수 있는 PHP 웹 개발 이야기
 
Node.js 첫걸음
Node.js 첫걸음Node.js 첫걸음
Node.js 첫걸음
 
tomcat jdbc mysql 프로그래밍
tomcat jdbc mysql 프로그래밍tomcat jdbc mysql 프로그래밍
tomcat jdbc mysql 프로그래밍
 

Similaire à 맛만 보자 Undertow

NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신Sungwoo Choo
 
[D2 오픈세미나]4.네이티브앱저장통신
[D2 오픈세미나]4.네이티브앱저장통신[D2 오픈세미나]4.네이티브앱저장통신
[D2 오픈세미나]4.네이티브앱저장통신NAVER D2
 
[1A4]자바스크립트 라이브러리 개발 운영 경험기
[1A4]자바스크립트 라이브러리 개발 운영 경험기[1A4]자바스크립트 라이브러리 개발 운영 경험기
[1A4]자바스크립트 라이브러리 개발 운영 경험기NAVER D2
 
Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례Hyoungjun Kim
 
Django in Production
Django in ProductionDjango in Production
Django in ProductionHyun-woo Park
 
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http RequestNAVER D2
 
2020년 9월 19일 개발자 이야기
2020년 9월 19일 개발자 이야기2020년 9월 19일 개발자 이야기
2020년 9월 19일 개발자 이야기Jay Park
 
웹 크롤링 (Web scraping) 의 이해
웹 크롤링 (Web scraping) 의 이해웹 크롤링 (Web scraping) 의 이해
웹 크롤링 (Web scraping) 의 이해2minchul
 
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE  [제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE 흥래 김
 
RESTful API 설계
RESTful API 설계RESTful API 설계
RESTful API 설계Jinho Yoo
 
Fluentd with MySQL
Fluentd with MySQLFluentd with MySQL
Fluentd with MySQLI Goo Lee
 
build a linux webhosting server
build a linux webhosting serverbuild a linux webhosting server
build a linux webhosting server정현 윤
 
2020년 10월 17일 개발자 이야기
2020년 10월 17일 개발자 이야기2020년 10월 17일 개발자 이야기
2020년 10월 17일 개발자 이야기Jay Park
 
ecdevday3 효율적인 유지보수를 위한 개발 및 관리
ecdevday3 효율적인 유지보수를 위한 개발 및 관리ecdevday3 효율적인 유지보수를 위한 개발 및 관리
ecdevday3 효율적인 유지보수를 위한 개발 및 관리Kenu, GwangNam Heo
 
vert.x 를 활용한 분산서버 개발하기
vert.x 를 활용한 분산서버 개발하기vert.x 를 활용한 분산서버 개발하기
vert.x 를 활용한 분산서버 개발하기John Kim
 
백기선의 스프링 부트
백기선의 스프링 부트백기선의 스프링 부트
백기선의 스프링 부트Keesun Baik
 

Similaire à 맛만 보자 Undertow (20)

NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
 
[D2 오픈세미나]4.네이티브앱저장통신
[D2 오픈세미나]4.네이티브앱저장통신[D2 오픈세미나]4.네이티브앱저장통신
[D2 오픈세미나]4.네이티브앱저장통신
 
[1A4]자바스크립트 라이브러리 개발 운영 경험기
[1A4]자바스크립트 라이브러리 개발 운영 경험기[1A4]자바스크립트 라이브러리 개발 운영 경험기
[1A4]자바스크립트 라이브러리 개발 운영 경험기
 
deview2014
deview2014deview2014
deview2014
 
Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례
 
Django in Production
Django in ProductionDjango in Production
Django in Production
 
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request
 
2020년 9월 19일 개발자 이야기
2020년 9월 19일 개발자 이야기2020년 9월 19일 개발자 이야기
2020년 9월 19일 개발자 이야기
 
Html5 video
Html5 videoHtml5 video
Html5 video
 
웹 크롤링 (Web scraping) 의 이해
웹 크롤링 (Web scraping) 의 이해웹 크롤링 (Web scraping) 의 이해
웹 크롤링 (Web scraping) 의 이해
 
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE  [제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
 
RESTful API 설계
RESTful API 설계RESTful API 설계
RESTful API 설계
 
Fluentd with MySQL
Fluentd with MySQLFluentd with MySQL
Fluentd with MySQL
 
build a linux webhosting server
build a linux webhosting serverbuild a linux webhosting server
build a linux webhosting server
 
2020년 10월 17일 개발자 이야기
2020년 10월 17일 개발자 이야기2020년 10월 17일 개발자 이야기
2020년 10월 17일 개발자 이야기
 
Init to systemd
Init to systemdInit to systemd
Init to systemd
 
ecdevday3 효율적인 유지보수를 위한 개발 및 관리
ecdevday3 효율적인 유지보수를 위한 개발 및 관리ecdevday3 효율적인 유지보수를 위한 개발 및 관리
ecdevday3 효율적인 유지보수를 위한 개발 및 관리
 
vert.x 를 활용한 분산서버 개발하기
vert.x 를 활용한 분산서버 개발하기vert.x 를 활용한 분산서버 개발하기
vert.x 를 활용한 분산서버 개발하기
 
백기선의 스프링 부트
백기선의 스프링 부트백기선의 스프링 부트
백기선의 스프링 부트
 
Dynamodb 삽질기
Dynamodb 삽질기Dynamodb 삽질기
Dynamodb 삽질기
 

Plus de jbugkorea

Hawkular overview
Hawkular overviewHawkular overview
Hawkular overviewjbugkorea
 
미들웨어 엔지니어의 클라우드 탐방기
미들웨어 엔지니어의 클라우드 탐방기미들웨어 엔지니어의 클라우드 탐방기
미들웨어 엔지니어의 클라우드 탐방기jbugkorea
 
기업, 통합, 마이크로서비스
기업, 통합, 마이크로서비스기업, 통합, 마이크로서비스
기업, 통합, 마이크로서비스jbugkorea
 
개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링
개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링
개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링jbugkorea
 
JBUG Korea 소개
JBUG Korea 소개JBUG Korea 소개
JBUG Korea 소개jbugkorea
 
Micro Service Architecture 탐방기
Micro Service Architecture 탐방기Micro Service Architecture 탐방기
Micro Service Architecture 탐방기jbugkorea
 
Jbug 발표 msa탐방기_공유자료
Jbug 발표 msa탐방기_공유자료Jbug 발표 msa탐방기_공유자료
Jbug 발표 msa탐방기_공유자료jbugkorea
 
Micro Service Architecture(MSA) 탐방기
Micro Service Architecture(MSA) 탐방기Micro Service Architecture(MSA) 탐방기
Micro Service Architecture(MSA) 탐방기jbugkorea
 
INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축
INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축
INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축jbugkorea
 
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트jbugkorea
 
맛만 보자 액터 모델이란
맛만 보자 액터 모델이란 맛만 보자 액터 모델이란
맛만 보자 액터 모델이란 jbugkorea
 
맛만 보자 Finagle이란
맛만 보자 Finagle이란 맛만 보자 Finagle이란
맛만 보자 Finagle이란 jbugkorea
 
Undertow 맛보기
Undertow 맛보기Undertow 맛보기
Undertow 맛보기jbugkorea
 
JBoss Community Introduction
JBoss Community IntroductionJBoss Community Introduction
JBoss Community Introductionjbugkorea
 
JBoss AS 7 따라잡기
JBoss AS 7 따라잡기JBoss AS 7 따라잡기
JBoss AS 7 따라잡기jbugkorea
 
Wildfly 8.0에서 SOAP 웹 서비스 구현
Wildfly 8.0에서 SOAP 웹 서비스 구현Wildfly 8.0에서 SOAP 웹 서비스 구현
Wildfly 8.0에서 SOAP 웹 서비스 구현jbugkorea
 
Infinispan Data Grid Platform
Infinispan Data Grid PlatformInfinispan Data Grid Platform
Infinispan Data Grid Platformjbugkorea
 
Java 8 - A step closer to Parallelism
Java 8 - A step closer to ParallelismJava 8 - A step closer to Parallelism
Java 8 - A step closer to Parallelismjbugkorea
 
JBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring PlatformJBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring Platformjbugkorea
 

Plus de jbugkorea (19)

Hawkular overview
Hawkular overviewHawkular overview
Hawkular overview
 
미들웨어 엔지니어의 클라우드 탐방기
미들웨어 엔지니어의 클라우드 탐방기미들웨어 엔지니어의 클라우드 탐방기
미들웨어 엔지니어의 클라우드 탐방기
 
기업, 통합, 마이크로서비스
기업, 통합, 마이크로서비스기업, 통합, 마이크로서비스
기업, 통합, 마이크로서비스
 
개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링
개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링
개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링
 
JBUG Korea 소개
JBUG Korea 소개JBUG Korea 소개
JBUG Korea 소개
 
Micro Service Architecture 탐방기
Micro Service Architecture 탐방기Micro Service Architecture 탐방기
Micro Service Architecture 탐방기
 
Jbug 발표 msa탐방기_공유자료
Jbug 발표 msa탐방기_공유자료Jbug 발표 msa탐방기_공유자료
Jbug 발표 msa탐방기_공유자료
 
Micro Service Architecture(MSA) 탐방기
Micro Service Architecture(MSA) 탐방기Micro Service Architecture(MSA) 탐방기
Micro Service Architecture(MSA) 탐방기
 
INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축
INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축
INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축
 
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트
 
맛만 보자 액터 모델이란
맛만 보자 액터 모델이란 맛만 보자 액터 모델이란
맛만 보자 액터 모델이란
 
맛만 보자 Finagle이란
맛만 보자 Finagle이란 맛만 보자 Finagle이란
맛만 보자 Finagle이란
 
Undertow 맛보기
Undertow 맛보기Undertow 맛보기
Undertow 맛보기
 
JBoss Community Introduction
JBoss Community IntroductionJBoss Community Introduction
JBoss Community Introduction
 
JBoss AS 7 따라잡기
JBoss AS 7 따라잡기JBoss AS 7 따라잡기
JBoss AS 7 따라잡기
 
Wildfly 8.0에서 SOAP 웹 서비스 구현
Wildfly 8.0에서 SOAP 웹 서비스 구현Wildfly 8.0에서 SOAP 웹 서비스 구현
Wildfly 8.0에서 SOAP 웹 서비스 구현
 
Infinispan Data Grid Platform
Infinispan Data Grid PlatformInfinispan Data Grid Platform
Infinispan Data Grid Platform
 
Java 8 - A step closer to Parallelism
Java 8 - A step closer to ParallelismJava 8 - A step closer to Parallelism
Java 8 - A step closer to Parallelism
 
JBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring PlatformJBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring Platform
 

맛만 보자 Undertow

  • 2. Who am i 초콜릿을 14년 동안 받아보지 못한 개발자… (ㅠ.ㅠ ) GRD ASKY (그래도 안생겨요) http://blog.daum.net/dhlh0h34/107
  • 3. 먹통~ 먹통~ 왜~ 왜~ “1초에 30만명 접속" 중국 춘제 기차표 예매사이트 '먹통' 막은 알리바바 출처 : http://www.ajunews.com/view/20150120144132775 제주항공 홈페이지 '먹통'…특가 항공권 예매 전쟁 시작 출처 : http://www.hankyung.com/news/app/newsview.php?aid=201501206254g 코레일 예매 서비스 먹통…"원인 파악 중" 출처 : http://biz.newdaily.co.kr/news/article.html?no=10034418 한국시리즈 예매, 작년에 이어 올해도 먹통 출처 : http://m.mk.co.kr/sports/home/2014/1383520
  • 4. 저희 회사 서비스의 특징 서비스 접속의 80% 이상은 데이터베이스를 사 용하지 않는다. 우리 회사 서비스는 글로벌을 지향한다. 그런데 돈이 부족하다. (ㅠ.ㅠ ) 파트너 서버 스마트 폰 데이터 베이스회사 서비스 서버
  • 5. 인터넷 트래픽의 폭발적 증가 PC 모바일 IoT http://www.moneyone.co.kr/attachfile/images/000043/20130514151019435_N9HT2H6D.png
  • 6. Nginx versus Apache 동시 접속자가 많아 질수록 ngnix가 apache보다 많은 요청을 처리한다. 동시 접속자가 많아져도 ngnix는 apache처럼 메모리 사용량이 많이 증가 하지 않 는다. http://blog.webfaction.com/2008/12/a-little-holiday-present-10000-reqssec-with-nginx-2/
  • 7. 어떤 마법이 숨어 있을까요? Apache Ngnix Socket Connection Thread Socket Connection Socket Connection Thread OS Kernel or Thread Pool Socket Connection Thread
  • 8. Web Framework Benchmarks (EC2) https://www.techempower.com/benchmarks/#section=data-r9&hw=peak&test=plaintext
  • 9. Undertow - 나도 물 좋아해요~ 저류, 되돌아가는 물결, 역류
  • 10. Undertow - 넌 누구니? Undertow has a composition based architecture that allows you to build a web server by combining small single purpose handlers. - Full Java EE servlet 3.1 container - Low level non-blocking handler http://undertow.io
  • 11. 왜~ Undertow를 쓸까? 겁니 가벼워요~ - core 라이브러리 1M - 단순 웹 서버는 4MB 이하 힙 사이즈에서 동작 프로토콜 바꿔줘요~ (HTTP Upgrade) - HTTP 1.1에서 다른 프로토콜로 변경 해줌. - Upgrade: websocket 당근~ Web Socket 지원 - JSR-356 스펙을 포함한 웹 소켓을 완벽하게 지원
  • 12. 왜~ Undertow를 쓸까? 오~ Servlet 3.1 지원 - Java EE servlet 3.1 지원 어디 숨었니? - 애플리케이션 안에 포함 가능 - 혼자 작동 가능 앗 너무 유연해~ - 미리 만들어진 핸들러를 필요한 만큼 가져다가 사용 가능
  • 13. 근본 있는 Undertow XNIO 비동기 통신 라이브러리 (ex:Netty) SSL 지원 http://xnio.jboss.org/
  • 15. 미리 만들어진 Handlers Path Virtual Host Path Template Date Resource Predicate HTTP Continue Websocket Redirect Trace Header IP Access Control ACL URL Decoding Set Attribute Rewrite Graceful Shutdown Proxy Peer Address
  • 16. Show me the code Method chaining 방식으로 개발
  • 23. 개발 관련 코드 사이트 Undertow Github https://github.com/undertow-io/undertow JBoss Wildfly Github (웹서버 확장) https://github. com/wildfly/wildfly/tree/master/undertow
  • 24. 훈훈한 마무으~리 서비스 요구 사항에 맞는 프레임워크를 선택하 세요. - 프레임워크는 각자의 목적을 가지고 있습니다. - 프레임워크의 특징을 잘 파악하여야 합니다. - Undertow는 그 선택지 중 하나 입니다.