Submit Search
Upload
Pinpoint spring_camp 2015
โข
Download as PPTX, PDF
โข
56 likes
โข
4,739 views
W
Woonduk-Kang
Follow
Pinpoint(open source APM) https://github.com/naver/pinpoint
Read less
Read more
Software
Report
Share
Report
Share
1 of 53
Download now
Recommended
Spring boot แ แ ณแฏ แแ ฅแจแแ ญแผแแ กแซ แแ ฅแซแแ กแแ ฉแแ ตแแ ฅแ แ ตแผ แแ ตแแ ณแแ ฆแท backend แแ ขแแ กแฏ แแ กแ แ จ
Spring boot แ แ ณแฏ แแ ฅแจแแ ญแผแแ กแซ แแ ฅแซแแ กแแ ฉแแ ตแแ ฅแ แ ตแผ แแ ตแแ ณแแ ฆแท backend แแ ขแแ กแฏ แแ กแ แ จ
Jemin Huh
ย
spring.io๋ฅผ ํตํด ๋ฐฐ์ฐ๋ spring ๊ฐ๋ฐ์ฌ๋ก
spring.io๋ฅผ ํตํด ๋ฐฐ์ฐ๋ spring ๊ฐ๋ฐ์ฌ๋ก
Daehwan Lee
ย
Spring ์น ํ๋ก์ ํธ ์์ํ๊ธฐ
Spring ์น ํ๋ก์ ํธ ์์ํ๊ธฐ
jiseob kim
ย
[์คํ์์ค์ปจ์คํ ] ์ค์นด์ฐํฐ ์ฌ์ฉ์ ๊ฐ์ด๋ 2020
[์คํ์์ค์ปจ์คํ ] ์ค์นด์ฐํฐ ์ฌ์ฉ์ ๊ฐ์ด๋ 2020
Ji-Woong Choi
ย
ํฐ์บฃ ์ด์ ๋ ธํ์ฐ
ํฐ์บฃ ์ด์ ๋ ธํ์ฐ
jieunsys
ย
Open source apm scouter๋ฅผ ํตํ ๊ด์ ๊ด๋ฆฌ jadecross ์ ํ์ด ์์
Open source apm scouter๋ฅผ ํตํ ๊ด์ ๊ด๋ฆฌ jadecross ์ ํ์ด ์์
uEngine Solutions
ย
แแ ณแแ ณแ แ ตแผ แแ ฎแแ ณแแ ช แ แ ฉแแ ตแผ
แแ ณแแ ณแ แ ตแผ แแ ฎแแ ณแแ ช แ แ ฉแแ ตแผ
Keesun Baik
ย
Spring 4.x Web Application ์ดํด๋ณด๊ธฐ
Spring 4.x Web Application ์ดํด๋ณด๊ธฐ
Ji Heon Kim
ย
Recommended
Spring boot แ แ ณแฏ แแ ฅแจแแ ญแผแแ กแซ แแ ฅแซแแ กแแ ฉแแ ตแแ ฅแ แ ตแผ แแ ตแแ ณแแ ฆแท backend แแ ขแแ กแฏ แแ กแ แ จ
Spring boot แ แ ณแฏ แแ ฅแจแแ ญแผแแ กแซ แแ ฅแซแแ กแแ ฉแแ ตแแ ฅแ แ ตแผ แแ ตแแ ณแแ ฆแท backend แแ ขแแ กแฏ แแ กแ แ จ
Jemin Huh
ย
spring.io๋ฅผ ํตํด ๋ฐฐ์ฐ๋ spring ๊ฐ๋ฐ์ฌ๋ก
spring.io๋ฅผ ํตํด ๋ฐฐ์ฐ๋ spring ๊ฐ๋ฐ์ฌ๋ก
Daehwan Lee
ย
Spring ์น ํ๋ก์ ํธ ์์ํ๊ธฐ
Spring ์น ํ๋ก์ ํธ ์์ํ๊ธฐ
jiseob kim
ย
[์คํ์์ค์ปจ์คํ ] ์ค์นด์ฐํฐ ์ฌ์ฉ์ ๊ฐ์ด๋ 2020
[์คํ์์ค์ปจ์คํ ] ์ค์นด์ฐํฐ ์ฌ์ฉ์ ๊ฐ์ด๋ 2020
Ji-Woong Choi
ย
ํฐ์บฃ ์ด์ ๋ ธํ์ฐ
ํฐ์บฃ ์ด์ ๋ ธํ์ฐ
jieunsys
ย
Open source apm scouter๋ฅผ ํตํ ๊ด์ ๊ด๋ฆฌ jadecross ์ ํ์ด ์์
Open source apm scouter๋ฅผ ํตํ ๊ด์ ๊ด๋ฆฌ jadecross ์ ํ์ด ์์
uEngine Solutions
ย
แแ ณแแ ณแ แ ตแผ แแ ฎแแ ณแแ ช แ แ ฉแแ ตแผ
แแ ณแแ ณแ แ ตแผ แแ ฎแแ ณแแ ช แ แ ฉแแ ตแผ
Keesun Baik
ย
Spring 4.x Web Application ์ดํด๋ณด๊ธฐ
Spring 4.x Web Application ์ดํด๋ณด๊ธฐ
Ji Heon Kim
ย
JBoss RHQ์ Byteman์ ์ด์ฉํ ์คํ์์ค ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ํฐ๋ง
JBoss RHQ์ Byteman์ ์ด์ฉํ ์คํ์์ค ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ํฐ๋ง
Ted Won
ย
Spring boot actuator
Spring boot actuator
Choonghyun Yang
ย
์คํ๋ง๊ตฐ์ด์์ด์ธํ ํ๊ธฐ(The way to setting the Spring framework for web.)
์คํ๋ง๊ตฐ์ด์์ด์ธํ ํ๊ธฐ(The way to setting the Spring framework for web.)
EunChul Shin
ย
Opensource APM SCOUTER in practice
Opensource APM SCOUTER in practice
GunHee Lee
ย
แแ ฉแทแแ ขแบ #11-แแ ตแธ
แแ ฉแทแแ ขแบ #11-แแ ตแธ
GyuSeok Lee
ย
Html5 performance
Html5 performance
yongwoo Jeon
ย
[์คํ์์ค์ปจ์คํ ]์ค์นด์ฐํฐ์์ค ์๊ฐ
[์คํ์์ค์ปจ์คํ ]์ค์นด์ฐํฐ์์ค ์๊ฐ
Open Source Consulting
ย
แแ ฉแทแแ ขแบ #10-แแ ฉแแ ตแแ ฅแ แ ตแผ
แแ ฉแทแแ ขแบ #10-แแ ฉแแ ตแแ ฅแ แ ตแผ
GyuSeok Lee
ย
[Hello world ์คํ์ธ๋ฏธ๋]open api client๊ฐ๋ฐ
[Hello world ์คํ์ธ๋ฏธ๋]open api client๊ฐ๋ฐ
NAVER D2
ย
Tomcat ๋ง์ด๊ทธ๋ ์ด์ ๋์ ํ๊ธฐ (Jins Choi)
Tomcat ๋ง์ด๊ทธ๋ ์ด์ ๋์ ํ๊ธฐ (Jins Choi)
์ต (sarc.io)
ย
์ด๋ฒคํธ ๊ธฐ๋ฐ ๋ถ์ฐ ์์คํ ์ ํฅํ ์ฌ์
์ด๋ฒคํธ ๊ธฐ๋ฐ ๋ถ์ฐ ์์คํ ์ ํฅํ ์ฌ์
Arawn Park
ย
๋คํจ๊ป, FluxUtils ํ๋ฐํด!
๋คํจ๊ป, FluxUtils ํ๋ฐํด!
์ฐ์ ์ฃผ
ย
Open source APM Scouter๋ก ๋ชจ๋ํฐ๋ง ์ ํ๊ธฐ
Open source APM Scouter๋ก ๋ชจ๋ํฐ๋ง ์ ํ๊ธฐ
GunHee Lee
ย
Springcamp spring boot intro
Springcamp spring boot intro
Jae-il Lee
ย
Spring boot DI
Spring boot DI
Hyosang Hong
ย
[์คํ์์ค์ปจ์คํ ]Java Performance Tuning
[์คํ์์ค์ปจ์คํ ]Java Performance Tuning
Ji-Woong Choi
ย
[์คํ์์ค์ปจ์คํ ]Spring MVC
[์คํ์์ค์ปจ์คํ ]Spring MVC
Ji-Woong Choi
ย
แแ ฉแทแแ ขแบ #08-แแ ฐแธแแ ฅแแ ฅ แแ งแซแแ ฉแผ
แแ ฉแทแแ ขแบ #08-แแ ฐแธแแ ฅแแ ฅ แแ งแซแแ ฉแผ
GyuSeok Lee
ย
JSP ๋น ๋ฅด๊ฒ ์์ํ๊ธฐ
JSP ๋น ๋ฅด๊ฒ ์์ํ๊ธฐ
Park JoongSoo
ย
แแ ฉแทแแ ขแบ #01-แแ ฉแแ ข
แแ ฉแทแแ ขแบ #01-แแ ฉแแ ข
GyuSeok Lee
ย
Springcamp 2015 - xss๋ ๋ค๊ฐ ๋งก์๋ผ
Springcamp 2015 - xss๋ ๋ค๊ฐ ๋งก์๋ผ
Hyeong-Kyu Lee
ย
แแ ขแแ กแแ ฅแแ ฉแซ nGrinder-SpringCamp 2015
แแ ขแแ กแแ ฅแแ ฉแซ nGrinder-SpringCamp 2015
Lim SungHyun
ย
More Related Content
What's hot
JBoss RHQ์ Byteman์ ์ด์ฉํ ์คํ์์ค ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ํฐ๋ง
JBoss RHQ์ Byteman์ ์ด์ฉํ ์คํ์์ค ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ํฐ๋ง
Ted Won
ย
Spring boot actuator
Spring boot actuator
Choonghyun Yang
ย
์คํ๋ง๊ตฐ์ด์์ด์ธํ ํ๊ธฐ(The way to setting the Spring framework for web.)
์คํ๋ง๊ตฐ์ด์์ด์ธํ ํ๊ธฐ(The way to setting the Spring framework for web.)
EunChul Shin
ย
Opensource APM SCOUTER in practice
Opensource APM SCOUTER in practice
GunHee Lee
ย
แแ ฉแทแแ ขแบ #11-แแ ตแธ
แแ ฉแทแแ ขแบ #11-แแ ตแธ
GyuSeok Lee
ย
Html5 performance
Html5 performance
yongwoo Jeon
ย
[์คํ์์ค์ปจ์คํ ]์ค์นด์ฐํฐ์์ค ์๊ฐ
[์คํ์์ค์ปจ์คํ ]์ค์นด์ฐํฐ์์ค ์๊ฐ
Open Source Consulting
ย
แแ ฉแทแแ ขแบ #10-แแ ฉแแ ตแแ ฅแ แ ตแผ
แแ ฉแทแแ ขแบ #10-แแ ฉแแ ตแแ ฅแ แ ตแผ
GyuSeok Lee
ย
[Hello world ์คํ์ธ๋ฏธ๋]open api client๊ฐ๋ฐ
[Hello world ์คํ์ธ๋ฏธ๋]open api client๊ฐ๋ฐ
NAVER D2
ย
Tomcat ๋ง์ด๊ทธ๋ ์ด์ ๋์ ํ๊ธฐ (Jins Choi)
Tomcat ๋ง์ด๊ทธ๋ ์ด์ ๋์ ํ๊ธฐ (Jins Choi)
์ต (sarc.io)
ย
์ด๋ฒคํธ ๊ธฐ๋ฐ ๋ถ์ฐ ์์คํ ์ ํฅํ ์ฌ์
์ด๋ฒคํธ ๊ธฐ๋ฐ ๋ถ์ฐ ์์คํ ์ ํฅํ ์ฌ์
Arawn Park
ย
๋คํจ๊ป, FluxUtils ํ๋ฐํด!
๋คํจ๊ป, FluxUtils ํ๋ฐํด!
์ฐ์ ์ฃผ
ย
Open source APM Scouter๋ก ๋ชจ๋ํฐ๋ง ์ ํ๊ธฐ
Open source APM Scouter๋ก ๋ชจ๋ํฐ๋ง ์ ํ๊ธฐ
GunHee Lee
ย
Springcamp spring boot intro
Springcamp spring boot intro
Jae-il Lee
ย
Spring boot DI
Spring boot DI
Hyosang Hong
ย
[์คํ์์ค์ปจ์คํ ]Java Performance Tuning
[์คํ์์ค์ปจ์คํ ]Java Performance Tuning
Ji-Woong Choi
ย
[์คํ์์ค์ปจ์คํ ]Spring MVC
[์คํ์์ค์ปจ์คํ ]Spring MVC
Ji-Woong Choi
ย
แแ ฉแทแแ ขแบ #08-แแ ฐแธแแ ฅแแ ฅ แแ งแซแแ ฉแผ
แแ ฉแทแแ ขแบ #08-แแ ฐแธแแ ฅแแ ฅ แแ งแซแแ ฉแผ
GyuSeok Lee
ย
JSP ๋น ๋ฅด๊ฒ ์์ํ๊ธฐ
JSP ๋น ๋ฅด๊ฒ ์์ํ๊ธฐ
Park JoongSoo
ย
แแ ฉแทแแ ขแบ #01-แแ ฉแแ ข
แแ ฉแทแแ ขแบ #01-แแ ฉแแ ข
GyuSeok Lee
ย
What's hot
(20)
JBoss RHQ์ Byteman์ ์ด์ฉํ ์คํ์์ค ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ํฐ๋ง
JBoss RHQ์ Byteman์ ์ด์ฉํ ์คํ์์ค ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ํฐ๋ง
ย
Spring boot actuator
Spring boot actuator
ย
์คํ๋ง๊ตฐ์ด์์ด์ธํ ํ๊ธฐ(The way to setting the Spring framework for web.)
์คํ๋ง๊ตฐ์ด์์ด์ธํ ํ๊ธฐ(The way to setting the Spring framework for web.)
ย
Opensource APM SCOUTER in practice
Opensource APM SCOUTER in practice
ย
แแ ฉแทแแ ขแบ #11-แแ ตแธ
แแ ฉแทแแ ขแบ #11-แแ ตแธ
ย
Html5 performance
Html5 performance
ย
[์คํ์์ค์ปจ์คํ ]์ค์นด์ฐํฐ์์ค ์๊ฐ
[์คํ์์ค์ปจ์คํ ]์ค์นด์ฐํฐ์์ค ์๊ฐ
ย
แแ ฉแทแแ ขแบ #10-แแ ฉแแ ตแแ ฅแ แ ตแผ
แแ ฉแทแแ ขแบ #10-แแ ฉแแ ตแแ ฅแ แ ตแผ
ย
[Hello world ์คํ์ธ๋ฏธ๋]open api client๊ฐ๋ฐ
[Hello world ์คํ์ธ๋ฏธ๋]open api client๊ฐ๋ฐ
ย
Tomcat ๋ง์ด๊ทธ๋ ์ด์ ๋์ ํ๊ธฐ (Jins Choi)
Tomcat ๋ง์ด๊ทธ๋ ์ด์ ๋์ ํ๊ธฐ (Jins Choi)
ย
์ด๋ฒคํธ ๊ธฐ๋ฐ ๋ถ์ฐ ์์คํ ์ ํฅํ ์ฌ์
์ด๋ฒคํธ ๊ธฐ๋ฐ ๋ถ์ฐ ์์คํ ์ ํฅํ ์ฌ์
ย
๋คํจ๊ป, FluxUtils ํ๋ฐํด!
๋คํจ๊ป, FluxUtils ํ๋ฐํด!
ย
Open source APM Scouter๋ก ๋ชจ๋ํฐ๋ง ์ ํ๊ธฐ
Open source APM Scouter๋ก ๋ชจ๋ํฐ๋ง ์ ํ๊ธฐ
ย
Springcamp spring boot intro
Springcamp spring boot intro
ย
Spring boot DI
Spring boot DI
ย
[์คํ์์ค์ปจ์คํ ]Java Performance Tuning
[์คํ์์ค์ปจ์คํ ]Java Performance Tuning
ย
[์คํ์์ค์ปจ์คํ ]Spring MVC
[์คํ์์ค์ปจ์คํ ]Spring MVC
ย
แแ ฉแทแแ ขแบ #08-แแ ฐแธแแ ฅแแ ฅ แแ งแซแแ ฉแผ
แแ ฉแทแแ ขแบ #08-แแ ฐแธแแ ฅแแ ฅ แแ งแซแแ ฉแผ
ย
JSP ๋น ๋ฅด๊ฒ ์์ํ๊ธฐ
JSP ๋น ๋ฅด๊ฒ ์์ํ๊ธฐ
ย
แแ ฉแทแแ ขแบ #01-แแ ฉแแ ข
แแ ฉแทแแ ขแบ #01-แแ ฉแแ ข
ย
Viewers also liked
Springcamp 2015 - xss๋ ๋ค๊ฐ ๋งก์๋ผ
Springcamp 2015 - xss๋ ๋ค๊ฐ ๋งก์๋ผ
Hyeong-Kyu Lee
ย
แแ ขแแ กแแ ฅแแ ฉแซ nGrinder-SpringCamp 2015
แแ ขแแ กแแ ฅแแ ฉแซ nGrinder-SpringCamp 2015
Lim SungHyun
ย
REST
REST
๊ฐ์ฐ ๊น
ย
Pinpoint ๋์ ๊ธฐ - 2016 ์ ๋ฆผํ๋ก๊ทธ๋๋จธ ์คํ ์ธ๋ฏธ๋
Pinpoint ๋์ ๊ธฐ - 2016 ์ ๋ฆผํ๋ก๊ทธ๋๋จธ ์คํ ์ธ๋ฏธ๋
none
ย
SpringCamp 2014 : ๋ฏธ๊ตญ์ธ์๊ฒ ์์ด ํ๋ฆฌ์ ํ ์ด์ ์ ํด๋ดค์ด์
SpringCamp 2014 : ๋ฏธ๊ตญ์ธ์๊ฒ ์์ด ํ๋ฆฌ์ ํ ์ด์ ์ ํด๋ดค์ด์
YongSik Jeong
ย
TOAST Meetup2015 - TOAST Cloud XaaS framework architecture (๋ฌธ์ง์)
TOAST Meetup2015 - TOAST Cloud XaaS framework architecture (๋ฌธ์ง์)
TOAST_NHNent
ย
์ ๋ฆผํ๋ก๊ทธ๋๋จธ๋ชจ์_๊ฐ๋ฐํ๋ก์ธ์ค๊ฐ์ ๊ธฐ
์ ๋ฆผํ๋ก๊ทธ๋๋จธ๋ชจ์_๊ฐ๋ฐํ๋ก์ธ์ค๊ฐ์ ๊ธฐ
none
ย
[D2 fest 2014]yobi hands on lab
[D2 fest 2014]yobi hands on lab
NAVER D2
ย
Spring camp แแ กแฏแแ ญแแ กแ แ ญ
Spring camp แแ กแฏแแ ญแแ กแ แ ญ
์ํ ์ด
ย
Re frame
Re frame
Sang-Kyu Park
ย
์ 5ํ Lisp ์ธ๋ฏธ๋ - ํด๋ก์ ๊ฐ๋ฐํ์ ์ํ ์ง์์ ์ธ ํตํฉ
์ 5ํ Lisp ์ธ๋ฏธ๋ - ํด๋ก์ ๊ฐ๋ฐํ์ ์ํ ์ง์์ ์ธ ํตํฉ
NAVER D2
ย
์ 5ํ Lisp ์ธ๋ฏธ๋ - Graphics Programming in Clojure
์ 5ํ Lisp ์ธ๋ฏธ๋ - Graphics Programming in Clojure
NAVER D2
ย
์คํ๋ง ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ฌธ์ ํด๊ฒฐ์ฌ๋ก์ ์ํฐํจํด
์คํ๋ง ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ฌธ์ ํด๊ฒฐ์ฌ๋ก์ ์ํฐํจํด
Sanghyuk Jung
ย
core.logic (Clojure)
core.logic (Clojure)
Seonho Kim
ย
[D2 COMMUNITY] Open Container Seoul Meetup - Docker security
[D2 COMMUNITY] Open Container Seoul Meetup - Docker security
NAVER D2
ย
[D2 CAMPUS] 2016 ํ์๋ํ๊ต ํ๋ก๊ทธ๋๋ฐ ๊ฒฝ์๋ํ ๋ฌธ์
[D2 CAMPUS] 2016 ํ์๋ํ๊ต ํ๋ก๊ทธ๋๋ฐ ๊ฒฝ์๋ํ ๋ฌธ์
NAVER D2
ย
W3C Automotive ํ์ค ๊ฐ๋ฐ ํํฉ
W3C Automotive ํ์ค ๊ฐ๋ฐ ํํฉ
Wonsuk Lee
ย
[D2 CAMPUS] ์ญ์ค๋ SCCC ํ๋ก๊ทธ๋๋ฐ ๊ฒฝ์๋ํ ๋ฌธ์
[D2 CAMPUS] ์ญ์ค๋ SCCC ํ๋ก๊ทธ๋๋ฐ ๊ฒฝ์๋ํ ๋ฌธ์
NAVER D2
ย
[ํ์ฝ์ฌ์ธ๋ฏธ๋]๋ฏธ๋ฆฌ๋ณด๋ ๋๊ท๋ชจ ์๋ฐ์คํฌ๋ฆฝํธ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ
[ํ์ฝ์ฌ์ธ๋ฏธ๋]๋ฏธ๋ฆฌ๋ณด๋ ๋๊ท๋ชจ ์๋ฐ์คํฌ๋ฆฝํธ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ
์ ์ ์
ย
[D2 CAMPUS] ๋ถ์ฐ๋ Alcall ํ๋ก๊ทธ๋๋ฐ ๊ฒฝ์๋ํ ๋ฌธ์
[D2 CAMPUS] ๋ถ์ฐ๋ Alcall ํ๋ก๊ทธ๋๋ฐ ๊ฒฝ์๋ํ ๋ฌธ์
NAVER D2
ย
Viewers also liked
(20)
Springcamp 2015 - xss๋ ๋ค๊ฐ ๋งก์๋ผ
Springcamp 2015 - xss๋ ๋ค๊ฐ ๋งก์๋ผ
ย
แแ ขแแ กแแ ฅแแ ฉแซ nGrinder-SpringCamp 2015
แแ ขแแ กแแ ฅแแ ฉแซ nGrinder-SpringCamp 2015
ย
REST
REST
ย
Pinpoint ๋์ ๊ธฐ - 2016 ์ ๋ฆผํ๋ก๊ทธ๋๋จธ ์คํ ์ธ๋ฏธ๋
Pinpoint ๋์ ๊ธฐ - 2016 ์ ๋ฆผํ๋ก๊ทธ๋๋จธ ์คํ ์ธ๋ฏธ๋
ย
SpringCamp 2014 : ๋ฏธ๊ตญ์ธ์๊ฒ ์์ด ํ๋ฆฌ์ ํ ์ด์ ์ ํด๋ดค์ด์
SpringCamp 2014 : ๋ฏธ๊ตญ์ธ์๊ฒ ์์ด ํ๋ฆฌ์ ํ ์ด์ ์ ํด๋ดค์ด์
ย
TOAST Meetup2015 - TOAST Cloud XaaS framework architecture (๋ฌธ์ง์)
TOAST Meetup2015 - TOAST Cloud XaaS framework architecture (๋ฌธ์ง์)
ย
์ ๋ฆผํ๋ก๊ทธ๋๋จธ๋ชจ์_๊ฐ๋ฐํ๋ก์ธ์ค๊ฐ์ ๊ธฐ
์ ๋ฆผํ๋ก๊ทธ๋๋จธ๋ชจ์_๊ฐ๋ฐํ๋ก์ธ์ค๊ฐ์ ๊ธฐ
ย
[D2 fest 2014]yobi hands on lab
[D2 fest 2014]yobi hands on lab
ย
Spring camp แแ กแฏแแ ญแแ กแ แ ญ
Spring camp แแ กแฏแแ ญแแ กแ แ ญ
ย
Re frame
Re frame
ย
์ 5ํ Lisp ์ธ๋ฏธ๋ - ํด๋ก์ ๊ฐ๋ฐํ์ ์ํ ์ง์์ ์ธ ํตํฉ
์ 5ํ Lisp ์ธ๋ฏธ๋ - ํด๋ก์ ๊ฐ๋ฐํ์ ์ํ ์ง์์ ์ธ ํตํฉ
ย
์ 5ํ Lisp ์ธ๋ฏธ๋ - Graphics Programming in Clojure
์ 5ํ Lisp ์ธ๋ฏธ๋ - Graphics Programming in Clojure
ย
์คํ๋ง ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ฌธ์ ํด๊ฒฐ์ฌ๋ก์ ์ํฐํจํด
์คํ๋ง ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ฌธ์ ํด๊ฒฐ์ฌ๋ก์ ์ํฐํจํด
ย
core.logic (Clojure)
core.logic (Clojure)
ย
[D2 COMMUNITY] Open Container Seoul Meetup - Docker security
[D2 COMMUNITY] Open Container Seoul Meetup - Docker security
ย
[D2 CAMPUS] 2016 ํ์๋ํ๊ต ํ๋ก๊ทธ๋๋ฐ ๊ฒฝ์๋ํ ๋ฌธ์
[D2 CAMPUS] 2016 ํ์๋ํ๊ต ํ๋ก๊ทธ๋๋ฐ ๊ฒฝ์๋ํ ๋ฌธ์
ย
W3C Automotive ํ์ค ๊ฐ๋ฐ ํํฉ
W3C Automotive ํ์ค ๊ฐ๋ฐ ํํฉ
ย
[D2 CAMPUS] ์ญ์ค๋ SCCC ํ๋ก๊ทธ๋๋ฐ ๊ฒฝ์๋ํ ๋ฌธ์
[D2 CAMPUS] ์ญ์ค๋ SCCC ํ๋ก๊ทธ๋๋ฐ ๊ฒฝ์๋ํ ๋ฌธ์
ย
[ํ์ฝ์ฌ์ธ๋ฏธ๋]๋ฏธ๋ฆฌ๋ณด๋ ๋๊ท๋ชจ ์๋ฐ์คํฌ๋ฆฝํธ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ
[ํ์ฝ์ฌ์ธ๋ฏธ๋]๋ฏธ๋ฆฌ๋ณด๋ ๋๊ท๋ชจ ์๋ฐ์คํฌ๋ฆฝํธ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ
ย
[D2 CAMPUS] ๋ถ์ฐ๋ Alcall ํ๋ก๊ทธ๋๋ฐ ๊ฒฝ์๋ํ ๋ฌธ์
[D2 CAMPUS] ๋ถ์ฐ๋ Alcall ํ๋ก๊ทธ๋๋ฐ ๊ฒฝ์๋ํ ๋ฌธ์
ย
Similar to Pinpoint spring_camp 2015
Spring boot แแ ฉแผแแ กแจแแ ฉ(1-4์ฅ)
Spring boot แแ ฉแผแแ กแจแแ ฉ(1-4์ฅ)
Choonghyun Yang
ย
Catalyst Framework ์ดํด๋ณด๊ธฐ
Catalyst Framework ์ดํด๋ณด๊ธฐ
corund
ย
Jdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamic
knight1128
ย
Spring test mvc แแ กแฏแแ ญแแ กแ แ ญ
Spring test mvc แแ กแฏแแ ญแแ กแ แ ญ
์ํ ์ด
ย
Java Virtual Machine, Call stack, Java Byte Code
Java Virtual Machine, Call stack, Java Byte Code
Javajigi Jaesung
ย
Java 8 & Beyond
Java 8 & Beyond
Jay Lee
ย
.NET์์ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ ๋ฐฐ์ฐ๊ธฐ
.NET์์ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ ๋ฐฐ์ฐ๊ธฐ
Seong Won Mun
ย
GKAC 2015 Apr. - Battery, ์๋๋ก์ด๋๋ฅผ ์ํ ์ฌ์ด ์น API ํธ์ถ
GKAC 2015 Apr. - Battery, ์๋๋ก์ด๋๋ฅผ ์ํ ์ฌ์ด ์น API ํธ์ถ
GDG Korea
ย
Springmvc
Springmvc
HyungKuIm
ย
4-2. ajax
4-2. ajax
JinKyoungHeo
ย
Clean code appendix 1
Clean code appendix 1
HyeonSeok Choi
ย
vert.x ๋ฅผ ํ์ฉํ ๋ถ์ฐ์๋ฒ ๊ฐ๋ฐํ๊ธฐ
vert.x ๋ฅผ ํ์ฉํ ๋ถ์ฐ์๋ฒ ๊ฐ๋ฐํ๊ธฐ
John Kim
ย
HTTP web server ๊ตฌํ
HTTP web server ๊ตฌํ
Javajigi Jaesung
ย
[D2 ์คํ์ธ๋ฏธ๋]5.robolectric แแ กแซแแ ณแ แ ฉแแ ตแแ ณ แแ ฆแแ ณแแ ตแผ
[D2 ์คํ์ธ๋ฏธ๋]5.robolectric แแ กแซแแ ณแ แ ฉแแ ตแแ ณ แแ ฆแแ ณแแ ตแผ
NAVER D2
ย
4-3. jquery
4-3. jquery
JinKyoungHeo
ย
Meteor React Tutorial ๋ฐ๋ผํ๊ธฐ
Meteor React Tutorial ๋ฐ๋ผํ๊ธฐ
Jiam Seo
ย
Scala, Spring-Boot, JPA์ ๋ถํธํ๋ฉด์๋ ์ฆ๊ฑฐ์ด ๋๊ฑฐ
Scala, Spring-Boot, JPA์ ๋ถํธํ๋ฉด์๋ ์ฆ๊ฑฐ์ด ๋๊ฑฐ
Javajigi Jaesung
ย
Rx java essentials
Rx java essentials
Byeongsu Kang
ย
[์น๊ธฐ๋ฐ์์คํ 3์กฐ]e govframe ์ค๊ฐ๊ณ ์ฌ ์ ์ถ ์ ๋ฆฌ
[์น๊ธฐ๋ฐ์์คํ 3์กฐ]e govframe ์ค๊ฐ๊ณ ์ฌ ์ ์ถ ์ ๋ฆฌ
๊ตฌ ๋ด
ย
Node.js ์์ํ๊ธฐ
Node.js ์์ํ๊ธฐ
Huey Park
ย
Similar to Pinpoint spring_camp 2015
(20)
Spring boot แแ ฉแผแแ กแจแแ ฉ(1-4์ฅ)
Spring boot แแ ฉแผแแ กแจแแ ฉ(1-4์ฅ)
ย
Catalyst Framework ์ดํด๋ณด๊ธฐ
Catalyst Framework ์ดํด๋ณด๊ธฐ
ย
Jdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamic
ย
Spring test mvc แแ กแฏแแ ญแแ กแ แ ญ
Spring test mvc แแ กแฏแแ ญแแ กแ แ ญ
ย
Java Virtual Machine, Call stack, Java Byte Code
Java Virtual Machine, Call stack, Java Byte Code
ย
Java 8 & Beyond
Java 8 & Beyond
ย
.NET์์ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ ๋ฐฐ์ฐ๊ธฐ
.NET์์ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ ๋ฐฐ์ฐ๊ธฐ
ย
GKAC 2015 Apr. - Battery, ์๋๋ก์ด๋๋ฅผ ์ํ ์ฌ์ด ์น API ํธ์ถ
GKAC 2015 Apr. - Battery, ์๋๋ก์ด๋๋ฅผ ์ํ ์ฌ์ด ์น API ํธ์ถ
ย
Springmvc
Springmvc
ย
4-2. ajax
4-2. ajax
ย
Clean code appendix 1
Clean code appendix 1
ย
vert.x ๋ฅผ ํ์ฉํ ๋ถ์ฐ์๋ฒ ๊ฐ๋ฐํ๊ธฐ
vert.x ๋ฅผ ํ์ฉํ ๋ถ์ฐ์๋ฒ ๊ฐ๋ฐํ๊ธฐ
ย
HTTP web server ๊ตฌํ
HTTP web server ๊ตฌํ
ย
[D2 ์คํ์ธ๋ฏธ๋]5.robolectric แแ กแซแแ ณแ แ ฉแแ ตแแ ณ แแ ฆแแ ณแแ ตแผ
[D2 ์คํ์ธ๋ฏธ๋]5.robolectric แแ กแซแแ ณแ แ ฉแแ ตแแ ณ แแ ฆแแ ณแแ ตแผ
ย
4-3. jquery
4-3. jquery
ย
Meteor React Tutorial ๋ฐ๋ผํ๊ธฐ
Meteor React Tutorial ๋ฐ๋ผํ๊ธฐ
ย
Scala, Spring-Boot, JPA์ ๋ถํธํ๋ฉด์๋ ์ฆ๊ฑฐ์ด ๋๊ฑฐ
Scala, Spring-Boot, JPA์ ๋ถํธํ๋ฉด์๋ ์ฆ๊ฑฐ์ด ๋๊ฑฐ
ย
Rx java essentials
Rx java essentials
ย
[์น๊ธฐ๋ฐ์์คํ 3์กฐ]e govframe ์ค๊ฐ๊ณ ์ฌ ์ ์ถ ์ ๋ฆฌ
[์น๊ธฐ๋ฐ์์คํ 3์กฐ]e govframe ์ค๊ฐ๊ณ ์ฌ ์ ์ถ ์ ๋ฆฌ
ย
Node.js ์์ํ๊ธฐ
Node.js ์์ํ๊ธฐ
ย
Pinpoint spring_camp 2015
1.
Pinpoint ๋๊ท๋ชจ๋ถ์ฐํ๊ฒฝ์ถ์ ํ๋ซํผ ๊ฐ์ด๋ 2015-04-18
2.
2 ๋ฐํ์ โข Backend Java
developer โข 2006~ โข JAVA FRAMEWORK ๊ฐ๋ฐ/์ง์ โข ๋น๋๊ธฐ JAVA ๋คํฌ์ํฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ โข JAVA ํธ๋ฌ๋ธ ์ํ โข Heap dump, thread dump โข Open source patch, Debugging โข Multi Thread, Concurrency โข Pinpoint Technical Leader
3.
3 ๋ฐํ์
4.
4 ๋ชฉ์ฐจ โข Why โข ์๊ฐ โข
๊ธฐ์ ๊ฐ์ โข ์ด๋ ค์ด์ โข ๋ก๋๋งต
5.
5 Why A long time
ago. in a galaxy far, far away
6.
6 Why NOW
7.
7 Why โข ์ํฉ โข ์์ญ
์๋ฐฑ๋์ ์๋ฒ โข ๋ง์ ์ํํธ์จ์ด ๋ชจ๋ โข ๋ณต์กํ๊ฒ ์ฐ๋๋ ์๋น์ค โข ๋ฌธ์ โข ์ด๋ป๊ฒ ์ฐ๋๋๊ณ ์๋์ง ํ์ ์๋จ โข ๋ค๋ฅธ ์๋น์ค์ ์ํด ์ฅ์ ๊ฐ ๋ฐ์ โข ๊ฐ๋ณ ์๋ฒ์ ๋ํ ๋ชจ๋ํฐ๋ง์ผ๋ก๋ ์ฐ๊ด๊ด๊ณ ํ์ ์ด ์๋จ. โข ์๋ก์ด ํด๊ฒฐ์ฑ ์ด ํ์
8.
8 Why
9.
9 Why
10.
10 Why
11.
11 Why
12.
12 Why
13.
13 Why โข ํธ๋ฌ๋ธ ์ํ ์ด
ํ๋ค๋ค. โข ์ฝ์ ๋ค์ด๊ฐ๊ธฐ ์ซ๋ค โข ์์ญ๊ธฐ๊ฐ์ ๋ก๊ทธ โข ํ๊ฒฝ, ์ต์ โข ์๋ง์ ์ข ๋ฅ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ + ๋ค์ํ ๋ฒ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ โข ์ผ๊ทผํ๊ธฐ ์ซ๋ค โข ์์ ์ ์๋ํ โข ํธ๋ฌ๋ธ์ํ ์ ์๊ฐํ๋ ๋ฐ, ๊ด์ฐฐํ๋ ๋ทฐ๋ฅผ ๋ค๋ฅธ ์ฌ๋์๊ฒ๋ ์ ๊ณต โข ๊ธ๋ก ๋ฌธ์ ๋ฅผ ์ค๋ช ํ๋ ค๋ ์ด๋ ต๋๋ผ โข ์๋ชป๋ ๋ถ์์ผ๋ก ์ธํด ๋ฌธ์ ๊ฐ ์ฌ๋ฐ
14.
14 Why โข ํธ๋ฌ๋ธ ์ํ ์
๊ณ์ ํ๋ค๋ณด๋ ์์ ํ๋์ด ํ ์ผ์ด ์ค์
15.
15 Youโre Fired!!!
16.
16 ์ง์ ํ ํด๊ฒฐ์ฑ โข http://www.hanbit.co.kr/events/eventview.html?event_id=freebook
17.
17 ์๊ฐ http://github.com/naver/pinpoint โข ๋ถ์ฐํธ๋์ญ์ ์ถ์ โข
์ ํ๋ฆฌ์ผ์ด์ ํ ํด๋ก์ง ์๋ ๋ฐ๊ฒฌ โข ์ํํ์ฅ์ฑ โข ์ฝ๋ ์์ค์ ๊ฐ์์ฑ โข ์ฝ๋๋ฅผ ์์ ํ์ง ์๊ณ ์ฑ๋ฅ์ ๋ณด ์์ง
18.
18 ์๊ฐ
19.
19 ํ์ด์ผ ํ ๋ฌธ์ RPC
์ถ์ ์ ์๋ฏธ Node1๊ณผ Node2 ์ฌ์ด์ RPC๊ฐ์ ๊ด๊ณ๋ฅผ ์ด๋ป๊ฒ ์ฐพ์๊ฒ์ธ๊ฐ? ๋ฉ์์ง๋ฅผ ์ฐ๊ด๊ด๊ณ๋ฅผ ๋ํ๋ด๋ TAG
20.
20 TAG ๋์ โข Span
: RPC ์ถ์ ์ ์ํ ๊ธฐ๋ณธ ๋จ์. RPC๊ฐ ๋์ฐฉํ์ ๋ ์ฒ๋ฆฌํ ์์ โข Trace : ์ฐ๊ด๋ Span์ ์งํฉ. Span์ ์งํฉ์ TransactionId๊ฐ ๊ฐ์. Trace๋ SpanId์ ParaentSpanID๋ฅผ ํตํด ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ์ ๋ ฌ๋จ โข TraceId โข TrasantionId๋ message id๋ก ์ ์ฒด ์๋ฒ๊ตฐ์์ unique ํ ์์ด๋ โข SpanId, ParentId๋ก message์ ๊ด๊ณ๋ฅผ ์ ๋ ฌ
21.
21 Bytecode instrumentation
22.
22 ์ค์น โข Java ์คํ์
JavaAgent ์ค์ ์ถ๊ฐ -javaagent:$PINPOINT_PATH/pinpoint-bootstrap-$VERSION.jar -Dpinpoint.applicationName=โ$AGENT_GROUP_NAMEโ -Dpinpoint.agentId =โ$AGENT_UNIQUEUE_IDโ
23.
23 ํต์ฌ๊ฐ์น โข ๋ถ์ฐ RPC
์ถ์ โข ์ฝ๋๋ฅผ ์์ ํ์ง ์์
24.
24 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!"; } } โข Hello world! sample
25.
25 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!"; } } ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฉ ์
26.
26 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!"; } } ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฉ ์
27.
27 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!"; } } ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฉ ์
28.
28 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!"; } } ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฉ ์
29.
29 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!"; } } ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฉ ์
30.
30 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!"; } } ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฉ ์
31.
31 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 TAG โข TraceId ์์ฑ TRANSACTION_ID : ์ ์ฒด RPC ํธ์ถ์ ํ๋๋ก ๋ฌถ์์ ์๋ Key SPAN_ID : ๋์ ID PARENT_SPAN_ID : ๋ถ๋ชจ์ ID ๋ด๋ถ๋์
32.
32 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 TAG โข TraceId ์์ฑ TRANSACTION_ID : TomcatA^์์์๊ฐ^1 SPAN_ID : 10 (Random) PARENT_SPAN_ID : -1 (ROOT) ๋ด๋ถ๋์
33.
33 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 TAG โข Spring Controller Method ๋ ์ฝ๋ฉ ๋ด๋ถ๋์
34.
34 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 TAG โข HttpClient.execute()์ ํธ์ถ์ ๊ฐ๋ก์ฑ์ HttpGet์ TRACE_ID๋ฅผ ์ธํ ํ๋ค. โข Child TraceId ์์ฑ TRANSACTION_ID : TomcatA^์์์๊ฐ^1 -> TomcatA^์์์๊ฐ^1 SPAN_ID : 10 -> 20 PARENT_SPAN_ID : -1 -> 10 โข Child TraceId ๋ฅผ HttpGet์ ์ธํ HttpGet.setHeader(PINPOINT_TRANSACTION_ID, โTomcatA^์์์๊ฐ^1โ) HttpGet.setHeader(PINPOINT_SPAN_ID, โ20โ) HttpGet.setHeader(PINPOINT_PARENT_SPAN_ID, โ10โ) ๋ด๋ถ๋์
35.
35 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 TAG โข TAG๋ Request๋ฅผ TomcatB๋ก ์ ์ก. Tag Request ๋ด๋ถ๋์
36.
36 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 TAG โข TomcatB accept Check Header : HttpServletRequest.getHeader(PINPOINT_TRANSACTION_ID) โข Header์์ TraceId ๋ฅผ ์ธ์ํ์ฌ Child๋ก ๋์ TRANSACTION_ID : TomcatA^์์์๊ฐ^1 SPAN_ID : 20 PARENT_SPAN_ID : 10 Tag Request ๋ด๋ถ๋์
37.
37 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 TAG HBase TRANSACTION_ID : TomcatA^์์์๊ฐ^1 SPAN_ID : 20 PARENT_SPAN_ID : 10 Collector RowKey TomcatA^์์์๊ฐ^1 20 10 Hello() ํธ์ถ์ ๋ณด TraceData ๋ด๋ถ๋์
38.
38 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 TAG HBase TRANSACTION_ID : TomcatA^์์์๊ฐ^1 SPAN_ID : 10 PARENT_SPAN_ID : -1 Collector RowKey TomcatA^์์์๊ฐ^1 20 10 10 Hello() ํธ์ถ์ ๋ณด -1 Test() ํธ์ถ์ ๋ณด TraceData ๋ด๋ถ๋์
39.
39 RowKey TomcatA^์์์๊ฐ^1 20 10 10 Hello() ํธ์ถ์ ๋ณด -1 Test()
ํธ์ถ์ ๋ณด HBase UI ๋ด๋ถ๋์
40.
40 ํธ๋ฌ๋ธ ์ํ โข ์ธํ๋ผ์
๊ฐ ๊ตฌ์ฑ์์๊ฐ ์ ์์ ์ผ๋ก ๊ตฌ์ถ์ด ๋์๋๊ฐ? โข ํด์ธProxy์์ ํ๊ตญ์ ํน์ ์๋ฒ๋ก ์ฌ์ฉ์ ์์ฒญ์ ํ๋ฆ์ด ๊ธฐ๋ํ ๋๋ก ์ธ๊ฐ? โข ์๋ต์๊ฐ์ด ๋๋ฆฐ ๊ตฌ๊ฐ๊ณผ API๊ฐ ์๋๊ฐ? โข ๋๋ฆฐ ๊ตฌ๊ฐ์ ๋ํ ํ๋กํ์ผ๋ง ๋ฐ์ดํ ์ ๊ณต โข ์ฑ๋ฅ ํจํด ๋ฐ์ดํ ์ ๊ณต โข ๊ฐ๋ฐ->QA->์ด์๋จ๊ณ์์์ ์ฐ์์ ์ธ ํ์ธ
41.
41 ์ด๋ ค์ด์
42.
42 WARNING โข HBase๋ ์ฃฝ๊ณ โข
HBASE-7711 https://issues.apache.org/jira/browse/HBASE-7711 โข Hadoop ๋ฌดํ๋ฃจํ๊น์ง โข HDFS-5225 https://issues.apache.org/jira/browse/HDFS-5225 โข HBase, Hadoop ํด๋ฌ์คํฐ๋ฅผ ์ฌ์์ํด๋ ํ๋ณต์ด ์๋จ
43.
43 WARNING
44.
44 WARNING โข ๊ฐ๋ฅํ ์ต์
๋ฒ์ ์ Hadoop ํจ๋ฐ๋ฆฌ ์ฌ์ฉ โข ๊ด๋ฆฌ๋๋ Cloudera(CDH), Hortonworks(HDP) ๊ถ์ฅ โข Pinpoint๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋์ Java ๊ฐ๋ฐ์ โข ๊ฒธ์ฌ๊ฒธ์ฌ HBase, Hadoop๋ ์ดํด๋ณด๊ณ , ๊ธฐ์์ด๋ฉด ์์ค๋ ๊น๋ณด์ โข ์ฌ์ค ์ ๋ ๋ค ๋ชจ๋ฆ ๋๋ค. - ๋ญ๋ ์ง ์๋๊ฑด ์๋์ผ. ์๊ณ ์๋๊ฒ๋ง ์๋ฟ
45.
45 WARNING ํน์ ์๋์? HBase, Hadoop,
Zookeeper์ ์ ๋ฌธ๊ฐ๊ฐ ๋ ์ง ๋งํ ๊ฑฐ ๊ฐ์ง๋ ์์์์ ๊ฐ์ธ์ ๋ ธ๋ ฅ์ ํฌ์ํด ๋ด ์๋ค
46.
46 WARNING ์ง๊ธ ์ฌ๋ฌ๋ถ์ด ์ ๋ฌธ๊ฐ๊ฐ
๋ ์๋ ์์ง ์์๊น์?
47.
47 WARNING ์ฌ์ค ๊ทธ๊ฑธ ๋ ธ๋ฆฌ๊ณ
์ ํํ Backend์ ๋๋ค.
48.
48 ๋คํ์ธ ์ โข ์ค๊ณ
์ฌ์ โข Pinpoint์ backend๊ฐ ์ฃฝ์ด๋ Application์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ฉด ์๋๋ค. โข Collector โข HBase โข Hadoop โข ์ต์ฐ์ ์์๋ ์ฑ๋ฅ ๋ฐ์ดํฐ์์ง X โข Application์ด ์ ์์ ์ผ๋ก ๋์๊ฐ๋๊ฒ ์ต์ฐ์
49.
49 ๋คํ์ธ ์ โข ๋ญ๋
๊ทธ๋ ์ง๋ง ๋ง๋ก๋ ๋ค ๋จ โข ํฐ์๋ฆฌ ๋ ๋ ~~ โ์! ๊ฑฑ์ ๋ง์๋ผ๊น์. ์ ๋ฅผ ๋ฏฟ์ผ์ . ๋ชจ๋ ๊ฑด ๊ณํ๋๋ก~โ
50.
50 ๋คํ์ธ ์
51.
51 ๋คํ์ธ ์ โข ๊ฒ์ฆ๋์์ต๋๋ค โข
์ง์ ์ฒดํ โข ํ๊ณ๋ ๋ถ๋ช . ๋ฒ๊ทธ๋ ์ปค๋ฒ ๋ถ๊ฐ๋ฅ โข ๊ฐ๋ฐ์์ ๊ฒ์ฆ -> ์ด์ โข ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ๋ฉด ์ ๊ณ ํด์ฃผ์ธ์. ํฐ ๋์์ด ๋ฉ๋๋ค. โข ๋ฒ๊ทธ๋ ๊ณํ์ ์์๋ ์ผ
52.
52 ๋ก๋๋งต โข ์๋ /
Admin โข ์ค์๊ฐ ๋ฐ์ดํฐ โข EndUser ๋ชจ๋ํฐ๋ง โข ์ง์๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ โข ๊ฐ๋ฐ๊ฐ์ด๋ โข D2 Open Seminar (Java์ฑ๋ฅ + Pinpoint) 5์?
53.
53 ๋ ๊ฐ์ฌํฉ๋๋ค. http://github.com/naver/pinpoint http://helloworld.naver.com/helloworld /1194202
Editor's Notes
Backend java developer ์ ๋๋ค. Java ๊ธฐ๋ฐ์ ๋คํฌ์ํฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํ๋ ์์ํฌ, ํธ๋ฌ๋ธ์ํ ์ ์ง์ํ๊ณ , ํ์ฌ๋ pinpiont์ TL์ ํ๊ณ ์๊ตฌ. pinpoint๋ฅผ ์ง์ ๊ฐ๋ฐํ์ต๋๋ค.
์ด ์ฑ ์ ์ ์์ด๊ธฐ๋ ํฉ๋๋ค.
๊ณผ๊ฑฐ์๋ ์ฌ์ฉ์๊ฐ ์ผ๋ง ์๋๊ณ , ์๋ฒ๋ ์ผ๋ง ์๋ฌ์ต๋๋ค. ์๋ฒ์ ๋์๋ ์์๊ณ , ๋จ์ํ์ต๋๋ค.
ํ์ฌ๋ ์ฌ์ฉ์๊ฐ ๋ง์์ง๊ณ , ์๋น์ค๊ฐ ์ ์ ๋ณต์กํด์ง๋ฉด์, ๋ณต์ก๋๊ฐ ์ฆ๊ฐํ์์ต๋๋ค. ์ ํ๋ฉด์ netflix์ ์๋ฒ๋ชจ์ต์ธ๋ฐ. ๊ต์ฅํ ๋ณต์กํ๊ฒ์ ๋ณผ์ ์์ต๋๋ค.
์ํฉ์ ์ดํด ๋ณด๋ฉด ์์คํ ์ด ์ ์ ๋ณต์กํด ์ง๋ฉด์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ณ ์๋๊ฒ์ ๋ณผ์ ์๋๋ฐ. ๋ ์ด์์ ๊ธฐ์กด์ ๋ฐฉ์. ์ฆ ๋ก๊ทธ๋ฅผ ์ดํด ๋ค๋๊ฐ? ๊ฐ๋ณ ์์คํ ์ ์ดํด๋ณธ๋ค๋ ๊ฐ ํ๋๊ฒ์ผ๋ก๋ ์์คํ ์ ๋ณต์ก๋๋ฅผ ์ปค๋ฒํ๊ธฐ ํ๋ค์ด์ง๊ณ ์๋ค๋ ๊ฒ์ ๋๋์ ์์ต๋๋ค. ์ฆ ์ด ์ํฉ์ ๊ฐ์ ํ ์ ์๋ ์๋ก์ด ๋ฌด์์ด ํ์ํ๋ค๋ ์๊ฐ์ ํ ์ ์์ต๋๋ค.
๊ตฌ๊ธ์ ์ด๋ฏธ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ dapper๋๊ฒ์ 2010๋ ์ ๋ฐํ ํ์ต๋๋ค. ์์ฝ๊ฒ ๋น๊ณต๊ฐ์ ๋๋ค.
Twitter๋ dapper๋ฅผ ๊ธฐ๋ฐ์ผ๋ก zipkin์ด๋ผ๋ ํ๋ซํผ์ ๊ฐ๋ฐํ์ต๋๋ค.
์ฌ๋ฌ๊ฐ์ง ์์ฉ ์๋ฅ์ ๋ค๋ ์์ต๋๋ค. ํ๊ตญ์์ ๊ฐ์ฅ ์ ๋ช ํ ์ ๋ํผ๋ ์๊ตฌ์. ์ธ๊ณ์์ ๊ฐ์ฅ ์ข๋ค๊ณ ํ๋ 3๊ฐ์ ์ ํ๊ตฐ๋ ์์ต๋๋ค.
๋ค์ด๋ฒ๋ ์ด๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ์ํด์ Pinpoint๋ฅผ ๊ฐ๋ฐํ์ต๋๋ค.
๋ค์ด๋ฒ์ ์์คํ ๋ ์ ๋ง ๋ณต์กํ๊ฑฐ๋ ์. ์ฐ๋ฆฌ ์์คํ ์ ๋ณด์ก๋๋ฅผ ๋ชจ๋ฅด๊ณ ์๋ค๊ฐ, Pinpoint๋ฅผ ํตํด์ ์ฐ๋ฆฌ๊ฐ ์ด๋ ๊ฒ ๋ณต์กํ๋๋ฅผ ๋ฐ๊ฒฌํ๊ธฐ๋ ํฉ๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ํ์ํ์ต๋๋ค. ํธ๋ฌ๋ธ์ํ ์ ๋ด๋นํ์ง๋ง. ์์คํ ์ด ๋ณต์กํ๋ ํธ๋ฌ๋ธ์ํ ์ด ์ ์ ํ๋ค์ด์ก์ต๋๋ค. ์์์ผ ๋ ๊ฒ๋ ๋ง๊ตฌ์. ์ผ์ผ์ด ์๋ฒ ์ฝ์๋ค์ด๊ฐ๊ธฐ๋ ์ซ๊ณ , ์์ญ๊ธฐ๊ฐ ๋ก๊ทธ ๋ณผ๋ ค๋ ๋๋ ์ํ๊ณ ํ๋ค๊ณ , ๊ฐ๋ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ค ์ดํด๋ณด๋ ค๋ ํผ๊ณคํ๋๋ผ๊ตฌ์ ๊ทธ๋ฆฌ๊ณ ํธ๋ฌ๋ธ์ํ ํ๋๋ผ ์ผ๊ทผํ๊ธฐ๋ ์ซ๊ตฌ์. ๋ ํ๋๋ ์ฌ๋ฌ ์กฐ์ง์์ ํธ๋ฌ๋ธ์ํ ํ๊ณ ๊ณ์ ๋ฐ, ์ด๊ฑธ ์ข๋ ํธํ๊ฒ ์ง์์ ํ๊ณ ์ถ์์ต๋๋ค. ๊ตฌ์ง ์ ๊ฐ ๋ฉ์ผ์ ์ฐ๊ณ ๋ถ์์ ํ์ง ์๋๋ผ๋, ์ ๊ฐ ๋ณด๊ณ ์๋ ์ข๋ ํธํ๊ฒ ์ ๊ณตํ๊ณ ์ถ์์ต๋๋ค.
์์๋๊บผ๋ ์๋ฌด๋๋ ์ข ์ข์ ๋๊ธฐ๊ณ , ์ด์ ์ ๋งคํ ๋๊ธฐ๋ ํธ๋ฌ๋ธ์ํ ๋ ๊ณ์ํ๋ค ๋ณด๋. ์์คํ ์ด ์์ ํ๋์ ํ ์ผ์ด ์์ด์ง๋๋ผ๊ตฌ์. ์ต์ด ์์ํ ๋๋ ๊ฑฐ์ 1๋ ๋ด๋ด ์ฅ์ ์ง์์ ํ๋๋ฐ. ํด๊ฐ ๊ฐ์๋ก ๋น๋๊ฐ ์ค๊ฑฐ๋, ๊ธฐ์กด์ ํด๊ฒฐํ ๋ฐฉ์์ ๋์ ํ๋ฉด ๋๋๊ฑฐ๋ผ. ์๊ฐ์ด ์ค์์ต๋๋ค. ์๋ฌดํผ ํ ์ผ์ด ์ ๋ฐ์ ์ผ๋ก ์ค์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ํ ์ผ์ด ์ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?
๋ญ๊ธด ๋ญ๊ฐ์. ํด๊ณ ์ฃ .
์ง์ ํ ํด๊ฒฐ์ฑ ์ ๋๋ค. ๋๊ตฐ๋ค๋ ๊ณต์ง ์ ์ง๋ณด์๊ฐ ์ด๋ ต๊ฒ ์ง๋ฉด ํ์ ๊ฐ๋ฐ์๋ก ๋จน๊ณ ์ด์ ์์ต๋๋ค. ใ ใ . ์ด๊ฑด๋๋ด์ธ๊ฑฐ ์์์ฃ . ์๋ฌดํผ ์ด๊ฑด ๋์๋ฐฉํฅ์ผ๋ก์ ํด๊ฒฐ์ด์ฃ . ์ด๋ ๊ฒ ํ๋ฉด ํ์ฌ๋ ๋งํ๊ณ ์์ ์ ๋ฐ์ ๋ ์์ด์ง๋๋ค. ์ข์ ๋ฐฉํฅ์ ํด๊ฒฐ์ฑ ์ผ๋ก ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํ๊ณํ ์ ์๋ pinpint๋ฅผ ๊ฐ๋ฐํ๊ฒ ๋์์ต๋๋ค.
Pinpoint์ github ๋ด์ฉ์ธ๋ฐ. ๊ฐ๋จํ๊ฒ ์ค๋ช ํ๋ฉด Pinpoint๋ APMํด์ด๊ณ , java์ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง์ ํ๋ ํ๋ซํผ์ ๋๋ค. ์์คํ ๋ชจ๋ํฐ๋ง ํด๊ณผ๋ ๋ค๋ฅด๊ฒ, APMํด์ ๊ฑท์ ๋ณด๋๊ฒ ์๋๊ณ , ์ค์ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ํํ๋ ์ ๋ณด๋ฅผ ํ๋กํ์ผ ํ ์ ์๋ ํด์ ๋๋ค. ์์คํ ๋ชจ๋ํฐ๋ง์ด ์ฌ์ง๊ธฐ๋ผ๋ฉด, APMํด์ X-ray ์ฒ๋ผ ๋ด๋ถ๋ฅผ ๋ณผ์ ์๋ ํด์ ๋๋ค. ๋ง๋ก ๋ค์ผ๋ฉด ์ด๋ ค์ฐ์ค๊ฑฐ๋. ์ง์ ํ๋ฉด์ ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
ํ๋ฉด์ ๋ณด๋ฉด ๋จ์ํ๋ฐ, ์ด์ ๊ฐ์ด ์ดํ๋ฆฌ์ผ์ด์ ์ด ์ด๋ป๊ฒ ๋์ํ๋ ๋น์ฃผ์ผ ํ๊ฒ ๋ณผ์ ์์ต๋๋ค.
ํํฌ์ธํธ๊ฐ ํด๊ฒฐํ ๋ฌธ์ ๋ฅผ ๋ณด๊ฒ ์ต๋๋ค ์ค์ํ RPC ์ถ์ ์ ๋ํ ๋ด์ฉ์ธ๋ฐ์. ํต์ฌ์ ๋ฉ์์ง์ ๊ด๊ณ๋ฅผ ์ด๋ป๊ฒ ์ง๊ฒ์ธ๊ฐ์ ๋ํ ๋ฌธ์ ์ ๋๋ค. ์ด๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ํํฌ์ธํธ๋ ๋ฉ์์ง์ ์ถ์ ์ ์ํ tag๋ฅผ ๋ฌ๊ณ ์์ต๋๋ค.
์ถ์ ํ๊ทธ ๋ ํด๋น ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋์ํฉ๋๋ค. ์ค์ํ ์ถ์ ํค๋ transaction id ์ ์ฒด ๋ฅผ ๊ดํตํ๋ ์ ๋ํฌ ์์ด๋๊ฐ ์กด์ฌํ๊ตฌ์. ์ด ํค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ถ๋ชจ ์์๊ด๊ณ๋ฅผ ์ ๋ ฌํ ์ ์๋ spanId์ parentSpan๊ฐ ์กด์ฌํฉ๋๋ค. ์ด ์ถ์ ํค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก RPC๋ฉ์์ง๋ฅผ ์ถ์ ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ์ถ์ ํ๊ทธ์ ์ฒ๋ฆฌ๋ bytecode instrumentation์ ๊ธฐ๋ฐ์ผ๋ก ์๋์ผ๋ก ํํฌ์ธ์์ ์ฒ๋ฆฌํฉ๋๋ค. ์๋ฆฌ๋ ๊ฐ๋จํ๊ฒ. ์ถ์ ํ ๋ฉ์๋๋ฅผ ๋์์ผ๋ก ์ถ์ ์ฝ๋๋ฅผ ์๋ค๋ก ์ฌ๋๊ฒ์ผ๋ก ์ดํดํ๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ์ถ์ ํ๊ทธ์ ์ฒ๋ฆฌ๋ bytecode instrumentation์ ๊ธฐ๋ฐ์ผ๋ก ์๋์ผ๋ก ํํฌ์ธ์์ ์ฒ๋ฆฌํฉ๋๋ค. ์๋ฆฌ๋ ๊ฐ๋จํ๊ฒ. ์ถ์ ํ ๋ฉ์๋๋ฅผ ๋์์ผ๋ก ์ถ์ ์ฝ๋๋ฅผ ์๋ค๋ก ์ฌ๋๊ฒ์ผ๋ก ์ดํดํ๋ฉด ๋ฉ๋๋ค.
Pinpoint์ ํต์ฌ ๊ฐ์น๋ ์ด ๋๊ฐ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ๋ถ์ฐ RPC์ถ์ ์ด ์ค์ํ ์ด์ ๋ ๋ค์ด๋ฒ์ ์๋น์ค๊ฐ ๋ณต์กํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ง์ดํฌ๋ก ์๋น์ค ์ํคํ ์ณ ๋ฑ์ด ์์ฆ ์ ํํ๊ณ ์๋๋ฐ. ๋ค์ด๋ฒ์์๋ ์ด๋ฏธ ์ ์ฌํ ์คํ์ผ๋ก ์๋น์ค๊ฐ ๊ตฌ์ฑ๋๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฝ๋๋ฅผ ์์ ํ์ง ์๋๊ฒ ๋ํ ์ค์ํฉ๋๋ค. ๋ค์ด๋ฒ์ ์๋น์ค์๊ฐ ์์ฒญ ๋ง๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ข๋ ์ฝ๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฉ์๋ฅผ ๋ณด๊ฒ ์ต๋๋ค.
ํด๋น ์ ํ๋ฆฌ์ผ์ด์ ์ pinpoint๋ฅผ ์ ์ฉํ๋ฉด ์๋์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ป์์ ์์ต๋๋ค. ์ฝ๋๋ฅผ ๋ฐ๋ผ๊ฐ ๋ณด๊ฒ ์ต๋๋ค.
Tomcat b๋ก ์๊ฒฉ ํธ์ถ์ด ๋ค์ด๊ฐ๊ฒ์ ๋ชจ์ต์ด๊ตฌ์.
์ด์ ๊ฐ์ ์ฑ๋ฅ ๋ฐ์ดํฐ๋ฅผ ํํฌ์ธํธ๋ฅผ ํตํด ์ป์์ ์๊ตฌ์. ์ด๋ฌํ ์ฑ๋ฅ ์ ๋ณด๋ฅผ ํํฌ์ธํธ๊ฐ ์ด๋ป๊ฒ ์ถ์ ํ์ง๋ ๋ด๋ถ๋์์ ๋ณด๊ฒ ์ต๋๋ค.
ํํฌ์ธํธ๋ ๋ฉ์์ง๋ฅผ ๋ฐ์ผ๋ฉด traceid๋ผ๊ณ ์ถ์ ํค์ ์งํฉ์ ์์ฑํฉ๋๋ค.
์ค์ ๋ฐ์ดํฐ์ ์๋ ์ด์ ๊ฐ์ต๋๋ค.
์คํ๋ง ์ฝํธ๋กค๋ฌ ๋ฉ์๋ ์ ๋ณด๋ฅผ ๋ ์ฝ๋ฉํ๊ตฌ์
์๊ฒฉ ํธ์ถ์ ํํฌ์ธํธ์์ ์๋์ผ๋ก ์ถ์ ์ ํ์ํ traceId๋ฅผ Get๋ฉ์์ง์ ์ธํ ํฉ๋๋ค.
ํ๊ทธ๋ ๋ฆฌํ์คํธ๊ฐ ์๊ฒฉ์ง๋ก ๊ฐ๊ฒ๋ฉ๋๋ค.
ํฐ์บฃ b๋ ํํฌ๋ ๋ฆฌํ์คํธ๋ฅผ ๋ณด๊ณ ์์ ๋ ธ๋๋ก ๋์ํ๊ฒ ๋๊ตฌ์.
Tomcatb์ ๋ก์ง์ด ์ข ๋ฃํ๋ฉด ์ฑ๋ฅ ๋ฐ์ดํฐ๋ฅผ collector๋ก ๋ณด๋ด๊ฒ ๋ฉ๋๋ค.
Tomcat a์ ๋ก์ง์ด ์ข ๋ฃํ๋ฉด ์ญ์ ์ฑ๋ฅ ๋ฐ์ดํฐ๋ฅผ collector๋ก ๋ณด๋ด๊ฒ ๋๊ตฌ์.
์ ์ฅ๋ ์ ๋ณด๋ฅผ ์ฝ์ด์ ๋ณด์ฌ์ฃผ๊ฒ ๋๋ฉด ์ด์ ๊ฐ์ ์ฑ๋ฅ ์ ๋ณด๋ฅผ ์ป์์ ์์ต๋๋ค.
์ด๋ฅผ ํ์ฉํ ํธ๋ฌ๋ธ์ํ ์ฌ๋๋ ๋ง์ต๋๋ค. ์ผ๋จ ๋ฐ์ดํฐ๋ฅผ ํตํด ๋๋ถ๋ถ์ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ๋ฐ๋ก๋ฐ๋ก ์ง์ด ๋ผ์ ์์ต๋๋ค. ์๋ฒ๋งต ๋ฐ์ดํฐ์, ๊ฐ๋ณ request๋ฐ์ดํฐ๋ฅผ ์ดํด ๋ณด์๋ฉด ๋๋ฆฐ ๊ตฌ๊ฐ์ ์ง๊ด์ผ๋ก ์ก์ ๋ผ์ ์์ต๋๋ค.
ํํฌ์ธํธ๋ฅผ ๊ฐ๋ฐํ๋ฉด์ ์ด๋ ค์ด ์ ์ด ์๋๋ฐ์. ํํฌ์ธํธ์ ๋ฐฑ์ค๋๊ฐ ๋๋ ํ๋กํจ๋ฐ๋ฆฌ๋ค์ด ๊ต์ฅํ ์ด๋ ต์ต๋๋ค. ๋ถ์ฐํ๊ฒฝ์ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ ์์ด์ ๋ณต์กํ๊ธฐ๋ ํ๊ตฌ์. ํํฌ์ธํธ ์ง๋ฌธ์ค์ ๊ฐ์ฅ๋ง์ด ๋ฌผ์ด๋ณด๋ ๋น๋๋ ์ ์ผ๋์๊ฒ ๊ฐ์ต๋๋ค.
์ค์ ๋ก๋ ์ด๋ ต์ต๋๋ค. Hbase๋ ์ฃฝ๊ณ , hadoop๋ ๋ฌดํ๋ฃจํ๋ ๋๊ตฌ์. ์ฌ์์ํด๋ ํ๋ณต์ด ์๋๊ธฐ๋ ํ์ต๋๋ค. ์ด๋ฐ ์ผ์ด ๋ฐ์ํ๋ฉด ๊ต์ฅํ ๋๊ฐํ๋ฐ. ์ ์ฌ์ ์
์ด๋ฌ์ต๋๋ค.
์ผ๋จ ์ด๋ฐ ๋ฌธ์ ๋ ์ด๋ฏธ ๋ค ํด๊ฒฐ๋ ์ํ๊ณ , ์ด์์ค์ธ ๋ฒ์ ์ ๋๋ฌด ๊ตฌ๋ฒ์ ์ ์จ์ ๋ฐ์ํ ๋ฌธ์ ์ด๊ธฐ๋ ํฉ๋๋ค. ๋ฒ์ ์ ์ ๊ฒ์๋ฆฌํ๋ฐ์ ๋์จ ๋๊ฐ๋ค์. ๋ง์ฝ ๋ฌธ์ ๊ฐ ์๊ฒจ๋ ์ ๋ ๋นํฉํ์ง ๋ง์๊ธฐ ๋ฐ๋๋๋ค. ์ฑ๋ฅ๋ฐ์ดํฐ์ ์ข ๋ฌธ์ ์๊ฒจ๋ ๋น์ฆ๋์ค์๋ ํฐ๋ฌธ์ ๊ฐ ์์ผ๋. ์ผํธํก์ ํ๊ณ ํ๊ฐ์ฉ ํด๊ฒฐ ํ์๋ฉด ๋ฉ๋๋ค. Pinpoint๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋์ ์๋ฐ ๊ฐ๋ฐ์๋ถ๋ค์ด ๋ง์๊ฑด๋ฐ. ๊ธฐํ์ผ์์ ์ด๋ฒ๊ธฐํ์ hbase๋ ๋ณด๊ณ , ํ๋ก๋ ์ดํด๋ณด๊ณ , ๊ธฐ์์ด๋ฉด ์์ค๋ ๋ณด๋ฉด ์ข์์์. ์ ๋ ๋ค ์๋๊ฒ ์๋๊ธฐ๋ ํฉ๋๋ค.
๋ณด๋ค ๋ณด๋ฉด ์ ๋ฌธ๊ฐ๊ฐ ๋ ์๋ ์์ผ๋ ํ๋ฒ ํด๋๊ฒ๋ ๊ด์ฐฎ์๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ค ์ฌ๋๋ ์ฒ์๋ถํฐ ์ ๋ฌธ๊ฐ๊ฐ ์๋์์์, ํด๋ด์ผ ์๋๊ฒ๋๋ค. ํํฌ์ธํธ๋ฅผ ํ๋ฉด์ ๊ธฐํ๊ฐ ๋๋ฉด ๊ฒธ์ฌ๊ฒธ์ฌ ํด๋ณด๋๊ฒ ๋์์ง๋ ์์๊ฑฐ ๊ฐ์์. ํน์ ์ ๊ฐ ๋งํ๊ฒ์ฒ๋ผ ์๊ฐํ์ ๋ถ ์๋์? ๊ทธ๋ ๋ค๋ฉด
์ธ์์ผ์ ์ ๋ชจ๋ฅด๋๊ฑด๋ฐ. ์ฌ๊ธฐ ๋ฃ๋ ์ฌ๋ฌ๋ถ์ด ๋์์ผ์๋ ์์ด์.
๊ณํ๋๋ก๋ค์. ์ต์ด ๋ง๋ค๋๋ถํฐ ๊ฐ๋ฅํ ํํฌ์ธํธ ๊ธฐ์ ์ ํ์ ํฅํ์ ์ถฉ๋ถํ ํ์ฉํ ์ ์์ ๋งํ๊ฒ์ผ๋ก ์ ํํ์ต๋๋ค. ์๋ฌด๋๋ ๊ฐ์ธ์ ๋ฐ์ ์ด๋, ๋๊ธฐ์ ๋ฐ์ ๊ธ์ ์ ์ผ๋ก ์ ๊ทผํ๊ธฐ ์ํด์์. ๊ทธ๋ฆฌ๊ณ ํํฌ์ธํธ๋ ์คํ์์ค์์์. ์์ค๊ฐ ์ด๋ ค ์๊ตฌ์. ์ด๊ฒ๋ ์ถฉ๋ถํ ํฌ์ํด ๋ณผ๋งํ์ง ์์ ํฉ๋๋ค.
ํํธ์ผ๋ก๋ ๋คํ์ธ์ ๋ ์์ต๋๋ค ์ค์์ค๊ณ ์ฌ์์ด ์๋๋ฐ. ๋ฐฑ์ค๋๊ฐ ์ฃฝ์ด๋, ์ดํ๋ฆฌ์ผ์ด์ ์ ์ ์์ผ๋ก ๋์๊ฐ๋๊ฒ์ ์ต์ฐ์ ๋ชฉํ๋ก ํ๊ณ ์์ต๋๋ค.
๊ทธ๋ ์ง๋ง ์ฌ์์ ์ฌ์์ด๊ณ , ์ด๋ก ๊ณผ ํ์ค์ ๋ค๋ฅด์์์, ๋ง๋ก๋ ๋ค๋์ฃ . ์ฌ์ค ์ ๊ฐ ์์์๋ ์ ๋ ๊ฒ ํฐ์๋ฆฌ๋ฅผ ์ณค๋๋ฐ. ์๊ณ ๋ณด๋ฉด ๋ค์์
์ด๋ฌ์ต๋๋ค. ํ ์คํธ๋ ์ด๋ก ์ผ๋ก๋ ๊ฒ์ฆํ์ง๋ง. ์ง์ง๋ก ๊ทธ๋ ๊ฒ ๋์ํ ์ง๋ ๋ฆฌ์ผํ๊ฒฝ์์ ์ค์ ๋์ํด๋ด์ผ ์๋๊ฑฐ๋ผ์์.
๊ทธ๋ฐ๋ฐ ๋คํ์ด ํ์ค์์ ๊ฒ์ฆ๋์์ต๋๋ค. ์์ฌํ์ ๋ ๋ฉ๋๋ค. ๊ทธ๋ ๋ค๊ณ ํด์ ๋ฐฉ์ฌ์ ํ๋ฉด ์๋๋. ๋ฐ๋์ ๊ฐ๋ฐ์์ ๋จผ์ ๊ฒ์ฆํด์ ์ด์์ผ๋ก ๋์ด๊ฐ๋๊ฑธ ์ถ์ฒ๋๋ฆฝ๋๋ค. ์ด ๊ณผ์ ์ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ๋ฉด ์ ํฌํํ ๊ผญ ์๋ ค์ฃผ์ จ์ผ๋ฉด ํ๊ตฌ์.
์์ ๋ก๋๋งต์ ์ด์ ๊ฐ์ต๋๋ค. ์ฝ์ด ๊ธฐ๋ฅ์๋ง ์ง์คํ๋ค ๋ณด๋. ์ข ๋ฏธ๋ค์ง ๊ฒฝํฅ์ด ์๋๋ฐ. ๋ง๋ค๋ ค๊ณ ํ๊ณ ์์ต๋๋ค. ์ค์๊ฐ ๋ฐ์ดํฐ ๊ฐ์ ๊ฒฝ์ฐ๋ ActiveThread์ ๋ ํ์ํ์์์์. ์ด๊ฒ๋ ๋ง๋ค๋ ค๊ณ ํ๊ณ ์์ต๋๋ค. ์ ์ ๋ ๋ฐ์ ์ํฌ๊ฑฐ๋. ๊ธฐ๋ํด์ฃผ์ ์๋ง 5์์๋ D2 ์คํ ์ธ๋ฏธ๋๊ฐ ์์๊ฒ ๊ฐ์ต๋๋ค. ๊ด์ฌ์์ผ์๋ฉด ์ฐธ์ ๋ถํ๋๋ฆฌ๊ตฌ์.
github์ ๋ค์ด๊ฐ์ ์ ๋ณ๋ ๋๋ฌ์ฃผ์๊ตฌ์. ๋ค์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
Download now