SlideShare uma empresa Scribd logo
1 de 52
이준성
데브시스터즈 개발팀
QUIC을 이용한 네트워크 성능 개선
2
이준성
• KAIST 전산학과
• ACM-ICPC World Finalist
• Devsisters 에서 쿠키런 서버 만들고 있음
a.k.a 호떡
3
Why QUIC?
4
쿠키런 by 데브시스터
즈
쿠키런 for Kakao LINE COOKIERUN Cookie Run: OvenBreak
• 2016년 10월 27일 출시 예정
• 글로벌 원 서버 / 원 빌드
• 일본, 태국, 대만 등에서
6000만 다운로드 돌파
• 네트워크 끊김에 대한
CS 꾸준히 접수
• 한국에서 2,600만 다운
로드, 최고 300만 DAU
기록
• 한국의 탄탄한 모바일
망을 기반으로 안정적으
로 서비스 중
5
Load Balancer Private Cloud (AWS / GCP)
웹 서비스 + 모바일 게임의 흔한 구조
모바일 게임의 일반적인 구조
6
Load Balancer
Private Cloud (AWS / GCP)
신뢰 가능한 구간
상대적으로 빠르고 안정적이다
(물론 여전히 많은 문제가 있지만)
모바일 게임의 일반적인 구조
7
Load Balancer???????????????
무슨 일이 일어날 지 모른다
매우 느리거나 자주 끊길 수 있다
전국 어디서나 LTE 뻥뻥 터지는 나라는 세상에 몇 개 없다
(한국 일본 싱가포르 홍콩?)
모바일 게임의 일반적인 구조
8
HTTP request
Transport layer
(TCP)
Network layer
(IP)
Wireless PHY
HTTP response
Transport layer
(TCP)
Network layer
(IP)
Ethernet PHY
TCP connection
모바일 게임의 일반적인 구조
9
Issues in HTTP/1.1
• Head-of-line blocking (HoL)
• Single request per connection
• Request must be responded in order (FIFO)
• Not optimized well
• Uncompressed headers
• Redundant headers
• Lack of Server-side push
10
SPDY & HTTP2
• Multiplexed streams
• Multiple streams over single TCP connection
• Request Prioritization
• HTTP header compression
• HPACK format
• Huffman code
• Server Push
11
https://www.chromium.org/spdy/spdy-data
SPDY & HTTP2
12
모바일에서는?
13
Erman, Jeffrey, et al. "Towards a SPDY’ier mobile web?." Networking, IEEE/ACM Transactions on 23.6 (2015): 2010-2023.
14
Erman, Jeffrey, et al. "Towards a SPDY’ier mobile web?." Networking, IEEE/ACM Transactions on 23.6 (2015): 2010-2023.
15
It’s The TCP, STUPID!
문제는 TCP
16
Issues in TCP+TLS
• Head-of-line blocking (HoL)
• TCP retransmissions
• TCP 3-way handshake cost (~= 1.5 rtt)
• TLS negotiation handshake cost (~= 3 rtt)
• Large backoff on packet loss
• Poor performance in mobile environment
• Wifi <-> Cellular transition
• NAT, Firewall, …
17
TCP+TLS 4.5 RT
Connection
http://www.slideshare.net/shigeki_ohtsu/quic-overview
1.5 RT
3 RT
18
TCP Slow Start
http://www.site.uottawa.ca/~bochmann/CourseModules/NetworkQoS/
19
“We should solve this without modifying
middle-boxes and OS kernels”
20
What is QUIC?
21
22
구글의 목표
• 오늘날의 인터넷 세상에 바로 적용 가능할 것
• 통신 과정의 Latency를 개선할 것
• Packet Loss로 인한 HOL 문제를 해결할 것
• TCP의 혼잡 제어 알고리즘을 개선할 것
• TLS 이상으로 안전할 것
• Mobile 환경에서 Cellular <=> Wifi 사이의 마이그레이션이 일어나도 잘 동작할 것
23
91% ~ 94% of users can make outbound UDP
24
QUIC
• Head-of-line blocking (HoL) (TCP / HTTP)
• TCP 3-way handshake cost (~= 1.5 rtt)
• TLS negotiation handshake cost (~= 3 rtt)
• Large backoff on packet loss
• Poor performance in mobile environment
Multiple stream
Not ordered packet
0RTT ~ 1RTT
connection establish
Migration support
Improved congestion control
Static connection config
25
QUIC 1-RTT Connection
http://www.slideshare.net/shigeki_ohtsu/quic-overview
26
QUIC 0-RTT Connection
http://www.slideshare.net/shigeki_ohtsu/quic-overview
• Pluggable Congestion Control Algorithm
• Based on TCP cubic
• Pacing based on bandwidth estimation
• Equivalent to 2 TCP connection
27
QUIC Congestion Control
http://www.ietf.org/proceedings/88/slides/slides-88-tsvarea-10.pdf
28
Connection Migration
29
실제 서비스에 적용하기
30
초기 목표
• 빠르게 프로토타이핑한 후 정말로 효과가 있는지 검증
• 한 가지 이상의 다른 언어와 잘 결합할 수 있는 형태로 구현 (Go? Python? Java? Rust?)
• 멀티코어를 완전히 활용해서 실제 Production에 사용 가능한 수준의 RPS로 최적화
• 현재 제공중인 서비스에 Transparent 하게 적용할 수 있는 형태여야 함
• QUIC 적용을 위해 모든 인프라와 클라이언트를 뜯어 고쳐야 한다면 사용할 수 없다!
• 큰 공수 없이 유지/보수 가능해야 함
• QUIC은 아직도 매우 활발히 변화가 일어나는 프로토콜 (1년에 메이저 버전 3~4개 릴리즈)
• 메이저 릴리즈 될 때마다 새로 구현해야 하면 매우 곤란
31
Chromium Project
모든 것의 시작
https://www.chromium.org/quic
32
Chromium Project
• Toy Server / Toy Client / Chrome 브라우저를 이용해 동작 확인 가능
• Not performant at scale
• 구글에서 사용하는 서버 구현체는 아직도 미공개
• Event Loop, Multi-threading, I/O 등등 구현 필요
“Chromium 위에 직접 구현해서 붙여볼까…?”
Dependency Hell
34
libquic / goquic
• libquic
• Chromium codebase에서 주기적으로 sync
• Python 스크립트와 자체 패치 시스템을 이용해 Dependency 최대한 제거
• goquic
• Go 언어로 만든 libquic binding
• 메인 로직의 경우 libquic의 C++ class를 cgo로 사용 => 유지보수 최소화
• 멀티쓰레딩, GC, Non-blocking I/O 등 구현시 Golang의 장점을 살릴 수 있음
35
36
현재 알려진 서버 구현
체• GoQuic: Linux나 Mac, FreeBSD 환경에서 구동할 수 있는 Reverse Proxy
• https://github.com/devsisters/goquic/
• Docker Image로도 제공: http://devsisters.github.io/goquic/
• quic-go: Pure Go Implementation
• https://github.com/lucas-clemente/quic-go
• Caddy: Web Server like Apache, nginx, … implemented in Golang
• https://github.com/mholt/caddy
• QUIC support based on quic-go
37
현재 알려진 서버 구현
체
• 치트키: Google App Engine을 사용하면 자동으로 QUIC 통신이 가능함
38
서비스에 적용하
기
elb.cookierun.com
quic.cookierun.com
39
서비스에 적용하기 - 서
버• Load Balancer에 UDP support가 되지 않는 경우 DNS RR 기반으로 부하 분산 (예: AWS)
• 외부에서의 장애 감지 로직과 Failover Plan이 꼭 필요
• QUIC 서버의 경우 대부분 CPU가 병목일 만큼 연산량이 많은 편
40
서비스에 적용하기 - 클라이언트
• Android: Cronet (https://chromium.googlesource.com/chromium/src/+/master/components/cronet)
• JNI를 통해 C++쪽 네트워크 스택을 이용할 수 있는 형태
• ICS 이하 기기 지원 X, ARMv6 기기 지원 X
• 파편화로 인해 특정 플랫폼에서 크래시 나는 경우가 종종 있음
• 실제로 겪은 예: NEON 미지원 기기(Tegra 칩셋) 에서 100% 크래시
• 디바이스 커버리지 위주로 꼼꼼한 테스트 필요
• Crash Analytics
• 기기/OS/칩셋 등 공통점 파악
• Chrome 쪽 문제인 경우: crbug.com
• 우리 쪽 문제인 경우: 대부분 race condition
41
서비스에 적용하기 - 클라이언트
• iOS: CrNet (https://chromium.googlesource.com/chromium/src.git/+/master/ios/crnet/)
• iOS 기본 네트워크 스택을 교체하는 형태로 작동
• Android에 비해 큰 문제는 없는 편
• Obj-C ARC(automatic reference counting) 사용하지 않으므로 MRR로 변경 필수
• Android/iOS 공통으로, static library 빌드와 실제 app 빌드시 파라미터를 맞추는 작업이 매우 중
• 특히 -DNDEBUG 플래그 => 수많은 원인 모를 크래시의 주범
• no-RTTI가 Default => C++ 프로젝트에서 RTTI 사용시 수동으로 켜줘야 함
• https://omahaproxy.appspot.com/ 를 기준으로 stable chrome version에 맞추기
42
Alternate Protocol
“ 이 서버는 QUIC을 지원합니다!
만약 이 클라이언트가 QUIC 통신을 할 줄 안다면,
udp:443 포트로 오세요! ”
•첫 통신의 경우 평범한 HTTP를 이용해 Negotiation하고, 그 다음 요청부터 QUIC으로 접속
•Cronet에선 CronetEngine.addQuicHint 을 통해 Hint를 추가해두면 QUIC부터 시도
43
Chrome HTTP/2 & SPDY Indicator
44
QUIC Status
그리고 Akamai, Microsoft, LINE 등에서 연구중인 것으로 알려져 있음
45
Results
46
47
48
49
50
Q&A
Thank You
52
Acknowledgements
http://www.flaticon.com/free-icon
http://www.slideshare.net/shigeki_ohtsu/quic-overview
https://docs.google.com/presentation/d/1T9GtMz1CvPpZtmF8g-W7j9XHZBOCp9cu1fW0sMsmpoo/edit#slide=id.gb7cc33ba7_25_11
https://www.chromium.org/spdy/spdy-data
http://www.ietf.org/proceedings/88/slides/slides-88-tsvarea-10.pdf
https://golang.org/doc/gopher/
Erman, Jeffrey, et al. "Towards a SPDY’ier mobile web?." Networking, IEEE/ACM Transactions on 23.6 (2015): 2010-2023.

Mais conteúdo relacionado

Mais procurados

NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현noerror
 
중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직Hoyoung Choi
 
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)Brian Hong
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템QooJuice
 
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)Heungsub Lee
 
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현YEONG-CHEON YOU
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCHo Gyu Lee
 
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)내훈 정
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략YEONG-CHEON YOU
 
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019devCAT Studio, NEXON
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버Heungsub Lee
 
