Skip to content

Geunboda/KNU_CapD2_3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

88 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

NLP ๊ธฐ๋ฐ˜์˜ Java Thread Dump ๋ถ„์„ with Google Korea

๊ฒฝ๋ถ๋Œ€ํ•™๊ต ์ข…ํ•ฉ์„ค๊ณ„ํ”„๋กœ์ ํŠธ2 - 3ํŒ€

์ฐธ๊ณ  ์‚ฌํ•ญ

AutoML ์ ‘๊ทผ์„ ์œ„ํ•œ gcp ์ ‘๊ทผ์šฉ json ํŒŒ์ผ์€ ๋ณด์•ˆ์ƒ์˜ ์ด์œ ๋กœ github์— ๊ณต๊ฐœํ•˜๊ณ  ์žˆ์ง€ ์•Š์œผ๋ฉฐ ํ•„์š”์‹œ์— ์˜คํ”ˆ์†Œ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ์ธ ๋””์Šค์ฝ”๋“œ ์ฑ„๋„์„ ํ†ตํ•œ ๋ฌธ์˜ ๋ถ€ํƒํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  1. ๊นƒํ—ˆ๋ธŒ ํด๋ก 

์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด ๋ณธ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ git cloneํ•ฉ๋‹ˆ๋‹ค.

git clone https://github.com/Geunboda/KNU_CapD2_3.git
  1. ์„œ๋ฒ„ ๊ตฌ๋™

Python3๋ฅผ ๋จผ์ € installํ•œ ํ›„, google, google-cloud-automl, flask๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

pip3 install google
pip3 install google-cloud-automl
pip3 install flask

์•„๋ž˜์˜ ํด๋”๋กœ ์ด๋™ํ•˜์—ฌ ์„œ๋ฒ„๋ฅผ ๊ตฌ๋™ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๋ฅผ ๊ตฌ๋™ํ•˜๊ธฐ ์ „ json ํŒŒ์ผ์„ ํด๋” ์•„๋ž˜๋กœ ์ด๋™์‹œ์ผœ์ฃผ์‹ญ์‹œ์˜ค.

cd KNU_CapD2_3/api/serving
python3 predict3.py
  1. ๋ฆฌ์•กํŠธ ์›น ์„œ๋ฒ„ ๊ตฌ๋™

ํ˜ธ์ŠคํŒ…ํ•œ ์›น ์„œ๋ฒ„์˜ endpoint ์ฃผ์†Œ๋ฅผ ๋ณ€๊ฒฝํ•˜์˜€๋Š”์ง€ ํ™•์ธํ•ด์ฃผ์‹œ๊ณ  React ์›น์„ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.

cd ui/knu-capd2-ui
npm start

๋””์Šค์ฝ”๋“œ ์ฑ„๋„ ๊ฐ€์ž… ๋งํฌ

https://discord.gg/UXD5xSV4

๋ฐ๋ชจ ์˜์ƒ

Video Label)

1. ์†Œ๊ฐœ

ํ˜„์žฌ ์šฐ๋ฆฌ๊ฐ€ ์‚ด๊ณ  ์žˆ๋Š” 4์ฐจ์‚ฐ์—…ํ˜๋ช… ์‹œ๋Œ€์—” IT์‚ฐ์—… ์ „๋ฐ˜์— ์ธ๊ณต์ง€๋Šฅ์ด ๊ณณ๊ณณ์— ํฌ์ง„ํ•ด ์žˆ๋‹ค๊ณ  ํ•ด๋„ ๊ณผ์–ธ์ด ์•„๋‹ ์ •๋„๋‹ค. ์ธ๊ณต์ง€๋Šฅ๊ณผ ๋จธ์‹ ๋Ÿฌ๋‹ ๊ธฐ์ˆ ์€ ์‚ฐ์—…์„ ๋„˜์–ด์„œ ๊ต์œก, ๋ฌธํ™”, ์˜๋ฃŒ ๋“ฑ ์šฐ๋ฆฌ ์‚ถ ์†์—์„œ ์ธ๊ณต์ง€๋Šฅ์˜ ์ ์šฉ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ธฐ๋Œ€ํ•ด๋„ ์ข‹๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

image

โ–ฒ<๋„ํ‘œ> Google Cloud Industries: Artificial Intelligence acceleration among manufacturers


๋ง๋ถ™์—ฌ, ์ธํ„ฐ๋„ท ์‚ฌ์šฉ์ž ์ˆ˜์˜ ์ฆ๊ฐ€๋กœ ์ธํ•ด ๋กœ๊ทธ ๋ฐ์ดํ„ฐ ์–‘์ด ์ฆ๊ฐ€ํ•˜์˜€๋‹ค. ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋Š” ์‹ค์ œ ํ˜„์‹ค์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์‚ฌ๊ฑด์„ ๋ฐ์ดํ„ฐ๋กœ ๊ธฐ๋กํ•œ ๊ฒƒ์œผ๋กœ, ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•˜๋ฉด ์‹ค์ œ ํ˜„ํ™ฉ์— ๋Œ€ํ•ด์„œ ์ž์„ธํžˆ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

image

โ–ฒ<๊ทธ๋ž˜ํ”„> JetBrain 2020, Java ์‚ฌ์šฉ๋ฅ  ์กฐ์‚ฌ ๊ฒฐ๊ณผ


