SlideShare uma empresa Scribd logo
1 de 122
Baixar para ler offline
Pinpoint
대규모 분산환경 APM
강운덕
네이버 서비스플랫폼개발센터
Contents
1. 분산환경의 문제점
2. Pinpoint의 특징과 기술
- CallStack Trace
- Distributed Transaction Trace
3. 분산환경의 트러블슈팅
4. RPC Timeline Pattern
5. 신기능 & 발전방향
1.
분산환경의 문제점
가이드페이지-섹션구분
Why
과거
Why
NOW
문제점
상황
수십 수백대의 서버
많은 소프트웨어 모듈
복잡하게 연동된 서비스
문제
어떻게 연동되고 있는지 파악안됨
다른 서비스에 의해 장애가 발생
개별 서버의 모니터링으로는 전체상황의 파악이 안됨
분산되면 더 어려운 이유
Network 의존성
관찰이 매우 어려움
기존방식으로는 문제를 잘 파악하기 힘듬
Logging
Single WAS Monitoring
GC Log, Heap Dump, Thread Dump
System Monitoring
복잡한 시스템의 성능 문제
해외
Proxy
API
GATEWAY
Service
DB,
CACHE,
RPC
CACHE
아키텍쳐 구성도
아무튼 느린 Request 추적해 봅시다
Tomcat에 느린 Log를 찍어 봅시다
HttpClient 호출 Log도 찍어 봅시다
Apache Access Log도 찍어 봅시다
아무튼 느린 Request 추적해 봅시다
때려쳐~ 때려쳐~
분산 아키텍쳐의 현실
분산 아키텍쳐의 현실
분산 아키텍쳐의 현실
분산 아키텍쳐의 현실
통짜
2.
Pinpoint 소개
Pinpoint
대규모 분산 시스템의 성능정보 수집과 문제 분석을 위한 APM 도구
- APM (Application Performance Management)
분산 트랜잭션 추적
애플리케이션 토폴로지 자동 발견 & 가시화
수평확장성
코드수준의 가시성
코드를 수정하지 않고 성능정보 수집
http://github.com/naver/pinpoint
무엇이 가능해졌는가?
과거에는 발견하지도 못했던 문제를 발견가능해짐
문제를 쉽게 빠르게 해결
문제 진단과 수정시간이 대폭 단축
Architecture
Collector
Host 1 Host 2 Host n
Web
Host JVM
JVM Option JavaAgent 명시
프로파일링 머신 대상군
Host Application
Java Agent
…
HBase
HBase
HBase
Send Profile Data
UDP/TCP (Thrift)
HBase Write
HBase Read
Architecture
Collector
Host 1 Host 2 Host n
Web
Host JVM
JVM Option JavaAgent 명시
프로파일링 머신 대상군
Host Application
Java Agent
…
HBase
HBase
HBase
Send Profile Data
UDP/TCP (Thrift)
HBase Write
HBase Read
Architecture
Collector
Host 1 Host 2 Host n
Web
Host JVM
JVM Option JavaAgent 명시
프로파일링 머신 대상군
Host Application
Java Agent
…
HBase
HBase
HBase
Send Profile Data
UDP/TCP (Thrift)
HBase Write
HBase Read
Architecture
Collector
Host 1 Host 2 Host n
Web
Host JVM
JVM Option JavaAgent 명시
프로파일링 머신 대상군
Host Application
Java Agent
…
HBase
HBase
HBase
Send Profile Data
UDP/TCP (Thrift)
HBase Write
HBase Read
TomcatA
TomcatC
TomcatD
TomcatB
TomcatF
Mysql1
Cubrid
Mysql2
Cache
원격지 주소…
원격지 주소…
TomcatA
TomcatA
TomcatA
TomcatC
TomcatD
TomcatB
TomcatF
Mysql1
Cubrid
Mysql2
Cache
원격지 주소…
원격지 주소…
TomcatA
TomcatA
TomcatA
TomcatC
TomcatD
TomcatB
TomcatF
Mysql1
Cubrid
Mysql2
Cache
원격지 주소…
원격지 주소…
TomcatA
TomcatA
TomcatA
TomcatC
TomcatD
TomcatB
TomcatF
Mysql1
Cubrid
Mysql2
Cache
원격지 주소…
원격지 주소…
TomcatA
TomcatA
TomcatA
TomcatC
TomcatD
TomcatB
TomcatF
Mysql1
Cubrid
Mysql2
Cache
원격지 주소…
원격지 주소…
TomcatA
TomcatA
CallStack Trace
Distributed Transaction Trace
Distributed Transaction Trace
HttpClient.execute()
Distributed Transaction Trace
Tomcat.receive();
Tomcat.receive();
Distributed Transaction Trace
TOMCAT A
TOMCAT B
Pinpoint의 핵심기능
CallStack Trace
Distributed Transaction Trace
CallStack Trace
AMethod(); -> BMethod(); -> CMethod();
ClassABC
CallStack Trace
AMethod() {
BMethod() {
CMethod() {
}
}
}
AMethod(); -> BMethod(); -> CMethod();
CallStack Trace
AMethod() {
BMethod() {
CMethod() {
}
}
}
CallStack
CMethod();
BMethod();
AMethod();
AMethod(); -> BMethod(); -> CMethod();
CallStack Trace
JVM Classloader
public void AMethod() {
BMethod();
}
public void AMethod() {
BMethod();
}
AInterceptor.before();
AInterceptor.after();
Class Loading시점에 Code를
가로채 bytecode를 변경
Pinpoint
Agent
AMethod() {
AIntercetor.before()
BMethod() {
BInterceptor.before()
CMethod() {
CInterceptor.before();
CInterceptor.after();
}
BInterceptor.after ()
}
AIntercetor.after ()
}
CallStack Trace
AMethod() {
AIntercetor.before()
BMethod() {
BInterceptor.before()
CMethod() {
CInterceptor.before();
CInterceptor.after();
}
BInterceptor.after ()
}
AIntercetor.after ()
}
CallStack Trace
Frame
Pointer
Stack
Frame
Depth
ROOT -1
New Stack &
Bind ThreadLocal
AMethod() {
AIntercetor.before()
BMethod() {
BInterceptor.before()
CMethod() {
CInterceptor.before();
CInterceptor.after();
}
BInterceptor.after ()
}
AIntercetor.after ()
}
CallStack Trace
AMethod
Sequence:0
Frame
Pointer
Stack
Frame
Depth
ROOT -1
AMethod() {
AIntercetor.before()
BMethod() {
BInterceptor.before()
CMethod() {
CInterceptor.before();
CInterceptor.after();
}
BInterceptor.after ()
}
AIntercetor.after ()
}
CallStack Trace
Frame
Pointer
Stack
Frame
Depth
ROOT -1
PUSH
StackFrame
AMethod
Sequence:0
AMethod() {
AIntercetor.before()
BMethod() {
BInterceptor.before()
CMethod() {
CInterceptor.before();
CInterceptor.after();
}
BInterceptor.after ()
}
AIntercetor.after ()
}
CallStack Trace
Frame
Pointer
Stack
Frame
Depth
0
ROOT -1
AMethod
PUSH
StackFrame
AMethod
Sequence:0
AMethod() {
AIntercetor.before()
BMethod() {
BInterceptor.before()
CMethod() {
CInterceptor.before();
CInterceptor.after();
}
BInterceptor.after ()
}
AIntercetor.after ()
}
CallStack Trace
Frame
Pointer
Stack
Frame
Depth
1
0
ROOT -1
PUSH
StackFrame
BMethod
Sequence:1
AMethod
BMethod
AMethod() {
AIntercetor.before()
BMethod() {
BInterceptor.before()
CMethod() {
CInterceptor.before();
CInterceptor.after();
}
BInterceptor.after ()
}
AIntercetor.after ()
}
CallStack Trace
Frame
Pointer
Stack
Frame
Depth
2
1
0
ROOT -1
PUSH
StackFrame
Cmethod
Sequence:2
AMethod
BMethod
CMethod
AMethod() {
AIntercetor.before()
BMethod() {
BInterceptor.before()
CMethod() {
CInterceptor.before();
CInterceptor.after();
}
BInterceptor.after ()
}
AIntercetor.after ()
}
CallStack Trace
Frame
Pointer
Stack
Frame
Depth
2
1
0
ROOT -1
POP
StackFrame
AMethod
BMethod
CMethod
AMethod() {
AIntercetor.before()
BMethod() {
BInterceptor.before()
CMethod() {
CInterceptor.before();
CInterceptor.after();
}
BInterceptor.after ()
}
AIntercetor.after ()
}
CallStack Trace
Frame
Pointer
Stack
Frame
Depth
2
1
0
ROOT -1POP
StackFrame
AMethod
BMethod
WriteQueue
C
C
AMethod() {
AIntercetor.before()
BMethod() {
BInterceptor.before()
CMethod() {
CInterceptor.before();
CInterceptor.after();
}
BInterceptor.after ()
}
AIntercetor.after ()
}
CallStack Trace
Frame
Pointer
Stack
Frame
Depth
1
0
ROOT -1POP
StackFrame
AMethod
BMethod
WriteQueueC
AMethod() {
AIntercetor.before()
BMethod() {
BInterceptor.before()
CMethod() {
CInterceptor.before();
CInterceptor.after();
}
BInterceptor.after ()
}
AIntercetor.after ()
}
CallStack Trace
Frame
Pointer
Stack
Frame
Depth
1
0
ROOT -1POP
StackFrame
AMethod
WriteQueue
B
C B
AMethod() {
AIntercetor.before()
BMethod() {
BInterceptor.before()
CMethod() {
CInterceptor.before();
CInterceptor.after();
}
BInterceptor.after ()
}
AIntercetor.after ()
}
CallStack Trace
Frame
Pointer
Stack
Frame
Depth
0
ROOT -1POP
StackFrame
WriteQueue
A
C B A
AMethod() {
AIntercetor.before()
BMethod() {
BInterceptor.before()
CMethod() {
CInterceptor.before();
CInterceptor.after();
}
BInterceptor.after ()
}
AIntercetor.after ()
}
CallStack Trace
Frame
Pointer
Stack
Frame
Depth
ROOT -1
WriteQueueC B A
Empty
Stack
AMethod() {
AIntercetor.before()
BMethod() {
BInterceptor.before()
CMethod() {
CInterceptor.before();
CInterceptor.after();
}
BInterceptor.after ()
}
AIntercetor.after ()
}
CallStack Trace
Frame
Pointer
Stack
Frame
Depth
ROOT -1
WriteQueueC B AQueue
Flush
Network
Write
CallStack Trace
HBase
C B A
CallStack Trace
Web
HBase
C B A
CallStack Trace
WAS
C
B
A
Sequence
0
1
2
CallStack Trace
WAS
C
B
A 0
1
2
Depth
0
1
2
Sequence
CallStack Trace
WAS
C
B
A 0
1
2
Depth
0
1
1
Sequence
Distributed Transaction Trace
Distributed Transaction Trace
RPC간의 관계를 찾는 방법
Request안에 추적 Tag를 포함시킨다
Http : HttpHeader
Distributed Transaction Trace
TraceId
- TransactionID
- SpanID
- pSpanID
Node 1 Node 2
Node 3
Node 4
TxId:Node1^Time^1
SpanId =1
pSpanId = -1
TxId:Node1^Time^1
SpanId = 3
pSpanId = 2
TxId:Node1^Time^1
SpanId = 4
pSpanId = 2
RPC 1
RPC 2
RPC 3
TxId:Node1^Time^1
SpanId = 2
pSpanId =1
Distributed Transaction Trace
TransactionID : GUID로 전체 메시지 아이디
각 노드마다 동일한 ID가 할당
TxId:Node1^Time^1
SpanId = 4
pSpanId = 2
TxId:Node1^Time^1
SpanId = 3
pSpanId = 2
Node 1 Node 2
Node 3
Node 4
TxId:Node1^Time^1
SpanId =1
pSpanId = -1
RPC 1
RPC 2
RPC 3
TxId:Node1^Time^1
SpanId = 2
pSpanId =1
Distributed Transaction Trace
SpanID, pSpanID : 부모 자식관계 정렬을 위한 ID
Node 1 Node 2
Node 3
Node 4
TxId:Node1^Time^1
SpanId =1
pSpanId = -1
TxId:Node1^Time^1
SpanId = 3
pSpanId = 2
TxId:Node1^Time^1
SpanId = 4
pSpanId = 2
RPC 1
RPC 2
RPC 3
TxId:Node1^Time^1
SpanId = 2
pSpanId =1
Distributed Transaction Trace
TomcatA
@Controller
public class TestController {
@RequestMapping("/test")
@ResponseBody
public String test() throws IOException {
HttpGet get = new HttpGet("http://TomcatB/hello");
HttpResponse response = httpClient.execute(get);
return EntityUtils.toString(response.getEntity());
}
}
TomcatB
@Controller
public class HelloController {
@RequestMapping("/hello")
@ResponseBody
public String hello() {
return "world!";
}
}
TomcatA
@Controller
public class TestController {
@RequestMapping("/test")
@ResponseBody
public String test() throws IOException {
HttpGet get = new HttpGet("http://TomcatB/hello");
HttpResponse response = httpClient.execute(get);
return EntityUtils.toString(response.getEntity());
}
}
TomcatB
@Controller
public class HelloController {
@RequestMapping("/hello")
@ResponseBody
public String hello() {
return "world!";
}
}
Distributed Transaction Trace
TraceId 생성
TRANSACTION_ID : TomcatA^시작시간^1
SPAN_ID : 10
PARENT_SPAN_ID : -1
Distributed Transaction Trace
Spring Controller Method 정보 레코딩
TomcatA
@Controller
public class TestController {
@RequestMapping("/test")
@ResponseBody
public String test() throws IOException {
HttpGet get = new HttpGet("http://TomcatB/hello");
HttpResponse response = httpClient.execute(get);
return EntityUtils.toString(response.getEntity());
}
}
TomcatB
@Controller
public class HelloController {
@RequestMapping("/hello")
@ResponseBody
public String hello() {
return "world!";
}
}
Distributed Transaction Trace
HttpClient 호출을 가로채 Next TtraceId 를 저장
TRANSACTION_ID : TomcatA^시작시간^1
SPAN_ID : 20 (신규발급)
PARENT_SPAN_ID : 10 (부모의 SpanId 10)
TomcatA
@Controller
public class TestController {
@RequestMapping("/test")
@ResponseBody
public String test() throws IOException {
HttpGet get = new HttpGet("http://TomcatB/hello");
HttpResponse response = httpClient.execute(get);
return EntityUtils.toString(response.getEntity());
}
}
TomcatB
@Controller
public class HelloController {
@RequestMapping("/hello")
@ResponseBody
public String hello() {
return "world!";
}
}
TomcatA
@Controller
public class TestController {
@RequestMapping("/test")
@ResponseBody
public String test() throws IOException {
HttpGet get = new HttpGet("http://TomcatB/hello");
HttpResponse response = httpClient.execute(get);
return EntityUtils.toString(response.getEntity());
}
}
TomcatB
@Controller
public class HelloController {
@RequestMapping("/hello")
@ResponseBody
public String hello() {
return "world!";
}
}
Distributed Transaction Trace
Tag
Request
Distributed Transaction Trace
TomcatA
@Controller
public class TestController {
@RequestMapping("/test")
@ResponseBody
public String test() throws IOException {
HttpGet get = new HttpGet("http://TomcatB/hello");
HttpResponse response = httpClient.execute(get);
return EntityUtils.toString(response.getEntity());
}
}
TomcatB
@Controller
public class HelloController {
@RequestMapping("/hello")
@ResponseBody
public String hello() {
return "world!";
}
}
Tag
Request
TomcatB는 Header에서 TraceId를 인식하여 Child로 동작
TRANSACTION_ID : TomcatA^시작시간^1
SPAN_ID : 20 (신규발급)
PARENT_SPAN_ID : 10 (부모의 SpanId 10)
TomcatA
@Controller
public class TestController {
@RequestMapping("/test")
@ResponseBody
public String test() throws IOException {
HttpGet get = new HttpGet("http://TomcatB/hello");
HttpResponse response = httpClient.execute(get);
return EntityUtils.toString(response.getEntity());
}
}
TomcatB
@Controller
public class HelloController {
@RequestMapping("/hello")
@ResponseBody
public String hello() {
return "world!";
}
}
Distributed Transaction Trace
HBase
RowKey
TomcatA^시작시간^1
20
10
Hello() 호출정보
TraceData
Collector
TomcatA
@Controller
public class TestController {
@RequestMapping("/test")
@ResponseBody
public String test() throws IOException {
HttpGet get = new HttpGet("http://TomcatB/hello");
HttpResponse response = httpClient.execute(get);
return EntityUtils.toString(response.getEntity());
}
}
TomcatB
@Controller
public class HelloController {
@RequestMapping("/hello")
@ResponseBody
public String hello() {
return "world!";
}
}
Distributed Transaction Trace
HBase
RowKey
TomcatA^시작시간^1
20 10
10
Hello() 호출정보
-1
Test() 호출정보
Collector
TraceData
HBase
RowKey
TomcatA^시작시간^1
20 10
10
Hello() 호출정보
-1
Test() 호출정보
WEB
3.
분산환경의
TroubleShooting
Pinpoint가 없었던 시절
연동 시스템에 장애가 발생한다면…
Pinpoint가 없었던 시절
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:150)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
…
Caused by: ◂◊╩◌♪♦♂◘◦▸╫╛╟╤❶╦╧[afg00101101aj..
…
Caused by: …
Pinpoint가 없었던 시절
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:150)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
…
Caused by: ◂◊╩◌♪♦♂◘◦▸╫╛╟╤❶╦╧[aDgfRhaj..
…
Caused by: …
Pinpoint사용시
원격지A
B
A
Pinpoint 사용시
A
Pinpoint 사용시
A
Pinpoint 사용시
Pinpoint 사용시
Pinpoint 사용시
어려운 문제
해외
Proxy
API
GATEWAY
Service
DB,
CACHE,
RPC
CACHE
전체 아키텍쳐 가시화
전체 아키텍쳐 가시화
APIGATEWAY1
호주Proxy
미국Proxy
Mobile-app
Server-WEB
APIGATEWAY2
일본Proxy
호주Proxy
미국Proxy
유럽Proxy
남미Proxy
APIGW-1
APIGW-2
Service
DB
RPC
RPC…
Cache
일본Proxy
미국Proxy
유럽Proxy
남미Proxy
APIGW-1
APIGW-2
Service
DB
RPC
RPC…
Cache
호주Proxy
일본Proxy
미국Proxy
유럽Proxy
남미Proxy
APIGW-1
APIGW-2
Service
DB
RPC
RPC…
Cache
호주Proxy
일본Proxy
미국Proxy
유럽Proxy
남미Proxy
APIGW-1
APIGW-2
Service
DB
RPC
RPC…
Cache
호주Proxy
개별 Request 흐름 가시화
미국Proxy
개별 Request 흐름 가시화
해외 Proxy APIGateway Service
RPC-A
RPC-B
RPC-C
MySql
RPC-D
해외 Proxy
6초
APIGateway
6초
해외 Proxy
6초
APIGateway
6초
APIGateway
6초
Service
응답시간
6초
…
Service
응답시간
6초
…
해외 Proxy APIGateway Service
MySql
RPC-A
RPC-B
RPC-C
RPC-D
해외 Proxy APIGateway Service
RPC-A
RPC-B
RPC-C
RPC-D
MySql
Service
6초
…
개별 Request 흐름 가시화
XXX YYY
ABC
http://A.naver
http://B.naver
개별 Request 흐름 가시화
APIGateway
해외 Proxy
Service
개별 Request 흐름 가시화
APIGateway
해외 Proxy
Service
개별 Request 흐름 가시화
APIGateway
해외 Proxy
Service
개별 Request 흐름 가시화
APIGateway
해외 Proxy
Service
개별 Request 흐름 가시화
APIGateway
해외 Proxy
Service
개별 Request 흐름 가시화
APIGateway
해외 Proxy
Service
해외Proxy APIGateway Service
RPC-A
RPC-B
RPC-C
RPC-D
MySql
4.
RPC Timeline Pattern
RPC Timeline Pattern
Rpc Timeline, CallStack의 시간 분포 패턴
TCP connect가 지연된 상황
Socket Option : ConnectTimeout , Socket Backlog
WebServer : Apache, Nginx
Network Switch : LoadBalancer(L4)
Client 특성 : HttpClient의 내부 retry 로직
RPC Timeline Pattern 1
TCP 연결에 문제가 있는 패턴
Client execute
Server
RPC Timeline Pattern 2
Network이 느린 경우
Client execute
Server
해외서버에 서버가 존재하는경우
Network 트래픽, 서버의 위치 점검
HTTP KeepAlive, HTTP2 활용
Gzip과 같은 압축활용
RPC Timeline Pattern 3
Client execute
Server
TargetServer의 처리가 느림
Client의 전면 장애로 파급될 가능성이 있음
Socket Timeout
Circuit breaker : Netflix Hystrix
TargetServer가 느림
RPC Timeline Pattern 4
Client execute
Server
Response 를 받은 후 Stream에서 데이터를 추가로 읽는 경우
- 대용량 파일 다운로드
보통 정상상태
이 상황이 문제를 유발한다면, 별도 서버 구축이 필요
응답데이터가 많음
5.
신기능 &
발전방향
1.5 신기능
Plugin System
사용자가 필요한 API의 정보 수집이 가능
Google Gson Plugin
- com.navercorp.pinpoint.plugin.gson.GsonPlugin
1.5 신기능
Real Time 강화
Was ActiveThread Monitoring
발전방향
예측, 제안, 패턴 분석
JVM 메모리가 OOM 패턴이라면 -> 경고
동일한 WAS의 응답시간 패턴이 다르다면 -> 경고
발전방향
발전방향
발전방향
예측, 제안, 패턴 분석
문제가 있는 Lib를 쓰고 있다면 -> 버전업 제안
JVM Version, Option 이 바람직하지 않다면 -> 권장 설정 제안
발전방향
Java가 아닌 구간도 프로파일링
WebServer구간의 성능 수집
- Apache, Nginx
Q&A
Thank You

Mais conteúdo relacionado

Mais procurados

Accelerating Envoy and Istio with Cilium and the Linux Kernel
Accelerating Envoy and Istio with Cilium and the Linux KernelAccelerating Envoy and Istio with Cilium and the Linux Kernel
Accelerating Envoy and Istio with Cilium and the Linux KernelThomas Graf
 
Event-driven Microservices with Python and Apache Kafka with Dave Klein | Ka...
Event-driven Microservices with Python and Apache Kafka with Dave Klein  | Ka...Event-driven Microservices with Python and Apache Kafka with Dave Klein  | Ka...
Event-driven Microservices with Python and Apache Kafka with Dave Klein | Ka...HostedbyConfluent
 
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...HostedbyConfluent
 
Distributed stream processing with Apache Kafka
Distributed stream processing with Apache KafkaDistributed stream processing with Apache Kafka
Distributed stream processing with Apache Kafkaconfluent
 
Confluent Workshop Series: ksqlDB로 스트리밍 앱 빌드
Confluent Workshop Series: ksqlDB로 스트리밍 앱 빌드Confluent Workshop Series: ksqlDB로 스트리밍 앱 빌드
Confluent Workshop Series: ksqlDB로 스트리밍 앱 빌드confluent
 
From Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
From Message to Cluster: A Realworld Introduction to Kafka Capacity PlanningFrom Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
From Message to Cluster: A Realworld Introduction to Kafka Capacity Planningconfluent
 
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Henning Jacobs
 
Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Seung-Hoon Baek
 
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)I Goo Lee
 