[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개MinGeun Park
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조Hyunjik Bae
 
게임서버프로그래밍 #8 - 성능 평가
게임서버프로그래밍 #8 - 성능 평가게임서버프로그래밍 #8 - 성능 평가
게임서버프로그래밍 #8 - 성능 평가Seungmo Koo
 
Massive service basic
Massive service basicMassive service basic
Massive service basicDaeMyung Kang
 
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013devCAT Studio, NEXON
 
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?내훈 정
 
Iocp 기본 구조 이해
Iocp 기본 구조 이해Iocp 기본 구조 이해
Iocp 기본 구조 이해Nam Hyeonuk
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceXionglong Jin
 
[0903 구경원] recast 네비메쉬
[0903 구경원] recast 네비메쉬[0903 구경원] recast 네비메쉬
[0903 구경원] recast 네비메쉬KyeongWon Koo
 

Mais procurados (20)

NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현
 
중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직
 
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
 
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
 
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABC
 
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략
 
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
 
[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조
 
게임서버프로그래밍 #8 - 성능 평가
게임서버프로그래밍 #8 - 성능 평가게임서버프로그래밍 #8 - 성능 평가
게임서버프로그래밍 #8 - 성능 평가
 
Massive service basic
Massive service basicMassive service basic
Massive service basic
 
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
 
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
 
Iocp 기본 구조 이해
Iocp 기본 구조 이해Iocp 기본 구조 이해
Iocp 기본 구조 이해
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
 
[0903 구경원] recast 네비메쉬
[0903 구경원] recast 네비메쉬[0903 구경원] recast 네비메쉬
[0903 구경원] recast 네비메쉬
 

Semelhante a Quic을 이용한 네트워크 성능 개선

Open infradays 2019_msa_k8s
Open infradays 2019_msa_k8sOpen infradays 2019_msa_k8s
Open infradays 2019_msa_k8sHyoungjun Kim
 
Oracle Container Cloud Service & Docker Overview
Oracle Container Cloud Service & Docker OverviewOracle Container Cloud Service & Docker Overview
Oracle Container Cloud Service & Docker OverviewTaewan Kim
 
GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축철구 김
 
웹기반원격감시제어 2010 CPD
웹기반원격감시제어 2010 CPD웹기반원격감시제어 2010 CPD
웹기반원격감시제어 2010 CPD활 김
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발Jeongkyu Shin
 
HTTP/2도 잘 모르는데 벌써 HTTP/3? (2020/4/23) (Korean and English)
HTTP/2도 잘 모르는데 벌써 HTTP/3? (2020/4/23) (Korean and English)HTTP/2도 잘 모르는데 벌써 HTTP/3? (2020/4/23) (Korean and English)
HTTP/2도 잘 모르는데 벌써 HTTP/3? (2020/4/23) (Korean and English)Junho Choi
 
2020년 10월 24일 개발자 이야기
2020년 10월 24일 개발자 이야기2020년 10월 24일 개발자 이야기
2020년 10월 24일 개발자 이야기Jay Park
 
스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들Hyunjik Bae
 
사례들로 알아보는 컨테이너, 언제 어떻게 쓰면 좋을까? – 김성수 AWS 솔루션즈 아키텍트, 허준 AWS 어카운트 매니저, 이창명 선데이토...
사례들로 알아보는 컨테이너, 언제 어떻게 쓰면 좋을까? – 김성수 AWS 솔루션즈 아키텍트, 허준 AWS 어카운트 매니저, 이창명 선데이토...사례들로 알아보는 컨테이너, 언제 어떻게 쓰면 좋을까? – 김성수 AWS 솔루션즈 아키텍트, 허준 AWS 어카운트 매니저, 이창명 선데이토...
사례들로 알아보는 컨테이너, 언제 어떻게 쓰면 좋을까? – 김성수 AWS 솔루션즈 아키텍트, 허준 AWS 어카운트 매니저, 이창명 선데이토...Amazon Web Services Korea
 
Openshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud NativeOpenshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud Nativerockplace
 
Next generation cloud data center technologies
Next generation cloud data center technologiesNext generation cloud data center technologies
Next generation cloud data center technologieshybrid cloud
 
[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...
[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...
[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...OpenStack Korea Community
 
AWS Summit Seoul 2015 - CloudFront를 활용한 글로벌 진출기 (Com2us 사례)
AWS Summit Seoul 2015 -  CloudFront를 활용한 글로벌 진출기 (Com2us 사례)AWS Summit Seoul 2015 -  CloudFront를 활용한 글로벌 진출기 (Com2us 사례)
AWS Summit Seoul 2015 - CloudFront를 활용한 글로벌 진출기 (Com2us 사례)Amazon Web Services Korea
 
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기Jongwon Han
 
C++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & NanaC++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & NanaLazy Ahasil
 
Kubernetes를 통한 laravel 개발프로세스 개선하기
Kubernetes를 통한 laravel 개발프로세스 개선하기Kubernetes를 통한 laravel 개발프로세스 개선하기
Kubernetes를 통한 laravel 개발프로세스 개선하기Changyeop Kim
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...hoondong kim
 

Semelhante a Quic을 이용한 네트워크 성능 개선 (20)

Open infradays 2019_msa_k8s
Open infradays 2019_msa_k8sOpen infradays 2019_msa_k8s
Open infradays 2019_msa_k8s
 
kt-cloud
kt-cloudkt-cloud
kt-cloud
 
Oracle Container Cloud Service & Docker Overview
Oracle Container Cloud Service & Docker OverviewOracle Container Cloud Service & Docker Overview
Oracle Container Cloud Service & Docker Overview
 
201702-Oracle Container Cloud Service
201702-Oracle Container Cloud Service201702-Oracle Container Cloud Service
201702-Oracle Container Cloud Service
 
GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축
 
웹기반원격감시제어 2010 CPD
웹기반원격감시제어 2010 CPD웹기반원격감시제어 2010 CPD
웹기반원격감시제어 2010 CPD
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
 
HTTP/2도 잘 모르는데 벌써 HTTP/3? (2020/4/23) (Korean and English)
HTTP/2도 잘 모르는데 벌써 HTTP/3? (2020/4/23) (Korean and English)HTTP/2도 잘 모르는데 벌써 HTTP/3? (2020/4/23) (Korean and English)
HTTP/2도 잘 모르는데 벌써 HTTP/3? (2020/4/23) (Korean and English)
 
2020년 10월 24일 개발자 이야기
2020년 10월 24일 개발자 이야기2020년 10월 24일 개발자 이야기
2020년 10월 24일 개발자 이야기
 
스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들
 
사례들로 알아보는 컨테이너, 언제 어떻게 쓰면 좋을까? – 김성수 AWS 솔루션즈 아키텍트, 허준 AWS 어카운트 매니저, 이창명 선데이토...
사례들로 알아보는 컨테이너, 언제 어떻게 쓰면 좋을까? – 김성수 AWS 솔루션즈 아키텍트, 허준 AWS 어카운트 매니저, 이창명 선데이토...사례들로 알아보는 컨테이너, 언제 어떻게 쓰면 좋을까? – 김성수 AWS 솔루션즈 아키텍트, 허준 AWS 어카운트 매니저, 이창명 선데이토...
사례들로 알아보는 컨테이너, 언제 어떻게 쓰면 좋을까? – 김성수 AWS 솔루션즈 아키텍트, 허준 AWS 어카운트 매니저, 이창명 선데이토...
 
Openshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud NativeOpenshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud Native
 
Next generation cloud data center technologies
Next generation cloud data center technologiesNext generation cloud data center technologies
Next generation cloud data center technologies
 
[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...
[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...
[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...
 
Docker osc 0508
Docker osc 0508Docker osc 0508
Docker osc 0508
 
AWS Summit Seoul 2015 - CloudFront를 활용한 글로벌 진출기 (Com2us 사례)
AWS Summit Seoul 2015 -  CloudFront를 활용한 글로벌 진출기 (Com2us 사례)AWS Summit Seoul 2015 -  CloudFront를 활용한 글로벌 진출기 (Com2us 사례)
AWS Summit Seoul 2015 - CloudFront를 활용한 글로벌 진출기 (Com2us 사례)
 
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기
 
C++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & NanaC++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & Nana
 
Kubernetes를 통한 laravel 개발프로세스 개선하기
Kubernetes를 통한 laravel 개발프로세스 개선하기Kubernetes를 통한 laravel 개발프로세스 개선하기
Kubernetes를 통한 laravel 개발프로세스 개선하기
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
 

Mais de NAVER D2

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다NAVER D2
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...NAVER D2
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기NAVER D2
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발NAVER D2
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈NAVER D2
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&ANAVER D2
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기NAVER D2
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep LearningNAVER D2
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applicationsNAVER D2
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingNAVER D2
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지NAVER D2
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기NAVER D2
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화NAVER D2
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)NAVER D2
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기NAVER D2
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual SearchNAVER D2
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화NAVER D2
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지NAVER D2
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터NAVER D2
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?NAVER D2
 

Mais de NAVER D2 (20)

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual Search
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?
 

Quic을 이용한 네트워크 성능 개선

Notas do Editor

  1. 오늘 발표의 주제는 ... 인데요. 먼저 저희가 왜 네트워크 성능에 ... , QUIC이 문제를 어떻ㄱ ㅔ해결해 주는지, 실제로 유의미한 효과를 얻었는지에 대해 실제 흐름을 따라가면서 이야기해보도록 하겠습니다.
  2. 먼저 저희가 왜 네트워크 스택의 개선에 관심을 가지게 되었고 어떻게 QUIC을 접하게 되었는지에 대해 간단히 말씀드리겠습니다.
  3. 모두들 아시겠지만, 데브시스터즈는 … 쿠키런 for Kakao 소개 LINE COOKIERUN 소개. 네트워크 끊김에 대한 CS가 매달 접수됨. 여러 가지 원인 발견. 오븐브레이크 소개, 글로벌 마켓 대상, 글로벌 원 서버.
  4. 먼저 일반적인 모바일 게임의 구조에 대해서… 특히 대형 IDC에 서버를 고정적으로 유지하기 어려운 중소규모 팀에서는, AWS/GCP .. 서머너즈워 CR COC
  5. neighbor,
  6. 라우팅을 빙 돌려서 DNS cache이슈 ISP에서 하는 이상한 짓들, 자기들맘대로 캐시를 한다거나
  7. User-agent, Host, Accept 이미지 스프라이트 / 도메인 샤딩 / script minimize 가장 큰 문제는, 낡았다는 것
  8. Emulation에 의한 결과임
  9. AT&T
  10. 아예 링크가 끊어지거나 약한 상황은 혼잡 상황이 아닌데 혼잡으로 인지 유선망이니까..
  11. 가장 중요한 것은 바로 이것인데요. 물론 Transport layer에서 기존의 TCP나 UDP를 대체하면서 이러한 문제를 개선할 수 있는 새로운 프로토콜을 제안하고, 구현하는 방식으로 해결할 수도 있습니다. 실제로도 그런 시도에서 표준화가 진행중인 프로토콜들이 여러개 있다 -> Multipath TCP라거나, SCTP라거나 …. 이런 프로토콜의 결정적인 문제는 Kernel 서포트가 필요하다는 것. 서버, 클라이언트 뿐만 아니라 전송 과정의 라우터, 스위치, 공유기, …. 물론 이런 과정들은 나름대로 의미가 있으나, 빠르게 iteration 하고 결과를 보기엔 부적합
  12. 가장 먼저 들여다봤던 코드는 Google Chrome 브라우저의 모태가 되는 Chromium 프로젝트였습니다. QUIC 프로토콜 자체가 이 프로젝트에서 출발했고, 저희가 쓰는 구현체나 다른 모든 구현체의 구현 방식도 사실상 Chromium의 것을 따라서 쓰고 있는데요.
  13. 홈페이지에 들어가보면 장난감 서버와 클라이언트 구현체가 있고, 실제로 장난감 서버를 띄워 놓고 크롬 브라우저를 이용해 동작을 확인할 수도 있었습니다. 하지만 실제로 사용하기에는 정말 동작 확인만 가능한 정도로 구현되어 있고, 무엇보다 Production 수준에서 제대로 최적화되어 있지 않아서, 충분한 성능이 나오지 않았습니다. 구글에서 실제로 사용하는 구현체는 아직 공개되지 않았는데요. 구글 관련 서비스나 구글 클라우드 인프라에 제공되는 Google Frontend라는 프로그램에 서버 구현체가 내장되어 있는 것으로 알려져 있습니다. 구글 관계자에 의하면 Toy server와 크게 다르지는 않다고 하는데요. 구현해야 할 것들은 어쩌구 저쩌구 저희는 처음에는 이 구현체를 바탕으로 저희만의 Reverse Proxy를 구현하는 것을 생각했었는데요.
  14. 이 사진은 quic_connection이라는 하나의 클래스를 사용하기 위한 dependency들의 어쩌구 저쩌구…
  15. golang
  16. 대부분 우리쪽 문제
  17. 심지어 NDEBUG 플래그 관련한 문제는 디버그 모드에선 잡히지도 않음.. iOS는 상대적으로 훨씬 깔끔한 편 유닛테스트를 참고할 것 거의 대부분의 메소드에 달려 있음
  18. 또 하나 중요한 부분은 1초가 넘어가는 비중인데요. 기존 방식의 경우 1초가 넘어가는 통신이 전체의 5%가 넘습니다. 반면에 QUIC의 경우 1초가 넘어가는 통신은 1% 미만입니다. 90% 가로선 하나
  19. 또 하나 중요한 부분은 1초가 넘어가는 비중인데요. 기존 방식의 경우 1초가 넘어가는 통신이 전체의 5%가 넘습니다. 반면에 QUIC의 경우 1초가 넘어가는 통신은 1% 미만입니다. 90% 가로선 하나