๊ทธ ์ค‘ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” ๋กœ๊ทธ ๋ฐ์ดํ„ฐ ์ค‘ ํ•˜๋‚˜๋Š” ๋ฐ”๋กœ Java Thread Dump์ด๋‹ค. Thread Dump๋Š” ์ •ํ˜•ํ™”๋œ ๋ฐ์ดํ„ฐ์ด๋ฉฐ ์›น ์„œ๋ฒ„์—์„œ๋Š” ๋งŽ์€ ์ˆ˜์˜ ๋™์‹œ ์‚ฌ์šฉ์ž๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜์‹ญ~์ˆ˜๋ฐฑ ๊ฐœ ์ •๋„์˜ Thread๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋‘ ๊ฐœ ์ด์ƒ์˜ Thread๊ฐ€ ๊ฐ™์€ ์ž์›์„ ์ด์šฉํ•  ๋•Œ๋Š” ํ•„์—ฐ์ ์œผ๋กœ Thread ๊ฐ„์— ๊ฒฝํ•ฉ(Contention)์ด ๋ฐœ์ƒํ•˜๊ณ  ๊ฒฝ์šฐ์— ๋”ฐ๋ผ์„œ๋Š” ๋ฐ๋“œ๋ฝ(Deadlock)์ด ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ Thread์˜ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๋กœ๊ทธ ๋ฐ์ดํ„ฐ์ธ Thread Dump๋ฅผ ๋ถ„์„ํ•˜์—ฌ ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ์— ๊ทธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๊ธฐ ์‰ฌ์šฐ๋ฉฐ ๋ฌธ์ œ ๋ฐœ์ƒ ์ „์—๋„ Thread Dump๋ฅผ ๋ถ„์„ํ•˜์—ฌ Contention๊ณผ Deadlock ๋“ฑ ์•ž์œผ๋กœ ๋ฐœ์ƒํ•  ๋ฌธ์ œ๋ฅผ ์‚ฌ์ „์— ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋•Œ๋ฌธ์— ์„œ๋ฒ„ ์šด์˜์‹œ Thread Dump ๋ถ„์„์ด ํ•„์š”ํ•˜๋‹ค.

ํ•˜์ง€๋งŒ ์šด์˜์‹œ์ ์—์„œ๋Š” ์‹œ์Šคํ…œ ํŠน์„ฑ์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ์ž๋“ค์ด ์„œ๋น„์Šค๋ฅผ ๋™์‹œ์— ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋กœ๊ทธ ์ถ”์ ์ด ์–ด๋ ค์šฐ๋ฉฐ, ๋กœ๊ทธ ์ถ”์ ์„ ํ•˜์ง€ ๋ชปํ•ด ๋ฌธ์ œ ์›์ธ ์ถ”์ ์„ ํฌ๊ธฐํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์ž์ฃผ ๋ฐœ์ƒํ•œ๋‹ค. ์ด ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ์ธ๊ฐ„์ด ๊ตฌ๋ถ„ํ•˜๊ณ  ๋ถ„์„ํ•˜๋Š”๋ฐ์—๋Š” ๋ฌผ๋ฆฌ์ ์ธ ํ•œ๊ณ„๊ฐ€ ์žˆ์„ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ˜„์žฌ ์‚ฌ์šฉ๋˜๋Š” Thread Dump ๋ถ„์„ ๋„๊ตฌ๋“ค์€ ๋‹จ์ˆœํ•˜๊ฒŒ running, sleeping, blocked ์ •๋„๋กœ ๊ฐ„๋‹จํ•œ ๋คํ”„ ๋ถ„์„๋งŒ์„ ์ง€์›ํ•œ๋‹ค.

image

โ–ฒ<๊ทธ๋ฆผ> Thread Dump ๋ถ„์„์„ ์ง€์›ํ•˜๋Š” ์˜จ๋ผ์ธ Dump ๋ถ„์„ ์‚ฌ์ดํŠธ FastThread


๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ Thread Dump๋ฅผ ์ข€ ๋” ์ฒด๊ณ„์ ์ด๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์˜ ํ•„์š”์„ฑ์ด ๋Œ€๋‘๋˜๊ณ  ์žˆ๋‹ค.

2. ๊ณผ์ œ ๋ชฉํ‘œ

dump drawio (3)

๋ณธ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” Google Cloud Platform(์ดํ•˜, GCP)์—์„œ ์ œ๊ณตํ•˜๋Š” AutoML๊ณผ BERT๋ฅผ ํ™œ์šฉํ•˜์—ฌ Thread Dump๋ฅผ ๋ถ„์„ํ•˜๋Š” ์ž๋™ํ™”๋œ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ๊ฐœ๋ฐœํ•˜๊ณ ์ž ํ•œ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ์ „์ฒด์ ์ธ ๊ตฌ์กฐ๋Š” ์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™๋‹ค. ํ…Œ์ŠคํŒ… ํ™˜๊ฒฝ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ์ˆ˜์ง‘ํ•˜๊ณ  ๋ถ„์„ํ•œ ํ›„, ๋ถ„์„ ๋ชจ๋ธ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„๋ฅ˜ํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์›น์— ํ‘œ์‹œํ•œ๋‹ค. OpenNaru์˜ OpenMaru APM์ธ Khan ์„œ๋น„์Šค์™€ ์—ฐ๊ณ„ํ•˜์—ฌ ํ˜„์—…์—์„œ๋„ ์“ฐ์ผ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ ์ž ํ•œ๋‹ค. Thread Dump ๋ถ„์„์„ ์ž๋™ํ™”ํ•˜์—ฌ ์ „๋ฌธ์ธ๋ ฅ์˜ ๋„์›€์—†์ด๋„ ํ”„๋กœ๊ทธ๋žจ์˜ ์—๋Ÿฌ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ์ด์— ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ํ”„๋กœ์ ํŠธ์˜ ์ตœ์ข… ๋ชฉ์ ์ด๋‹ค.

3. ๊ณผ์ œ ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ

3-1. Thread Dump ๋ถ„์„ ๋ฐ ๋ ˆ์ด๋ธ”๋ง

โ–ผ<๊ทธ๋ฆผ> Java Thread Dump 3์š”์†Œ ๋ถ„๋ฅ˜

image