Building Microservices with Apache Kafka
Building Microservices with Apache KafkaBuilding Microservices with Apache Kafka
Building Microservices with Apache Kafkaconfluent
 
Kafka Streams State Stores Being Persistent
Kafka Streams State Stores Being PersistentKafka Streams State Stores Being Persistent
Kafka Streams State Stores Being Persistentconfluent
 
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기SeungYong Oh
 
Windows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance ComparisonWindows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance ComparisonSeungmo Koo
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기Brian Hong
 
Stream Processing with Apache Kafka and .NET
Stream Processing with Apache Kafka and .NETStream Processing with Apache Kafka and .NET
Stream Processing with Apache Kafka and .NETconfluent
 
카프카(kafka) 성능 테스트 환경 구축 (JMeter, ELK)
카프카(kafka) 성능 테스트 환경 구축 (JMeter, ELK)카프카(kafka) 성능 테스트 환경 구축 (JMeter, ELK)
카프카(kafka) 성능 테스트 환경 구축 (JMeter, ELK)Hyunmin Lee
 
[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들NHN FORWARD
 
홍성우, 내가 만든 언어로 게임 만들기, NDC2017
홍성우, 내가 만든 언어로 게임 만들기, NDC2017홍성우, 내가 만든 언어로 게임 만들기, NDC2017
홍성우, 내가 만든 언어로 게임 만들기, NDC2017devCAT Studio, NEXON
 

Mais procurados (20)

Accelerating Envoy and Istio with Cilium and the Linux Kernel
Accelerating Envoy and Istio with Cilium and the Linux KernelAccelerating Envoy and Istio with Cilium and the Linux Kernel
Accelerating Envoy and Istio with Cilium and the Linux Kernel
 
Event-driven Microservices with Python and Apache Kafka with Dave Klein | Ka...
Event-driven Microservices with Python and Apache Kafka with Dave Klein  | Ka...Event-driven Microservices with Python and Apache Kafka with Dave Klein  | Ka...
Event-driven Microservices with Python and Apache Kafka with Dave Klein | Ka...
 
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
 
Distributed stream processing with Apache Kafka
Distributed stream processing with Apache KafkaDistributed stream processing with Apache Kafka
Distributed stream processing with Apache Kafka
 
Confluent Workshop Series: ksqlDB로 스트리밍 앱 빌드
Confluent Workshop Series: ksqlDB로 스트리밍 앱 빌드Confluent Workshop Series: ksqlDB로 스트리밍 앱 빌드
Confluent Workshop Series: ksqlDB로 스트리밍 앱 빌드
 
From Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
From Message to Cluster: A Realworld Introduction to Kafka Capacity PlanningFrom Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
From Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
 
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
 
Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조
 
Real time data quality on Flink
Real time data quality on FlinkReal time data quality on Flink
Real time data quality on Flink
 
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)
오픈소스로 만드는 DB 모니터링 시스템 (w/graphite+grafana)
 
