์นดํ์นด ์๋ฒฝ ๊ฐ์ด๋ - ksqlDB
๋ณธ ๊ฐ์๋ ksqlDB์ ํ์ฉ๊ณผ ํต์ฌ ๋ฉ์ปค๋์ฆ์ ๋ค์ํ ์ค์ต์ ํตํด ์ตํ ์ ์๊ฒ ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ๊ฐ์๋ฅผ ๋ง์น๊ณ ๋๋ฉด ์ฌ๋ฌ๋ถ์ Kafka(์นดํ์นด) ๊ธฐ๋ฐ์ ์ค์๊ฐ Streaming ๋ฐ์ดํฐ ๋ถ์ ์์คํ ์ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ๊ตฌ์ถํ์ค ์ ์๊ฒ ๋ฉ๋๋ค.
์๊ฐ์ 378๋ช
๋์ด๋ ์ค๊ธ์ด์
์๊ฐ๊ธฐํ ๋ฌด์ ํ

์๋ ํ์ญ๋๊น, ์๊ฐ์ ์ฌ๋ฌ๋ถ
๋ฐฉ๊ธ ์ ์ Airflow ์๋ฒฝ ๊ฐ์ด๋ Part 1 ๊ฐ์๋ฅผ ๋ฐ๋๋ฐ๋ํ๊ฒ ์ถ์ ํ์์ต๋๋ค.
"๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ ํ ๋ฐฉ์ ๋! Airflow ๋ง์คํฐ ํด๋์ค"
Airflow์ ํต์ฌ ๋์ ์๋ฆฌ ๋ถํฐ ๋ค์ํ Operator์ Hook ํ์ฉ๋ฒ๊น์ง, ์๊ฐ์ ์ฌ๋ฌ๋ถ์ ์ค๋ฌด์์ ์ธ์ ๋ฐ๋ Airflow ์ ๋ฌธ๊ฐ๋ก ์ฑ์ฅ ์์ผ ๋๋ฆฌ๊ธฐ ์ํด ํผ์ ์ ๋คํด ๋ณธ ๊ฐ์๋ฅผ ๋ง๋ค์์ต๋๋ค.
๊ฐ์ ์๊ฐ ํ์ด์ง: https://inf.run/2Y8Z4
๊ฐ์ ์๊ฐ ์์: https://inf.run/znn8V
Airflow ์๋ฒฝ ๊ฐ์ด๋ Part 1 ๊ฐ์๋ ์ถ์ ๊ธฐ๋ ์ผ๋ก ์ค๋๋ถํฐ 2์ฃผ๊ฐ 40% ํ ์ธ์ ์งํํ๊ณ ์์ต๋๋ค. ๋๋ถ์ด ์ ์ ๋ค๋ฅธ ๋ชจ๋ ๊ฐ์๋ 2์ฃผ๊ฐ 30% ํ ์ธ์ ๊ฐ์ด ์งํํฉ๋๋ค.
๋ณธ ๊ฐ์๊ฐ Airflow๋ฅผ ๋ฐฐ์ฐ๊ธฐ ์ํ ์ต์ ์ ์ ํ ์ด๋ผ๊ณ ์์ ์๊ฒ ๊ถ์ฅ๋๋ฆฌ๊ณ ์ถ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
์๋ ํ์ญ๋๊น, ์ฌ๋ฌ๋ถ. ๊ถ์ฒ ๋ฏผ ์ ๋๋ค.
์ ๊ฐ ์ด๋ฒ์ '๊ตฌํํ๋ฉฐ ๋ฐฐ์ฐ๋ Transformer' ๋ผ๋ ์ ๋ชฉ์ผ๋ก ์๋กญ๊ฒ ๊ฐ์๋ฅผ ์ถ์ํ์ต๋๋ค.
๋ณธ ๊ฐ์๋ Transformer์ ํต์ฌ ๋ฉ์ปค๋์ฆ์ธ Multi Head Attention ๋ถํฐ Original Transformer ๋ชจ๋ธ ๋ฐ BERT, Encoder-Decoder ๋ฒ์ญ ๋ชจ๋ธ์ธ MarianMT ๋ชจ๋ธ๊น์ง๋ฐ๋ฅ๋ถํฐ ์ง์ ๊ตฌํํ๋ฉฐ Transformer๋ฅผ ์์๋ค์ด ๋ฐฐ์ฐ์ค ์ ์๋ ๊ฐ์ ์ ๋๋ค.
๊ทธ๋์ Transformer์ ๊ด์ฌ์ด ์์์ง๋ง, Transformer ์ดํด์ ์ด๋ ค์์ด ์์ผ์ จ๋ค๋ฉด, ์ฝ๊ณ , ์์ธํ ์ด๋ก ์ค๋ช ์์ ์ค์ ์ฝ๋ ๊ตฌํ๊น์ง ์ด์ด์ง๋ ๋ณธ ๊ฐ์๊ฐ ์ฌ๋ฌ๋ถ์ Transformer ๊ฐ์ฆ์ ์์ํ๊ฒ ํด๊ฒฐํด ๋๋ฆด ๊ฒ์ ๋๋ค.
ํ์ฌ ์คํ ๊ธฐ๋ 35% ํ ์ธ ์งํ ์ค์ด๋ฉฐ, ์๋๋ ๊ฐ์ ์๊ฐ ํ์ด์ง ์ ๋๋ค.
'๊ตฌํํ๋ฉฐ ๋ฐฐ์ฐ๋ Transformer ๊ฐ์'์ ๊ณต์์ ์ธ ์ ์๊ฐ ๊ฐ์๋ '๋ฅ๋ฌ๋ CNN ์๋ฒฝ ๊ฐ์ด๋ - Pytorch ๋ฒ์ ' ์ ๋๋ค. ๋ฅ๋ฌ๋ CNN ์๋ฒฝ ๊ฐ์ด๋ - Pytorch ๋ฒ์ ๊ฐ์๋ 25% ํ ์ธ์ ์งํํ๊ณ ์์ต๋๋ค.
Pytorch๋ก ๋ชจ๋ธ ๊ตฌํ ๊ฒฝํ์ด ์ด๋ ์ ๋ ์์ผ์๋ค๋ฉด ์ ์๊ฐ ๊ฐ์๋ฅผ ๋ฃ์ง ์๊ณ ๋ ๋์ ํด ๋ณด์ค ์ ์์ต๋๋ค. ๋ณด๋ค ์์ธํ ์ฌํญ์ https://inf.run/K4ZyT
์์์ ์ฐธ์กฐ ๋ถํ๋๋ฆฝ๋๋ค.
๋ ์จ๊ฐ ์ ๋ฒ ์์ํด ์ง๋๊ตฐ์. ๋ ๊ฑด๊ฐ ์ ์ํ์๊ณ ํ๊ธฐ์ฐฌ ํ๋ฃจ ๋ณด๋ด์ญ๋๋ค.
๊ฐ์ฌํฉ๋๋ค.
์๋ ํ์ญ๋๊น,
Pytorch ๊ฐ์ ์ถ์ ๋ฐ ์ ๋ด ๋ง์ด ํ์ฌ๋ก ์ค๋(4์ 2์ผ) ๋ถํฐ 4์ 15์ผ๊น์ง 2์ฃผ๊ฐ ์ ๋ชจ๋ ๊ฐ์๋ฅผ 30% ํ ์ธ ์งํํฉ๋๋ค.
์ธํ๋ฐ ๋ง์ผํ ํ์์ ์๊ณ ํด ์ฃผ์ ์, ์๋ ํ์ฌ ํ์ด์ง๋ ๋ณ๋๋ก ๋ง๋ค์์ผ๋ ์ฐธ์กฐ ๋ถํ๋๋ฆฝ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ธฐ์กด ๋ฅ๋ฌ๋ ์ปดํจํฐ ๋น์ ์๋ฒฝ ๊ฐ์ด๋์ ์ด๋ฒ์ ์ถ์ํ ๋ฅ๋ฌ๋ CNN ์๋ฒฝ ๊ฐ์ด๋ - Pytorch ๋ฒ์ ์ ์๋กญ๊ฒ ๋ก๋๋งต์ผ๋ก ๊ตฌ์ฑํ์์ต๋๋ค. ๊ด์ฌ ์์ผ์ ๋ถ์ ์๋ ๋ก๋๋งต ํ์ด์ง ๋ฐฉ๋ฌธ ๋ถํ๋๋ฆฌ๋ฉฐ, ํน๋ณํ 2์ฃผ๊ฐ๋ง ํด๋น ๋ก๋๋งต์ ํํด ํน๋ณ ํ ์ธ ์ ์ฉ ์ค์ ๋๋ค.
๊ฐ์ฌํฉ๋๋ค.
์๋ ํ์ญ๋๊น,
์์ ๋ณด๋ค ์ผ์ฐ ์์คํ ๊ตฌ์ฑ์ด ์๋ฃ๋์ด ๋ฐฉ๊ธ, ์ ๊ท ๊ฐ์์ธ '๋ฅ๋ฌ๋ CNN ์๋ฒฝ ๊ฐ์ด๋ - Pytorch ๋ฒ์ ' ๊ฐ์๋ฅผ ์คํ ํ์์ต๋๋ค.
์ค๋ ์๊ฐ์ ๊ฑธ์ณ ๋ณธ ๊ฐ์๋ฅผ ์ค๋นํด ์์ต๋๋ค. ๊ธฐ์กด TFKeras ๋ฒ์ ๊ฐ์์์ ๋ณด๋ค ๊ฐ์ ๋ ๊ฐ์ ๋ด์ฉ๊ณผ ํจ๊ป, ๋ณธ ๊ฐ์๋ฅผ ํตํด PyTorch ๊ธฐ๋ฐ์ผ๋ก CNN์ ์๋ฆฌ๋ถํฐ ์ค์ต๊น์ง ๋จ๊ณ์ ์ผ๋ก ํ์ตํ์ฌ, ์ค๋ฌด ํ๋ก์ ํธ์์๋ ๋ฐ๋ก ์ ์ฉํ ์ ์๋ ์ค์ ์ญ๋์ ์์ผ์ค ์ ์์ ๊ฒ์ ๋๋ค.
์๋ URL์ ๋ณด๋ค ์์ธํ ๊ฐ์ ์๊ฐ ๋ด์ฉ์ ์๋กํ์์ต๋๋ค.
๊ฐ์ ์๊ฐ ํ์ด์ง: https://www.inflearn.com/course/%EB%94%A5%EB%9F%AC%EB%8B%9D-cnn-%EC%99%84%EB%B2%BD%EA%B0%80%EC%9D%B4%EB%93%9C-%ED%8C%8C%EC%9D%B4%ED%86%A0%EC%B9%98
Pytorch์ ๊ด์ฌ ์์ผ์ จ๋ค๋ฉด, ์ด๋ฒ ๋ฅ๋ฌ๋ CNN ์๋ฒฝ ๊ฐ์ด๋ - Pytorch ๊ฐ์ ์ ํ์ ํํํ์์ง ์์ผ์ค ๊ฒ์ ๋๋ค. CNN์ ๋ฌผ๋ก ์ด๊ณ Pytorch์ ๊ธฐ๋ณธ๋ถํฐ ์ฌํ๊น์ง ๋ณธ ๊ฐ์๋ฅผ ํตํด์ ์๋ฒฝํ๊ฒ ๋ง์คํฐ ํ์ค ์ ์์ ๊ฒ์ ๋๋ค.
๊ฐ์ฌํฉ๋๋ค.
์๋ ํ์ญ๋๊น, ์๊ฐ์ ์ฌ๋ฌ๋ถ, ๊ถ์ฒ ๋ฏผ ์ ๋๋ค.
์ ๊ฐ ์ด๋ฒ์ 'FastAPI ์๋ฒฝ ๊ฐ์ด๋' ๋ผ๋ ์ ๋ชฉ์ผ๋ก ์๋กญ๊ฒ ๊ฐ์๋ฅผ ์ถ์ํ์์ต๋๋ค. FastAPI์ ๊ด์ฌ์ด ์์ผ์ ๋ถ๋ค์๊ฒ ๋์์ด ๋๊ณ ์ ๊ฐ๋ตํ ๊ฐ์ ์๊ฐ ๊ธ ์ฌ๋ฆฝ๋๋ค.
'FastAPI ์๋ฒฝ ๊ฐ์ด๋'๋ FastAPI์ ํต์ฌ ๊ตฌ์ฑ ์์๋ถํฐ ๊ณ ๊ธ ๊ธฐ๋ฅ๊น์ง ์ฒด๊ณ์ ์ธ ํ์ต์ด ๊ฐ๋ฅํ๋๋ก ๋ค์ํ ์์ ์ ํ๋ถํ ์ค์ ํ๋ก์ ํธ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
๋ํ FastAPI ์์ฒด๋ง์ ๋ค๋ฃจ์ง ์๊ณ , FastAPI๋ฅผ ํ์ฉํ ์น ์๋น์ค ๊ฐ๋ฐ์ ์ ๊ณผ์ ์ ๋ค๋ฃน๋๋ค. ์ด๋ฅผ ํตํด ์ฌ๋ฌ๋ถ์ FastAPI๋ฅผ ์ค์ ํ๋ก์ ํธ์ ๋ฐ๋ก ์ ์ฉํ ์ ์์ ์ ๋์ ์ค๋ ฅ์ ํค์ฐ์ค ์ ์์ ๊ฒ์ ๋๋ค.
๋ณด๋ค ์์ธํ ๊ฐ์ ์๊ฐ๋ ์๋ URL์์ ํ์ธ ํ์ค ์ ์์ต๋๋ค.
https://www.inflearn.com/course/fastapi-%EC%99%84%EB%B2%BD-%EA%B0%80%EC%9D%B4%EB%93%9C
FastAPI๋ฅผ ์ํ ๋ณธ ๊ฐ์์ ์ ํ, ํํํ์ง ์์ผ์๋๋ก ๋ง์ ์๊ฐ, ์ ์ฑ์ ๋คํด ์ ์ํ์์ต๋๋ค.
๋ค๊ฐ์ค๋ ์ถ์ ์ฐํด, ๋ชจ๋๋ค ํ๋ณตํ๊ณ , ์์คํ ์๊ฐ์ด ๋์๊ธธ ๊ธฐ์ ๋๋ฆฝ๋๋ค. ์ ๊ฐ์๋ฅผ ์ฌ๋ํด์ฃผ์๋ ๋ชจ๋ ์๊ฐ์ ๋ถ๋ค๊ป, ๋ฏธ๋ฆฌ ์ถ์ ์ธ์ฌ ํฐ ์ ๋๋ฆฝ๋๋ค.
๊ฐ์ฌํฉ๋๋ค.
์๋ ํ์ญ๋๊น,
ksqlDB 2๋ถ ๊ฐ์๋ฅผ ๋ณ๋๋ก ์ถ์ํ์ง ์๊ณ , ksqlDB 1๋ถ ๊ฐ์์ ์ถ๊ฐ ๊ฐ์๋ฅผ ํตํฉํ ์์ ์ ๋๋ค.
์ถ๊ฐ๋ ๊ฐ์๋ค์ ์ฝ 7~8์๊ฐ ๋ถ๋์ผ๋ก, ์ฃผ์ ๋ด์ฉ์ ์๋์ ๊ฐ์ต๋๋ค.
KSQLDB์ Connect ์ฐ๋
Elasticsearch Sink Connector ์ฐ๋
KSQLDB Use case ์ค์ ์ค์ต
KSQLDB ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ Kibana๋ก ์๊ฐํ
์ถ๊ฐ ๊ฐ์๋ 6์ 8์ผ(๋ชฉ)๊น์ง ๋ชจ๋ ์ ๋ก๋ ํ ์์ ์ด๋ฏ๋ก ๊ธฐ์กด ์๊ฐ์ ๋ถ๋ค์ ๊ณง ์ถ๊ฐ ๊ฐ์๋ฅผ ๋ค์ผ์ค ์ ์์ผ์ค ๊ฒ์ ๋๋ค.
๊ฐ์๋ช ์ ์นดํ์นด ์๋ฒฝ ๊ฐ์ด๋ - ksqlDB ํธ์ผ๋ก ๋ณ๊ฒฝ๋ ๊ฒ์ด๋ฉฐ, ์ถ๊ฐ๋ ๊ฐ์๋ด์ฉ๋ค์ ๋ฐ์ํ์ฌ ๊ฐ์ ์๊ฐ๋ ๋ณ๊ฒฝํ ๊ฒ์ ๋๋ค. ์์ ์๋ฃ ์์ ์ผ์ 6์ 14์ผ ์ ๋๋ค.
๊ฐ์ ๊ธ์ก์ 99,000์์ผ๋ก ์ธ์๋ ์์ ์ด๋ฉฐ (๋น์ฐํ) ๊ธฐ์กด ์๊ฐ์ ๋ถ๋ค์ ์ํฅ์ด ์์ต๋๋ค.
๋ค๋ง ์ธ์ ์ผ์๋ 6์ 14์ผ์ด๋ฉฐ, ๊ทธ๋๊น์ง๋ ํ์ฌ ๊ฐ๊ฒฉ์ด ์ ์ง ๋ฉ๋๋ค.
์ธ์ ๋ ์ ๊ฐ์๋ฅผ ์ฌ๋ํด ์ฃผ์๋ ์๊ฐ์ ๋ถ๋ค๊ป ๋ค์ ํ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.