์šฐ์„  stack๋ถ€๋ถ„์€ ์ฝ”๋“œ๋ฅผ ๋ฐ‘์—์„œ ์œ„๋กœ ํ•ด์„ํ•˜๋Š”๋ฐ, ํฌ๊ฒŒ 3๊ฐ€์ง€์˜ ์˜์—ญ์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€์žฅ ๋ฐ‘์˜ ํŒŒ๋ž€ ์˜์—ญ์€ Java base์ฝ”๋“œ/WAS ์ฝ”๋“œ๋กœ jboss, wildfly, weblogic ๋“ฑ WAS์˜ ์ข…๋ฅ˜๊ฐ€ ๊ธฐ์ž…๋œ ์ž๋ฐ”์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” ๋ถ€๋ถ„์ด๊ณ , ๋…ธ๋ž€ ์˜์—ญ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•œ ํ•จ์ˆ˜๋ถ€๋ถ„์ด๋ฉฐ ํšŒ์‚ฌ๋งˆ๋‹ค ์‚ฌ์šฉํ•˜๋Š” Framework๊ฐ€ ๋‹ค๋ฅด๊ธฐ์— mysql๊ณผ ๊ฐ™์€ ์‚ฌ์šฉ์ž ์ •์˜ ํ”„๋กœ๊ทธ๋žจ์ธ Main Function ์ž‘์„ฑ์— ์ด์šฉ๋˜๋Š” Framework ๊ธฐ๋ฐ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋‹ฌ๋ผ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜ ์ด๋ฆ„์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋นจ๊ฐ„ ์˜์—ญ์€ Main Function ์ˆ˜ํ–‰ ์™„๋ฃŒ ํ›„ Thread ์ข…๋ฃŒ๋ฅผ ์œ„ํ•ด ๋‹ค์‹œ Java๋กœ ๋Œ์•„์™”์„ ๋•Œ ํ˜ธ์ถœ๋˜๋Š” Java library ๋ถ€๋ถ„์ด๋‹ค. Stack์˜ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜์—ฌ ๋ ˆ์ด๋ธ”์˜ ํŒจํ„ด ๋ถ„์„ํ•  ๋•Œ ์ฐธ๊ณ ํ•˜์˜€๋‹ค.

3-2. 1์ฐจ ๋ฐ์ดํ„ฐ ๋ ˆ์ด๋ธ”๋ง

image

3-1-2์˜ 1์ฐจ ๋ฐ์ดํ„ฐ ๋ถ„์„ ๋‚ด์šฉ์„ ํ† ๋Œ€๋กœ Base/WAS์ฝ”๋“œ์™€ Main Function์„ ๊ธฐ์ค€์œผ๋กœ ํ•˜์—ฌ ๋ ˆ์ด๋ธ”๋ง ์ž‘์—…์— ๋Œ์ž…ํ–ˆ๋‹ค. ๊ตฌ๊ธ€ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ์ž ๋ผ๋ฒจ์„ ๋ถ™์ด๊ณ , ํ•ด๋‹น ๋ผ๋ฒจ์— ํ•ด๋‹นํ•˜๋Š” ๋คํ”„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ง„ํ–‰ํ•˜์˜€๋‹ค. ๊ทธ ํ›„ ๊ฐ ๋ผ๋ฒจ์˜ ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜ ์ฒจ๋ถ€ํ•˜์—ฌ ๋ผ๋ฒจ์ด ์–ด๋– ํ•œ ํ˜•์‹(์ดํ•˜ ํŒจํ„ด)์„ ๊ฐ–์ถ”๋Š”์ง€ ํŒŒ์•…ํ•˜๊ธฐ ์‰ฝ๊ฒŒ ํ•˜์˜€๋‹ค.

์ „์ฒ˜๋ฆฌ

image

โ–ฒ<๊ทธ๋ฆผ> ์ „์ฒ˜๋ฆฌ ํ•˜๊ณ ์ž ํ•˜๋Š” ๋‚ด์šฉ