Building Microservices with Apache Kafka
Building Microservices with Apache KafkaBuilding Microservices with Apache Kafka
Building Microservices with Apache Kafka
 
Envoy and Kafka
Envoy and KafkaEnvoy and Kafka
Envoy and Kafka
 
Kafka Streams State Stores Being Persistent
Kafka Streams State Stores Being PersistentKafka Streams State Stores Being Persistent
Kafka Streams State Stores Being Persistent
 
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
 
Windows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance ComparisonWindows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance Comparison
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기
 
Stream Processing with Apache Kafka and .NET
Stream Processing with Apache Kafka and .NETStream Processing with Apache Kafka and .NET
Stream Processing with Apache Kafka and .NET
 
카프카(kafka) 성능 테스트 환경 구축 (JMeter, ELK)
카프카(kafka) 성능 테스트 환경 구축 (JMeter, ELK)카프카(kafka) 성능 테스트 환경 구축 (JMeter, ELK)
카프카(kafka) 성능 테스트 환경 구축 (JMeter, ELK)
 
[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들
 
홍성우, 내가 만든 언어로 게임 만들기, NDC2017
홍성우, 내가 만든 언어로 게임 만들기, NDC2017홍성우, 내가 만든 언어로 게임 만들기, NDC2017
홍성우, 내가 만든 언어로 게임 만들기, NDC2017
 

Destaque

[153] apache reef
[153] apache reef[153] apache reef
[153] apache reefNAVER D2
 
[161] 데이터사이언스팀 빌딩
[161] 데이터사이언스팀 빌딩[161] 데이터사이언스팀 빌딩
[161] 데이터사이언스팀 빌딩NAVER D2
 
[113] lessons from realm
[113] lessons from realm[113] lessons from realm
[113] lessons from realmNAVER D2
 
[131] packetbeat과 elasticsearch
[131] packetbeat과 elasticsearch[131] packetbeat과 elasticsearch
[131] packetbeat과 elasticsearchNAVER D2
 
[142] how riot works
[142] how riot works[142] how riot works
[142] how riot worksNAVER D2
 
[112] 실전 스위프트 프로그래밍
[112] 실전 스위프트 프로그래밍[112] 실전 스위프트 프로그래밍
[112] 실전 스위프트 프로그래밍NAVER D2
 
[133] 브라우저는 vsync를 어떻게 활용하고 있을까
[133] 브라우저는 vsync를 어떻게 활용하고 있을까[133] 브라우저는 vsync를 어떻게 활용하고 있을까
[133] 브라우저는 vsync를 어떻게 활용하고 있을까NAVER D2
 
[162] jpa와 모던 자바 데이터 저장 기술
[162] jpa와 모던 자바 데이터 저장 기술[162] jpa와 모던 자바 데이터 저장 기술
[162] jpa와 모던 자바 데이터 저장 기술NAVER D2
 
[141] react everywhere
[141] react everywhere[141] react everywhere
[141] react everywhereNAVER D2
 
[152] 웹브라우저 감옥에서 살아남기
[152] 웹브라우저 감옥에서 살아남기[152] 웹브라우저 감옥에서 살아남기
[152] 웹브라우저 감옥에서 살아남기NAVER D2
 
[121]네이버 효과툰 구현 이야기
[121]네이버 효과툰 구현 이야기[121]네이버 효과툰 구현 이야기
[121]네이버 효과툰 구현 이야기NAVER D2
 
[124] mit cheetah 로봇의 탄생
[124] mit cheetah 로봇의 탄생[124] mit cheetah 로봇의 탄생
[124] mit cheetah 로봇의 탄생NAVER D2
 
[114] DRC hubo technical review
[114] DRC hubo technical review[114] DRC hubo technical review
[114] DRC hubo technical reviewNAVER D2
 
[132] rust
[132] rust[132] rust
[132] rustNAVER D2
 
[122] line on apple watch
[122] line on apple watch[122] line on apple watch
[122] line on apple watchNAVER D2
 
[111] 네이버효과툰어떻게만들어졌나
[111] 네이버효과툰어떻게만들어졌나[111] 네이버효과툰어떻게만들어졌나
[111] 네이버효과툰어떻게만들어졌나NAVER D2
 
[154] 데이터 센터의 오픈 소스 open compute project (ocp)
[154] 데이터 센터의 오픈 소스 open compute project (ocp)[154] 데이터 센터의 오픈 소스 open compute project (ocp)
[154] 데이터 센터의 오픈 소스 open compute project (ocp)NAVER D2
 
[143] 모바일 혈액진단기기 개발 삽질기
[143] 모바일 혈액진단기기 개발 삽질기[143] 모바일 혈액진단기기 개발 삽질기
[143] 모바일 혈액진단기기 개발 삽질기NAVER D2
 
[144]mobile앱에서 효율적인 storage 접근 방법
[144]mobile앱에서 효율적인 storage 접근 방법[144]mobile앱에서 효율적인 storage 접근 방법
[144]mobile앱에서 효율적인 storage 접근 방법NAVER D2
 
[134] immersive sound vr
[134] immersive sound vr[134] immersive sound vr
[134] immersive sound vrNAVER D2
 

Destaque (20)

[153] apache reef
[153] apache reef[153] apache reef
[153] apache reef
 
[161] 데이터사이언스팀 빌딩
[161] 데이터사이언스팀 빌딩[161] 데이터사이언스팀 빌딩
[161] 데이터사이언스팀 빌딩
 
[113] lessons from realm
[113] lessons from realm[113] lessons from realm
[113] lessons from realm
 
[131] packetbeat과 elasticsearch
[131] packetbeat과 elasticsearch[131] packetbeat과 elasticsearch
[131] packetbeat과 elasticsearch
 
[142] how riot works
[142] how riot works[142] how riot works
[142] how riot works
 
[112] 실전 스위프트 프로그래밍
[112] 실전 스위프트 프로그래밍[112] 실전 스위프트 프로그래밍
[112] 실전 스위프트 프로그래밍
 
[133] 브라우저는 vsync를 어떻게 활용하고 있을까
[133] 브라우저는 vsync를 어떻게 활용하고 있을까[133] 브라우저는 vsync를 어떻게 활용하고 있을까
[133] 브라우저는 vsync를 어떻게 활용하고 있을까
 
[162] jpa와 모던 자바 데이터 저장 기술
[162] jpa와 모던 자바 데이터 저장 기술[162] jpa와 모던 자바 데이터 저장 기술
[162] jpa와 모던 자바 데이터 저장 기술
 
[141] react everywhere
[141] react everywhere[141] react everywhere
[141] react everywhere
 
[152] 웹브라우저 감옥에서 살아남기
[152] 웹브라우저 감옥에서 살아남기[152] 웹브라우저 감옥에서 살아남기
[152] 웹브라우저 감옥에서 살아남기
 
[121]네이버 효과툰 구현 이야기
[121]네이버 효과툰 구현 이야기[121]네이버 효과툰 구현 이야기
[121]네이버 효과툰 구현 이야기
 
[124] mit cheetah 로봇의 탄생
[124] mit cheetah 로봇의 탄생[124] mit cheetah 로봇의 탄생
[124] mit cheetah 로봇의 탄생
 
[114] DRC hubo technical review
[114] DRC hubo technical review[114] DRC hubo technical review
[114] DRC hubo technical review
 
[132] rust
[132] rust[132] rust
[132] rust
 
[122] line on apple watch
[122] line on apple watch[122] line on apple watch
[122] line on apple watch
 
[111] 네이버효과툰어떻게만들어졌나
[111] 네이버효과툰어떻게만들어졌나[111] 네이버효과툰어떻게만들어졌나
[111] 네이버효과툰어떻게만들어졌나
 
[154] 데이터 센터의 오픈 소스 open compute project (ocp)
[154] 데이터 센터의 오픈 소스 open compute project (ocp)[154] 데이터 센터의 오픈 소스 open compute project (ocp)
[154] 데이터 센터의 오픈 소스 open compute project (ocp)
 
[143] 모바일 혈액진단기기 개발 삽질기
[143] 모바일 혈액진단기기 개발 삽질기[143] 모바일 혈액진단기기 개발 삽질기
[143] 모바일 혈액진단기기 개발 삽질기
 
[144]mobile앱에서 효율적인 storage 접근 방법
[144]mobile앱에서 효율적인 storage 접근 방법[144]mobile앱에서 효율적인 storage 접근 방법
[144]mobile앱에서 효율적인 storage 접근 방법
 
[134] immersive sound vr
[134] immersive sound vr[134] immersive sound vr
[134] immersive sound vr
 

Semelhante a [164] pinpoint

Implementing remote procedure calls rev2
Implementing remote procedure calls rev2Implementing remote procedure calls rev2
Implementing remote procedure calls rev2Sung-jae Park
 
스트리밍 프로토콜
스트리밍 프로토콜스트리밍 프로토콜
스트리밍 프로토콜greenday96
 
Wire shark 사용법 및 네트워크 개론 살짝 설명
Wire shark 사용법 및 네트워크 개론 살짝 설명Wire shark 사용법 및 네트워크 개론 살짝 설명
Wire shark 사용법 및 네트워크 개론 살짝 설명진우 이
 
Netmanias L2,L3 Training (3) L2, L3 QoS
Netmanias L2,L3 Training (3) L2, L3 QoSNetmanias L2,L3 Training (3) L2, L3 QoS
Netmanias L2,L3 Training (3) L2, L3 QoSChris Changmo Yoo
 
Fluentd with MySQL
Fluentd with MySQLFluentd with MySQL
Fluentd with MySQLI Goo Lee
 
Hadoop security DeView 2014
Hadoop security DeView 2014Hadoop security DeView 2014
Hadoop security DeView 2014Gruter
 
TXGX 2019_Jesse_Klaytn API Service
TXGX 2019_Jesse_Klaytn API ServiceTXGX 2019_Jesse_Klaytn API Service
TXGX 2019_Jesse_Klaytn API ServiceKlaytn
 
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0Ji-Woong Choi
 
세션1. block chain as a platform
세션1. block chain as a platform세션1. block chain as a platform
세션1. block chain as a platformJay JH Park
 
[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?용민 박
 
Radware Alteon Introduction - new GUI
Radware Alteon Introduction - new GUIRadware Alteon Introduction - new GUI
Radware Alteon Introduction - new GUI윤기 정
 
Xmpp 세미나
 Xmpp 세미나 Xmpp 세미나
Xmpp 세미나YoungGyu Chun
 
소켓프로그래밍 기초요약
소켓프로그래밍 기초요약소켓프로그래밍 기초요약
소켓프로그래밍 기초요약세빈 정
 
오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기영우 김
 
어려웠다, WebRTC를 활용한 360º 영상통화 트러블 슈팅
어려웠다, WebRTC를 활용한 360º 영상통화 트러블 슈팅어려웠다, WebRTC를 활용한 360º 영상통화 트러블 슈팅
어려웠다, WebRTC를 활용한 360º 영상통화 트러블 슈팅ksdc2019
 
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어NHN FORWARD
 
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료choi kyumin
 

Semelhante a [164] pinpoint (20)

Implementing remote procedure calls rev2
Implementing remote procedure calls rev2Implementing remote procedure calls rev2
Implementing remote procedure calls rev2
 
스트리밍 프로토콜
스트리밍 프로토콜스트리밍 프로토콜
스트리밍 프로토콜
 
Wire shark 사용법 및 네트워크 개론 살짝 설명
Wire shark 사용법 및 네트워크 개론 살짝 설명Wire shark 사용법 및 네트워크 개론 살짝 설명
Wire shark 사용법 및 네트워크 개론 살짝 설명
 
Netmanias L2,L3 Training (3) L2, L3 QoS
Netmanias L2,L3 Training (3) L2, L3 QoSNetmanias L2,L3 Training (3) L2, L3 QoS
Netmanias L2,L3 Training (3) L2, L3 QoS
 
Fluentd with MySQL
Fluentd with MySQLFluentd with MySQL
Fluentd with MySQL
 
네트워크 기본
네트워크 기본네트워크 기본
네트워크 기본
 
Hadoop security DeView 2014
Hadoop security DeView 2014Hadoop security DeView 2014
Hadoop security DeView 2014
 
TXGX 2019_Jesse_Klaytn API Service
TXGX 2019_Jesse_Klaytn API ServiceTXGX 2019_Jesse_Klaytn API Service
TXGX 2019_Jesse_Klaytn API Service
 
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
 
세션1. block chain as a platform
세션1. block chain as a platform세션1. block chain as a platform
세션1. block chain as a platform
 
[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?
 
Radware Alteon Introduction - new GUI
Radware Alteon Introduction - new GUIRadware Alteon Introduction - new GUI
Radware Alteon Introduction - new GUI
 
Xmpp
XmppXmpp
Xmpp
 
Xmpp 세미나
 Xmpp 세미나 Xmpp 세미나
Xmpp 세미나
 
소켓프로그래밍 기초요약
소켓프로그래밍 기초요약소켓프로그래밍 기초요약
소켓프로그래밍 기초요약
 
오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기
 
어려웠다, WebRTC를 활용한 360º 영상통화 트러블 슈팅
어려웠다, WebRTC를 활용한 360º 영상통화 트러블 슈팅어려웠다, WebRTC를 활용한 360º 영상통화 트러블 슈팅
어려웠다, WebRTC를 활용한 360º 영상통화 트러블 슈팅
 
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어
 
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
 
퀴즈요약
퀴즈요약퀴즈요약
퀴즈요약
 

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인가?
 

[164] pinpoint