์ „์ฒ˜๋ฆฌ๋Š” Stack์„ ๊ธฐ์ค€์œผ๋กœ ์ง„ํ–‰ํ•˜์˜€๋‹ค. ์šฐ์„  ์ฒซ๋ฒˆ์งธ ๋„ค๋ชจ๋Š” Thread์˜ ์ด๋ฆ„์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ์—ฌ๊ธฐ์„œ ์˜์–ด๋‚˜ ๋„์–ด์“ฐ๊ธฐ๋ฅผ ์ œ์™ธํ•œ ์ˆซ์ž๋‚˜ ๊ธฐํ˜ธ๋Š” ์ œ๊ฑฐํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Thread ๊ณ ์œ ๋ฒˆํ˜ธ(#์ˆซ์ž)์™€ prio, os_prio์™€ ๊ฐ™์€ thread์˜ ์šฐ์„ ์ˆœ์œ„๋Š” ํŒจํ„ด๊ณผ ๊ด€๋ จ์—†์œผ๋ฏ€๋กœ ์ œ๊ฑฐํ•œ๋‹ค. ๊ทธ ํ›„ Tid(Java-Level Thread ID), nid(Native Thread ID), ํฌ์ธํ„ฐ ์ €์žฅ์œ„์น˜([0x00โ€ฆ], <0x000โ€ฆ>), ์ž๋ฐ”ํŒŒ์ผ ํ–‰๋ฒˆํ˜ธ, ํฌ์ธํ„ฐ ์ฃผ์†Œ๊ฐ’๊ณผ ๊ฐ™์ด ๊ฐ Thread๋งˆ๋‹ค ์‹คํ–‰ํ•  ๋•Œ ๋งˆ๋‹ค ๋ณ€ํ™”ํ•˜๋Š” ์˜๋ฏธ์—†๋Š” ๊ฐ’๋“ค์€ ๋ชจ๋‘ ์ œ๊ฑฐํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚จ์€ Javax, at, java, com, org ์ฒ˜๋Ÿผ Thread ํŒจํ„ด์„ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ์— ์œ ์˜๋ฏธํ•œ ์ฐจ์ด๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๋Š” ๊ณตํ†ต๋˜๋Š” ์ž์ฃผ ๋“ฑ์žฅํ•˜๋Š” ๋‹จ์–ด๋“ค์„ ์ œ๊ฑฐํ•œ๋‹ค.

3-1-3. 2์ฐจ ๋ฐ์ดํ„ฐ ๋ถ„์„

image

โ–ฒ <๊ทธ๋ฆผ> AutoML 1์ฐจ Label ์ •ํ™•๋„ ๋ฐ ์ •๋ฐ€๋„

๊ทธ๋Ÿฌ๋‚˜ 1์ฐจ ๋ฐ์ดํ„ฐ ๋ถ„์„์—์„œ ์ •ํ™•๋„์™€ ์žฌํ˜„์œจ์ด 100%๋กœ ํ•™์Šต๋˜๋Š” ๋‚˜์˜ค๋Š” ์ด์Šˆ๋ฅผ ํ™•์ธํ–ˆ๋‹ค. ์›์ธ์€ ๋ฐ์ดํ„ฐ์˜ ๋ ˆ์ด๋ธ”๋ง ๋ฐฉ์‹์ด๋ผ ์ƒ๊ฐํ•˜์—ฌ ์ด๋ฅผ ๋ฐ”๊ฟˆ์œผ๋กœ์จ ์ด์Šˆ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ ์ž ํ•˜์˜€๋‹ค. ๊ธฐ์กด์—๋Š” ๊ฐ Thread Dump์— ํŠน์ •ํ•œ ๋ฌธ์žฅ์ด ๋“ค์–ด์žˆ์œผ๋ฉด ํ•ด๋‹น ํŒจํ„ด์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ํ•œ ๋ฌธ์žฅ๋งŒ ๋ณด๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋ ˆ์ด๋ธ”๋ง ํ•˜๋‹ค๋ณด๋‹ˆ ๋ชจ๋ธ ํ•™์Šต์ด ๋‹จ์กฐ๋กœ์›Œ์งˆ ์ˆ˜ ๋ฐ–์— ์—†์—ˆ๊ณ , ์ด๊ฒƒ์ด ์›์ธ์ด ๋˜์–ด ์ •๋ฐ€๋„๊ฐ€ 100%๋กœ ๋ฐœ์ƒํ•˜์˜€๋‹ค๊ณ  ๊ฒฐ๋ก ์ง€์—ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ ˆ์ด๋ธ”๋ง ๋ฐฉ์‹์— ์ˆ˜์ •์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ๋ณด์•„, ๊ฐ ํŒจํ„ด์˜ ์ „์ฒด ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ์ด์— ๋งž๊ฒŒ ๋ผ๋ฒจ์„ ๊ตฌ์„ฑํ•˜์—ฌ ๋ ˆ์ด๋ธ”๋ง์„ ์ง„ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝํ•˜์˜€๋‹ค. Thread Dump๋ฅผ ๊ฐ๊ฐ ์‚ดํŽด๋ณด๋ฉด์„œ ์–ด๋– ํ•œ ํŒจํ„ด์ด ๋‚˜ํƒ€๋‚˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์น˜๊ณ  ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋ ˆ์ด๋ธ”๋ง์„ ์ง„ํ–‰ํ•˜์˜€๋‹ค.

3-1-4. 2์ฐจ ๋ฐ์ดํ„ฐ ๋ ˆ์ด๋ธ”๋ง

image

โ–ฒ<๊ทธ๋ฆผ> ์ตœ์ข… ์ž‘์—…์„ ๋งˆ์นœ ๋ผ๋ฒจ

2์ฐจ ๋ฐ์ดํ„ฐ ๋ ˆ์ด๋ธ”๋ง ๋ฐฉ์‹์€ 1์ฐจ์™€ ๊ฐ™๋˜, ํŒจํ„ด ์ „์ฒด์˜ ํ๋ฆ„์„ ๊ณ ๋ คํ•˜์—ฌ ๋ ˆ์ด๋ธ”๋ง์„ ์ง„ํ–‰ํ•˜์˜€๋‹ค. ๋คํ”„์˜ State๊ฐ€ Waiting์ธ ๊ฒฝ์šฐ ํ”„๋กœ๊ทธ๋žจ์— ๋ฌธ์ œ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋Œ€๋‹ค์ˆ˜์ด๊ธฐ์— ๋ฌดํ•œ ๋ฃจํ”„์— ๋น ์ง„ ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ  Idle๋กœ ํŒจํ„ด์„ ๋ช…๋ช…ํ•˜์˜€๋‹ค. ๋˜ํ•œ ๋ผ๋ฒจ์˜ ๊ฐœ์ˆ˜๊ฐ€ ํ•œ ์ž๋ฆฌ ์ˆ˜์ธ ๊ฒฝ์šฐ, ๋ฐ์ดํ„ฐ๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์•„ ํ•™์Šต ๋ฐ์ดํ„ฐ์— ์•…์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ๋Š” ๋…ธ์ด์ฆˆ ์š”์†Œ๊ฐ€ ๋˜๋ฏ€๋กœ ํ•™์Šต ๋ฐ์ดํ„ฐ์—์„œ ์ œ์™ธํ•˜์˜€๋‹ค. ์ถ”ํ›„ ๋ ˆ์ด๋ธ”๋ง์„ ์‰ฝ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด, ํŒจํ„ด๋งˆ๋‹ค ์ƒ˜ํ”Œ ๋งํฌ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํด๋ฆญ์‹œ ํ•ด๋‹น ํŒจํ„ด์˜ ์ฝ”๋“œ๋กœ ์ด๋™ํ•˜๋„๋ก ํ•˜์—ฌ ๊ฐ ํŒจํ„ด์— ํ•ด๋‹นํ•˜๋Š” ์ƒ˜ํ”Œ Dump ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์˜€๋‹ค.

image

โ–ฒ<๊ทธ๋ฆผ> ํ…์ŠคํŠธ ๋ ˆ์ด๋ธ”๋ง ์ž๋™ํ™” ์ฝ”๋“œ

3-2. ๋ชจ๋ธ ๊ฐœ๋ฐœ

3-2-1. AutoML

image

โ–ฒ<๊ทธ๋ฆผ> AutoML ํ•™์Šต ํ›„ ์ •๋ฐ€๋„์™€ ์žฌํ˜„์œจ

AutoML ๋ชจ๋ธ ๊ฐœ๋ฐœ์€ Google Cloud Platform์„ ํ™œ์šฉํ•˜์—ฌ ์ง„ํ–‰ํ•˜์˜€๋‹ค. ๋‹ค์ค‘ ํ…์ŠคํŠธ ๋ถ„๋ฅ˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ Thread Dump๊ฐ€ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋ฉด ๊ฐ ๋ ˆ์ด๋ธ”์— ํ•ด๋‹นํ•˜๋Š” ํ™•๋ฅ ์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ชจ๋ธ์„ ๊ฐœ๋ฐœํ•˜์˜€๋‹ค. ์œ„ 3-1์˜ ๊ฒฐ๊ณผ๋ฌผ์ธ ๋ฐ์ดํ„ฐ ํŒŒ์ผ๋กœ ํ•™์Šต์„ ์ง„ํ–‰ํ•˜์˜€๋‹ค. 165๊ฐœ์˜ ๋ ˆ์ด๋ธ”์„ ํ•™์Šต์‹œ์ผฐ์œผ๋ฉฐ, ์ •๋ฐ€๋„๋Š” 99.02%๋กœ ๋†’์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์˜ˆ์ƒ๋ณด๋‹ค ํ›จ์”ฌ ๋†’์€ ์ •๋ฐ€๋„๋ฅผ ์–ป์–ด์„œ ์ด์— ๋Œ€ํ•œ ์ด์œ ๋ฅผ ํŒŒ์•…ํ•˜๊ณ ์ž ํ•˜์—ฌ ๋ฉ˜ํ† ๋‹˜๊ป˜ ํ”ผ๋“œ๋ฐฑ์„ ์š”์ฒญํ•œ ๊ฒฐ๊ณผ, 2๊ฐ€์ง€ ์›์ธ์„ ์ƒ๊ฐํ•ด ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ ์€ ์ ์ด๋‹ค. ์ „์ฒด ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๋Š” ์•ฝ 7500๊ฐœ ์ •๋„์ด๋‹ค. ๋ฐ์ดํ„ฐ์˜ ๋‹ค์–‘์„ฑ์ด ์ ๋‹ค๋ณด๋‹ˆ ์˜ˆ์ธก์ด ์ข€ ๋” ์‰ฌ์› ๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ํ˜„์—…์—์„œ๋Š” ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์‹ค์ œ๋กœ ์ ์šฉํ•œ๋‹ค๋ฉด ์ •์ƒ๋ฒ”์œ„๋‚ด์˜ ์ •๋ฐ€๋„์™€ ์žฌํ˜„์œจ์„ ๊ฐ€์งˆ ๊ฒƒ์„ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‘ ๋ฒˆ์งธ๋Š” Thread Dump ๋ฐ์ดํ„ฐ๊ฐ€ ์ •ํ˜•ํ™” ๋˜์–ด์žˆ๋‹ค๋Š” ์ ์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ž์—ฐ์–ด, ์ฆ‰ ๋Œ€ํ™” ๋ฌธ์žฅ์„ ์ƒ๊ฐํ•œ๋‹ค๋ฉด ๋งค์šฐ ๋‹ค์–‘ํ•˜๋‹ค๋Š” ์ ์ด ํŠน์ง•์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Thread Dump ๋ฐ์ดํ„ฐ๋Š” ํ˜•์‹์ด ์ •ํ•ด์ ธ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋กœ, ๊ฐ™์€ ๋ ˆ์ด๋ธ”์ด๋ผ๋ฉด ๋Œ€๋ถ€๋ถ„์ด ๋™์ผํ•œ ๋‚ด์šฉ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ ์ด ์ •๋ฐ€๋„๋ฅผ ๋†’์ด๋Š” ๋ฐ์— ํฌ๊ฒŒ ์ž‘์šฉํ–ˆ์„ ๊ฒƒ์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ถ”ํ›„์— ์ด๋Ÿฌํ•œ ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์‹ ๊ทœ ํ•™์Šต์„ ์ž๋™์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ•  ๊ฒƒ์ด๋‹ค.

3-2-2. BERT

image

โ–ฒ<๊ทธ๋ฆผ> BERT ํ•™์Šต ์ฝ”๋“œ ์ค‘ ์ผ๋ถ€

์ข€ ๋” ์ตœ์ ํ™”๋œ ๋ถ„์„ ๋ชจ๋ธ์„ ์œ„ํ•ด BERT์˜ BertForSequenceClassification ๋ชจ๋ธ๋กœ ํ•™์Šต์„ ์ง„ํ–‰ํ•˜์˜€๋‹ค. BERT๋ฅผ ํ•™์Šต์‹œํ‚ค๋ฉด์„œ ์‹ ๊ฒฝ์“ด ๋ถ€๋ถ„์€ Tokenizer๋กœ, Keras hub์—์„œ ์ œ๊ณตํ•˜๋Š” Default tokenizer๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ๊ทธ ์ด์œ ๋Š” ํ† ํฌ๋‚˜์ด์ €์˜ ์ตœ๋Œ€ ๋ถ„์„ ํ† ํฐ์˜ ๊ฐœ์ˆ˜๊ฐ€ 512๊ฐœ์ธ๋ฐ, Thread Dump ์ค‘์—์„œ 512๊ฐœ๋ฅผ ๋„˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ค์ˆ˜ ์กด์žฌํ•˜์˜€๋‹ค. ๋ณดํ†ต ์ด๋Š” ์ž๋ฅด๋Š” ๋ฐฉ์‹(Default)์ด๋‚˜ ์ „์ฒด๋ฅผ ๋„ฃ๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์•ž๋ถ€๋ถ„๋งŒ ์ž๋ฅด๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์„œ ์ง„ํ–‰ํ•˜์˜€๋‹ค. ๊ทธ๋ฆฌ๊ณ  optimizer๋กœ๋Š” Adam์„ ์‚ฌ์šฉํ•˜์˜€๊ณ , loss ๊ณ„์‚ฐ์€ cross entropy๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ๊ทธ ๊ฒฐ๊ณผ, 95.08%์˜ ์ •ํ™•๋„๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. AutoML๊ณผ BERT ๋ชจ๋ธ์„ ๋น„๊ตํ–ˆ์„ ๋•Œ, ํ˜„ ์ƒํ™ฉ์—์„œ๋Š” ์ •๋ฐ€๋„๊ฐ€ ๋” ๋†’๊ฒŒ ๋‚˜ํƒ€๋‚œ AutoML ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋”์šฑ ์ ์ ˆํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•˜์˜€๊ณ , ์ดํ›„ ์‹œ๊ฐํ™”๋ฅผ ์œ„ํ•œ ์›น ์„œ๋น„์Šค์—์„œ AutoML ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

image

โ–ฒ<๊ทธ๋ฆผ> BERT ํ•™์Šต epoch์— ๋”ฐ๋ฅธ loss, accuracy, recall, precision, f1 ๊ทธ๋ž˜ํ”„

3-3. ๋คํ”„ ํ…Œ์ŠคํŠธ ์›น ํŽ˜์ด์ง€ ๊ฐœ๋ฐœ

image

โ–ฒ<๊ทธ๋ฆผ> ํ˜‘๋ ฅ์—…์ฒด OpenNaru์˜ ์„œ๋ฒ„ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๊ด€๋ฆฌ ์†”๋ฃจ์…˜ OpenMaru APM

ํ˜‘๋ ฅ์—…์ฒด์˜ ์„œ๋น„์Šค์ธ OpenMaru APM(์ดํ•˜ Khan)๊ณผ ์—ฐ๊ณ„ํ•˜์—ฌ ๋ชจ๋ธ์„ ์ด์šฉํ•ด ํ•™์Šตํ•˜๊ณ  ๊ฒฐ๊ณผ ๊ฒ€์ฆ์— ํ…Œ์ŠคํŠธํ•  Thread Dump๋ฅผ ์ถ”์ถœํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค.

image

โ–ฒ<๊ทธ๋ฆผ> OpenMaru APM์„ ์ด์šฉํ•ด Thread Dump๋ฅผ ์ถ”์ถœํ•˜๋Š” ๋ชจ์Šต

ํ•˜์ง€๋งŒ OpenNaru์—์„œ ๊ณ ๊ฐ์˜ ๋™์˜์—†์ด Thread Dump ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ถœํ•  ์ˆ˜ ์—†๊ณ  ์•„์ง ๊ฒ€์ฆ๋˜์ง€ ์•Š์€ ์„œ๋น„์Šค์˜ ๊ฒฐ๊ณผ๋ฅผ ๊ณ ๊ฐ์—๊ฒŒ ์ œ๊ณตํ•  ์ˆ˜ ์—†์–ด ์ดˆ๋ฐ˜์— ์ œ๊ณต๋ฐ›์€ Thread Dump ๋ฐ์ดํ„ฐ ์™ธ์— ์ถ”๊ฐ€์ ์ธ ๋ฐ์ดํ„ฐ๋Š” ์ œ๊ณต๋ฐ›๊ธฐ ์–ด๋ ค์› ๋‹ค. ์ด๋Ÿฌํ•œ ๊นŒ๋‹ญ์œผ๋กœ ์ถ”ํ›„ ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ ํ•™์Šต ๋ฐ ๊ฒฐ๊ณผ ๊ฒ€์ฆ์—๋Š” ์ง์ ‘ ์—๋Ÿฌ ์ƒํ™ฉ์„ ์žฌ์—ฐํ•ด ํ•„์š”ํ•œ Thread Dump๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•˜์˜€๋‹ค. ๋”ฐ๋ผ์„œ ์ง์ ‘ ์ธ์œ„์ ์ธ ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์›น ํŽ˜์ด์ง€๋ฅผ ๊ฐœ๋ฐœํ•˜์˜€๋‹ค.

image

โ–ฒ<๊ทธ๋ฆผ> ์ธ์œ„์ ์ธ ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์›น ํŽ˜์ด์ง€

3-4. ๋กœ๊ทธ ๋ถ„์„ ์„œ๋ฒ„ ๊ฐœ๋ฐœ

image

โ–ฒ<ํ‘œ> ๋กœ๊ทธ ๋ถ„์„ ์„œ๋ฒ„ EndPoint

์„œ๋ฒ„์—์„œ ๋กœ๊ทธ ๋ถ„์„์„ ์œ„ํ•ด Khan์—์„œ ๋กœ๊ทธ ๋ถ„์„ ์„œ๋ฒ„๋กœ Thread Dump๋ฅผ ์ „์†ก๋ฐ›๊ณ  ์ด๋ฅผ AutoML์„ ์ด์šฉํ•ด์„œ ๋ถ„์„ ํ›„, ํ•ด๋‹น ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ์‹œ๊ฐํ™” ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์›น ์„œ๋น„์Šค์— ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ด์•ผํ•˜์˜€๋‹ค. AutoML์— Thread Dump ๋ถ„์„ ์š”์ฒญ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Python์„ ์ด์šฉํ•œ ์„œ๋ฒ„ ๊ฐœ๋ฐœ์„ ํ•˜๋Š” ๊ฒƒ์ด ์ข€ ๋” ์šฉ์ดํ–ˆ์œผ๋ฉฐ ์ด๋ฅผ ์œ„ํ•ด Python Flask๋ฅผ ์ด์šฉํ•˜์—ฌ ์„œ๋ฒ„๋ฅผ ๊ฐœ๋ฐœํ•˜์˜€๋‹ค.

image

โ–ฒ<๊ทธ๋ฆผ> Khan Thread Dump ๋ชฉ๋ก ์š”์ฒญ ๋ฐ ๋ถ„์„ ํƒญ

Khan์—์„œ ๋ถ„์„ํ•˜๊ณ  ์‹ถ์€ ์ƒํƒœ์˜ ์›น ํŽ˜์ด์ง€์˜ Thread Dump๋ฅผ ์š”์ฒญํ•œ ํ›„, ๋ถ„์„์„ ์œ„ํ•ด ํ€ต์„œ๋น„์Šค ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ Thread Dump ๋ถ„์„ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น Thread Dump๊ฐ€ ๋กœ๊ทธ ๋ถ„์„ ์„œ๋ฒ„์˜ Rest API๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„๋กœ ์ „์†ก๋˜๊ฒŒ ๋œ๋‹ค.

image

โ–ฒ<๊ทธ๋ฆผ> ์ „์†ก๋œ Thread Dump Data๋ฅผ ๋ฐ›์€ GCP์— ๋ฐฐํฌ๋œ ๋กœ๊ทธ ๋ถ„์„ ์„œ๋ฒ„

์ด๋ ‡๊ฒŒ ๋ฐ›์€ Thread Dump๊ฐ’์„ ์„œ๋ฒ„์— ์ €์žฅ์‹œํ‚จ๋‹ค. DB๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ ค๊ณ  ํ•˜์˜€์ง€๋งŒ, Thread Dump์˜ ํŠน์„ฑ์ƒ ์‹คํ–‰๋˜๋Š” Thread์˜ history๋ฅผ Stack์ฒ˜๋Ÿผ ์Œ“์•„ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋ ค์›€์ด ์žˆ์—ˆ๋‹ค. ์ œ๊ณต๋ฐ›์€ Thread Dump Sample Data ๋งŒํ•ด๋„ char ํฌ๊ธฐ๊ฐ€ 200์—์„œ 25000๊นŒ์ง€ ๊ต‰์žฅํžˆ ์ฐจ์ด๊ฐ€ ํฌ๋ฏ€๋กœ DB์— ์ €์žฅํ•˜๊ธฐ์— ์ ํ•ฉํ•˜์ง€ ์•Š์•˜๋‹ค. ๋˜ํ•œ ์„œ๋ฒ„์˜ ํŠน์„ฑ์— ๋”ฐ๋ผ Thread Dump ์˜ Stack ํฌ๊ธฐ๋Š” ๋ฌด๊ถ๋ฌด์ง„ํ•˜๊ฒŒ ์ปค์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— DB๋ฅผ ์ด์šฉํ•˜์—ฌ ์ €์žฅ์‹œํ‚ฌ ๋•Œ Losslessํ•˜๊ฒŒ ์ €์žฅํ•˜๊ธฐ๋Š” ์–ด๋ ค์› ๋‹ค. ๋•Œ๋ฌธ์— local์— txt๋กœ ์ €์žฅ์‹œํ‚ด์œผ๋กœ์„œ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๊ณ  ๋ชจ๋ธ ๋ถ„์„์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์†์ƒ์—†์ด ๋ชจ๋ธ๋กœ ์ „์†กํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์˜€๋‹ค.

์ด๋ ‡๊ฒŒ ์ „์†ก๋˜์–ด ์ €์žฅ๋œ Thread Dump๋Š” ์‹œ๊ฐํ™” ์›น ์„œ๋น„์Šค์—์„œ api๋ฅผ ํ†ตํ•ด ๋ถ„์„ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ์ €์žฅ๋œ ํŒŒ์ผ์„ ์—ด์–ด ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ ˆ์ด๋ธ”๋ง์— ๋„์ž…ํ•œ ์ „์ฒ˜๋ฆฌ์™€ ๋˜‘๊ฐ™์ด ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค€ ํ›„, ์ „์ฒ˜๋ฆฌ ์™„๋ฃŒ๋œ ๋ฐ์ดํ„ฐ๋ฅผ AutoML ๋ชจ๋ธ๋กœ ์ „์†กํ•œ๋‹ค.

image

โ–ฒ<๊ทธ๋ฆผ> Thread Dump ์ „์ฒ˜๋ฆฌ ์ฝ”๋“œ

์ „์ฒ˜๋ฆฌ ์™„๋ฃŒ๋œ Dump ๋ฐ์ดํ„ฐ๋ฅผ ํ•™์Šต์‹œํ‚จ Google AutoML ๋ชจ๋ธ๋กœ ์ „์†กํ•˜๊ณ  ๋ฐ˜ํ™˜๋ฐ›์€ ๋ชจ๋ธ์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ์›น์œผ๋กœ ์ „์†กํ•œ๋‹ค. ์‹œ๊ฐํ™” ์›น ์„œ๋น„์Šค๋Š” ์ „์†ก๋ฐ›์€ ๊ฐ’์„ ๊ฐ€๊ณตํ•ด ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์žˆ๋‹ค.

image

โ–ฒ<๊ทธ๋ฆผ> AutoML Thread Dump ๋ถ„์„ ๊ฒฐ๊ณผ๊ฐ’

3-5. ์‹œ๊ฐํ™” ์›น ์„œ๋น„์Šค ๊ฐœ๋ฐœ

image

โ–ฒ<๊ทธ๋ฆผ> Thread Dump ๋ถ„์„ ๊ฒฐ๊ณผ๊ฐ’์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์›น ์„œ๋น„์Šค

React์™€ Typescript๋ฅผ ์ด์šฉํ•ด์„œ AutoML ์˜ˆ์ธก๊ฐ’์„ ๊ฐ ๋ผ๋ฒจ๊ณผ ํ™•๋ฅ ๋กœ ์ถœ๋ ฅํ•˜๋Š” UI๋ฅผ ๊ฐœ๋ฐœํ–ˆ๋‹ค. ์›น์˜ ์ตœ์ดˆ ๋ Œ๋”๋ง ์‹œ, API ํ˜ธ์ถœ์„ ํ†ตํ•ด ์˜ˆ์ธก๊ฐ’์„ ์š”์ฒญํ•˜๊ณ , ๊ทธ ๋ฐ˜ํ™˜ ๊ฐ’์„ ํ…์ŠคํŠธ ํ˜•์‹๊ณผ ๊ทธ๋ž˜ํ”„ ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ๊ทธ๋ž˜ํ”„๋Š” ์ฐจํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ amcharts4๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

4. ๊ธฐ๋Œ€ ํšจ๊ณผ ๋ฐ ํ™œ์šฉ ๋ฐฉ์•ˆ

image

โ–ฒ<ํ‘œ> ์ด๊ฒฝ์ „, ํ™ฉ๋ณด์œ ์ •. (2020). ์ธ๊ณต์ง€๋Šฅ๊ณผ ์ƒ์‚ฐ์„ฑ. ์ •๋ณด๊ณผํ•™ํšŒ์ง€, 38(11), 8-16

  • ๊ธฐ์—… ๊ด€์ ์—์„œ์˜ ๊ธฐ๋Œ€ ํšจ๊ณผ

  • ์—…๋ฌด ํ”„๋กœ์„ธ์Šค ๊ฐ„์†Œํ™”

  • ๋กœ๊ทธ ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์œ„ํ•œ ์‹œ๊ฐ„ ๋ฐ ์ธ๊ฑด๋น„ ์ ˆ๊ฐ

  • ๊ฐœ๋ฐœ์ž ๊ด€์ ์—์„œ์˜ ๊ธฐ๋Œ€ ํšจ๊ณผ

  • NLP ๊ธฐ๋ฐ˜์˜ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ ๋ถ„์„ ๋ฐฉํ–ฅ์„ฑ ์ œ์‹œ ๋ฐ ํ™œ์šฉ์„ฑ ๊ทน๋Œ€ํ™”

  • ์‹œ์Šคํ…œ ์œ ์ง€ ๋ฐ ๋ณด์ˆ˜ ๋ฐฉํ–ฅ์„ฑ ์ œ์‹œ

  • ์†Œ๋น„์ž ๊ด€์ ์—์„œ์˜ ๊ธฐ๋Œ€ํšจ๊ณผ

  • ์พŒ์ ํ•˜๊ณ  ํŽธ๋ฆฌํ•œ ์„œ๋น„์Šค ์ œ๊ณต๋ฐ›์Œ

  • ๋‹ˆ์ฆˆ์— ์ตœ์ ํ™”๋œ ์„œ๋น„์Šค ์ œ๊ณต๋ฐ›์Œ

ํ™œ์šฉ ๋ฐฉ์•ˆ

  • ๋กœ๊ทธ ๋ฐ์ดํ„ฐ ๋ถ„์„ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

  • ๋กœ๊ทธ ๋ถ„์„ ๋ชจ๋ธ ๊ฐœ๋ฐœ ํ›„, ๋ชจ๋ธ ํ™œ์šฉ์—๋Š” ์ „๋ฌธ ์ธ๋ ฅ์˜ ๋„์ž…์ด ํ•„์ˆ˜์ ์ด์ง€ ์•Š๋‹ค. ๊ทธ๋Ÿฌํ•œ ์žฅ์ ์„ ๊ทน๋Œ€ํ™” ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋ชจ๋ธ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ์ ‘๊ทผ์„ฑ์„ ๋†’์ด๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ๋”ฐ๋ผ์„œ Khan๊ณผ ์—ฐ๊ณ„ํ•˜์—ฌ ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์‹œํ™”ํ•˜๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ†ตํ•ด ๋น„๊ฐœ๋ฐœ์ž๋„ ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ๋ถ„์„์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜์˜€๋‹ค.

  • REST API๋ฅผ ํ™œ์šฉํ•œ ๋ถ„์„ ๊ฒฐ๊ณผ ํ†ต์‹ 

  • ํƒ€ ์‚ฌ์—์„œ ์š”์ฒญ๋ฐ›์€ ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ๊ฐœ๋ฐœ๋œ ๋ชจ๋ธ์„ ํ†ตํ•ด ์ง„ํ–‰ ํ•œ ํ›„ ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ REST API๋กœ ๋„˜๊ฒจ์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ–ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํƒ€ ๊ธฐ์—…์˜ ์†Œํ”„ํŠธ์›จ์–ด์— ๋ชจ๋ธ์„ ์ด์‹ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด ํ™œ์šฉ๋„๊ฐ€ ๋†’์•„์งˆ ๊ฒƒ์ด๋‹ค.

5. ํŒ€์›

Name ๊น€๋ณด๊ทผ ๊น€๋‚˜ํ˜• ๊น€๋‹คํ˜œ ์˜ฅ๋ช…์ฃผ ์ดํ˜„์ง€
Profile
role Team Leader
1,2์ฐจ ๋ฐ์ดํ„ฐ ๋ถ„์„
1, 2์ฐจ ๋ ˆ์ด๋ธ”๋ง
AutoML ๊ฐœ๋ฐœ
BERT ๊ฐœ๋ฐœ
1์ฐจ ๋ฐ์ดํ„ฐ ๋ถ„์„
AutoML ๊ฐœ๋ฐœ
Test Web Application
Model Serving Server ๊ฐœ๋ฐœ
1, 2์ฐจ ๋ฐ์ดํ„ฐ ๋ถ„์„
1, 2์ฐจ ๋ ˆ์ด๋ธ”๋ง
AutoML ๊ฐœ๋ฐœ
ํ•™์Šต์šฉ ๋ฐ์ดํ„ฐ ํŒŒ์ผ ๊ตฌ์ถ•
๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ
1, 2์ฐจ ๋ฐ์ดํ„ฐ ๋ถ„์„ ๋ฐ
1, 2์ฐจ ๋ ˆ์ด๋ธ”๋ง
AutoML ๊ฐœ๋ฐœ
BERT ๊ฐœ๋ฐœ
1์ฐจ ๋ฐ์ดํ„ฐ ๋ถ„์„
AutoML ๊ฐœ๋ฐœ
Serving Web Service UI/UX ๋””์ž์ธ ๋ฐ
FrontEnd ๊ฐœ๋ฐœ
Github @Geunboda @lamknh @Loreha0223 @dhraudwn @hyunji-lee99

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published