ํ† ์Šค ๊ฐœ๋ฐœ์ž์™€ ํ•จ๊ป˜ํ•˜๋Š” Data Workflow Management ๊ธฐ๋ฐ˜์˜ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์„ค๊ณ„ ํŒจํ„ด

Apache Airflow๋ฅผ ํ™œ์šฉํ•œ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ• ๊ณผ์ •์„ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์‹ค์ „๊นŒ์ง€ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. Airflow์˜ ํ•ต์‹ฌ ๊ฐœ๋…๊ณผ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ดํ•ดํ•˜๊ณ , ๋™์  DAG, ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ, ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ, Custom Operator ๋“ฑ ์‹ค๋ฌด์—์„œ ์ž์ฃผ ํ™œ์šฉ๋˜๋Š” ๊ณ ๊ธ‰ ์„ค๊ณ„ ํŒจํ„ด์„ ์‹ค์Šต์„ ํ†ตํ•ด ์ตํž™๋‹ˆ๋‹ค. Python๊ณผ Docker๋กœ ์‹ค์Šต ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜๋ฉฐ, ์‹ค์ œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์„ค๊ณ„ํ•˜๊ณ  ์šด์˜ํ•  ์ˆ˜ ์žˆ๋Š” ์‹ค์ „ ์—ญ๋Ÿ‰์„ ๊ธฐ๋ฆ…๋‹ˆ๋‹ค.

(4.7) ์ˆ˜๊ฐ•ํ‰ 17๊ฐœ

์ˆ˜๊ฐ•์ƒ 188๋ช…

๋‚œ์ด๋„ ์ดˆ๊ธ‰

์ˆ˜๊ฐ•๊ธฐํ•œ ๋ฌด์ œํ•œ

์‹ค์Šต ์ค‘์‹ฌ
์‹ค์Šต ์ค‘์‹ฌ
์ž๊ฒฉ์ฆ
์ž๊ฒฉ์ฆ
์‹œํ—˜
์‹œํ—˜
๋ฐ์ดํ„ฐ๋ถ„์„
๋ฐ์ดํ„ฐ๋ถ„์„
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
์‹ค์Šต ์ค‘์‹ฌ
์‹ค์Šต ์ค‘์‹ฌ
์ž๊ฒฉ์ฆ
์ž๊ฒฉ์ฆ
์‹œํ—˜
์‹œํ—˜
๋ฐ์ดํ„ฐ๋ถ„์„
๋ฐ์ดํ„ฐ๋ถ„์„
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

๋จผ์ € ๊ฒฝํ—˜ํ•œ ์ˆ˜๊ฐ•์ƒ๋“ค์˜ ํ›„๊ธฐ

๋จผ์ € ๊ฒฝํ—˜ํ•œ ์ˆ˜๊ฐ•์ƒ๋“ค์˜ ํ›„๊ธฐ

4.7

5.0

๋ฏธ๋ž˜ 1์ธ ๊ฐœ๋ฐœ์ž

93% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

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

5.0

dellahong

62% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

Airflow๋ฅผ 3๋…„์งธ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ, ์ ์  ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์žฆ์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด์„œ ๋‹ค๋ฅธ ํšŒ์‚ฌ์—์„œ๋Š” ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉ์„ ํ• ๊นŒ ์‹ถ์–ด์„œ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๋งŽ์€ ๋„์›€์ด ๋˜๊ณ  ์žˆ์–ด์š”! ์‹ค๋ฌด์ ์œผ๋กœ Airflow์˜ ๊ฐœ๋…๊ณผ ์‹ค์Šต์ด ์žˆ์–ด์„œ ์ดํ•ดํ•˜๊ณ  ์ ์šฉํ•˜๋Š”๋ฐ ๋„์›€์ด ๋งŽ์ด๋ฉ๋‹ˆ๋‹ค :)

5.0

ํ…๋ฒ„๊ฑฐ!

100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

์ œ๊ฐ€ ์ฒ˜์Œ๋ณด๊ณ  ๋ณผ ์ˆ˜ ์—†์—ˆ๋˜ ๊ด€์ ์—์„œ์˜ ๋‹ค์–‘ํ•œ ๊ฐœ๋…์„ ์•Œ๋ ค์ฃผ๋Š” ๋œป๊นŠ์€ ๊ฐ•์˜๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚ด์šฉ ์ž์ฒด๊ฐ€ ์Œ.. ๋ญ๋ž„๊นŒ ์ œ ์‹๊ฒฌ์„ ๋„“ํ˜€์ฃผ๋Š” ๋‚ด์šฉ์ด์˜€๋˜๊ฑฐ ๊ฐ™์•„์š”. ์ข‹์€ ๊ฐ•์˜ ๋„ˆ๋ฌด ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ…๋ฒ„๊ฑฐ!

์ˆ˜๊ฐ• ํ›„ ์ด๋Ÿฐ๊ฑธ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”

  • Apache Airflow์˜ ๊ฐœ๋…๊ณผ ํ•„์š”์„ฑ ์ดํ•ด

  • Airflow Core Components ๊ตฌ์กฐ ํŒŒ์•…

  • ๋™์  DAG(Dynamic DAG) ์„ค๊ณ„ ๋ฐฉ๋ฒ•

  • TaskGroup๊ณผ ์˜์กด์„ฑ ๊ด€๋ฆฌ ํŒจํ„ด

  • ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ๋ฐ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์žฌ์ฒ˜๋ฆฌ ์ „๋žต

  • Custom Operator์™€ ๊ทธ์— ๋‹ค๋ฅธ ์บก์Аํ™”, ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ํ™œ์šฉ

  • Python & Docker ๊ธฐ๋ฐ˜ ์‹ค์Šต ํ™˜๊ฒฝ ๊ตฌ์ถ•

๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ํŒŒ์ดํ”„๋ผ์ธ์€ ์–ด๋–ค ์„œ๋น„์Šค๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์ข‹์„๊นŒ? ๐Ÿค”

โ—์ด ๋‚ด์šฉ์€ ์‹ค์ œ ๋Œ€ํ™” ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.โ—

๐Ÿ˜ Toss : Hong์•„ airflow ํ˜น์‹œ ์•Œ๊ณ  ์žˆ๋ƒ??

๐Ÿ˜„ Hong : ์•Œ๊ณ ๋Š” ์žˆ๋Š”๋ฐ, ์จ๋ณด์ง€๋Š” ์•Š์•˜์–ด ์™œ?

๐Ÿ˜ Toss : ์ €๋ฒˆ์— ๋งŒ๋“  workflow ๊ฐ•์˜ ์žˆ์ž–์•„, ๊ทธ๊ฑฐ ๋ณด๊ณ  ํ˜น์‹œ airflow์— ๋Œ€ํ•ด์„œ๋„ ๋‹ค๋ฃจ๋ฉด ์–ด๋–จ๊นŒ ์‹ถ์–ด์„œ.. ๋‚˜๋Š” airflow๋งŒ ์จ๋ดค๊ฑฐ๋“ 

๐Ÿ˜„ Hong : ๊ทผ๋ฐ ๋‚˜ airflow๋Š” ์•ˆ์จ๋ดค๋Š”๋ฐ, ์ž˜ ๋ชฐ๋ผ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋Š”๊ฑด๋ฐ

๐Ÿ˜ Toss : ใ„ฑใ…Š ๋‚ด๊ฐ€ ์‹ค๋ฌด์—์„œ ์ง€๊ธˆ ์‚ฌ์šฉํ•˜๊ณ ๋„ ์žˆ์–ด์„œ, ๋‚ด๊ฐ€ ์ฃผ๋„์ ์œผ๋กœ ์•Œ๋ ค์ค„ ์ˆ˜ ์žˆ์–ด. ์ œ์ž๋ฅผ ์œ„ํ•ด ํ•œ ๋ชธ ๋ถˆํƒœ์›Œ๋ถˆ๊ฒŒ

๐Ÿ˜„ Hong : ใ…‹ใ…‹ใ…‹ใ…‹ ์ปจ์…‰ ์ž˜์žก์•˜๋„ค. ์•Œ์•˜์–ด. ๊ทผ๋ฐ ์ด๊ฑฐ ๊ผญ ์จ์•ผํ•˜๋Š”๊ฑด๊ฐ€?? ์ผ๋ฐ˜ ๋ฐฐ์น˜์ฒ˜๋ฆฌ๋‚˜ ํฌ๋ก ์žก ์ฒ˜๋ฆฌ๋‚˜ ์‚ฌ์‹คํฌ๊ฒŒ ๋‹ค๋ฅผ๋ฐ”๋ฅผ ๋ชป๋А๋ผ๊ฒ ๋Š”๋ฐ?

๐Ÿ˜ Toss : ๊ทธ๋Ÿฐ ์ƒ๊ฐ์„ ํ•œ๋‹ค๋Š”๊ฑฐ ๋ถ€ํ„ฐ๊ฐ€ airflow๋ฅผ ์จ์•ผํ•˜๋Š” ์ด์œ ๊ฐ€ ๋˜๋Š”๊ฑฐ์ง€.. airflow์™€ ๋ฐฐ์น˜์ฒ˜๋ฆฌ๋‚˜ ํฌ๋ก ์žก์ด๋ž‘์€ ์ผ๋ถ€ ์ฐจ์ด๊ฐ€ ์žˆ์ง€ ์†ํžˆ ๋งํ•ด์„œ ์›Œํฌ ํ”Œ๋กœ์šฐ๋ฅผ ์™œ ์จ์•ผํ•˜๋Š” ์ด์œ ์™€ ๊ฐ™๊ณ  ๋น…๋ฐ์ดํ„ฐ๋„ ์กด์žฌํ•˜์ž–์•„.

์•ž์„  ๋Œ€ํ™”์—์„œ Toss ์‹œ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งˆ์ง€๋ง‰์œผ๋กœ ํ•œ ๋ง์˜ ์˜๋ฏธ๋Š” ๋ฌด์—‡์ผ๊นŒ์š”??๐Ÿค”

๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ชจ๋“ˆ ๊ตฌ์„ฑํ•˜๋Š”๋ฐ ๊ผญ Airflow๊ฐ€ ํ•„์š”ํ•œ๊ฐ€?? ์™œ ๊ผญ ์‚ฌ์šฉํ•ด์•ผํ•˜์ง€?? ๋‚ด๊ฐ€ ์ƒ๊ฐํ–ˆ์„ ๋–„์—๋Š” ๊ทธ๋ƒฅ ์ผ๋ฐ˜์ ์ธ ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ ๋ชจ๋“ˆ์ด๋‚˜ ํฌ๋ก  ์žก์„ ํ†ตํ•ด์„œ ๊ตฌํ˜„ํ•˜๋ฉด ๋  ๊บผ ๊ฐ™์€๋ฐ??

ํ˜น์‹œ ์ด๋Ÿฐ ์ƒ๊ฐ์„ ํ•˜์…จ๋‚˜์š”?? ๊ทธ๋ ‡๋‹ค๋ฉด ํ•ด๋‹น ๊ฐ•์˜๋ฅผ ํ†ตํ•ด์„œ Airflow๋ฅผ ํ™œ์šฉํ•˜๊ณ  ๋„์ž…ํ•˜๋Š” ๊ณผ์ •์„ ๊ณต๋ถ€ํ•ด๋ณด์‹œ๋ฉด ์ปค๋ฆฌ์–ด ์ธก๋ฉด์—์„œ ํฐ ๋„์›€์ด ๋˜์‹ค๊ฒ๋‹ˆ๋‹ค.


๋‹ต์€ ์›Œํฌํ”Œ๋กœ์šฐ ๊ด€๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์ถ”์ถœ, ๊ฐ€๊ณต, ์ฒ˜๋ฆฌ๊นŒ์ง€ ์ด ์ผ๋ จ์˜ ๊ณผ์ •์ด ์–ด๋–ป๊ฒŒ ์•ˆ์ •์ ์œผ๋กœ ํ˜๋Ÿฌ๊ฐˆ ์ˆ˜ ์žˆ๊ณ  ํŒŒ์ดํ”„๋ผ์ธ์ฒ˜๋Ÿผ ์ˆœ์ฐจ์ ์œผ๋กœ ์˜์กด์ ์œผ๋กœ ๊ด€๋ฆฌ๊ฐ€ ๋  ์ˆ˜ ์žˆ์„๊นŒ์š”?? ์ด ์ผ๋ จ์˜ ๊ณผ์ •์ด ํ•˜๋‚˜์˜ ํ”Œ๋žซํผ์„ ํ†ตํ•ด ๋ชจ๋‘ ์ง€์›์ด ๋œ๋‹ค๋ฉด ์–ด๋–จ๊นŒ์š”??


์ด๋ก ๋งŒ ๋‚˜์—ดํ•˜๋Š” ์ง€๋ฃจํ•œ ๊ฐ•์˜๋‚˜ ์•„๋‹ˆ๋ผ, ๋™์ž‘ํ•˜๋Š” ๊ณผ์ •์„ ํ•จ๊ป˜ ์‚ดํŽด๋ณด๋ฉด์„œ ์›Œํฌ ํ”Œ๋กœ์šฐ ๊ธฐ๋ฐ˜์˜ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ์„ค๊ณ„์— ๋Œ€ํ•ด ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ •๋ณตํ•˜๋Š” ์‹ค์ „ํ˜• ๊ฐ€์ด๋“œ๋กœ์จ ์ค€๋น„ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๐Ÿš€

์ด ๊ฐ•์˜์˜ ํŠน์ง• โšก

๐Ÿ“Œ 30๊ฐœ ๊ฐ€๋Ÿ‰์˜ ๋‹ค์ด์–ด๊ทธ๋žจ, ๊ฐ•์˜ ์š”์•ฝ ํŒŒ์ผ ํ’๋ถ€ํ•œ ๊ฐ•์˜ ๊ตฌ์„ฑ

* ๋‹จ์ˆœํžˆ ๋ง๋งŒ์œผ๋กœ ์„ค๋ช…ํ•˜๋Š” ๊ฐ•์˜๊ฐ€ ์•„๋‹ˆ๋ผ, ์‹ค์ œ ์†Œ์Šค์ฝ”๋“œ, ๋‹ค์ด์–ด๊ทธ๋žจ, ์‹œํ€€์Šค๊ทธ๋žจ, ์ถ”๊ฐ€๋กœ ๊ฐ•์˜ ๋‚ด์šฉ์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์š”์•ฝ๋ณธ ํŒŒ์ผ๋„ ์ œ๊ณตํ•ด ๋“œ๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ ์ด๋ก  60%, ์‹ค์Šต 40%, ์™„๋ฒฝํ•œ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์ œ๊ณต

* ๋‹จ์ˆœํ•˜๊ฒŒ ์ด๋ก ๋งŒ์„ ๋‚˜์—ดํ•˜๋Š” ๊ฐ•์˜๊ฐ€ ์•„๋‹Œ, ์‹ค์ œ ์—ฌ๋Ÿฌ๋ถ„๋“ค์ด ๋ˆˆ์œผ๋กœ ํ™•์ธํ•˜์‹œ๋ฉฐ ๋ฐฐ์šด ๋‚ด์šฉ์„ ํ•™์Šต ํ•˜์‹ค ์ˆ˜ ์žˆ๋Š” ๊ฒฝ๋Ÿ‰๋œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ด๋“œ๋ฆฌ๊ณ  ์ด ํ™˜๊ฒฝ์—์„œ ์‹ค์Šต๋„ ์œ ๋™์ ์œผ๋กœ ํ…Œ์ŠคํŠธ ํ•˜์‹ค ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌ์„ฑํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ด์ „ ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ์ž…์ฆ๋œ ์ „๋ฌธ์„ฑ (9.27 ๊ธฐ์ค€) ๐Ÿ‘จโ€๐Ÿซ 

๐Ÿง‘โ€๐ŸŽ“ 307 โญ 5.0

๐Ÿง‘โ€๐ŸŽ“ 379 โญ 4.9

๐Ÿง‘โ€๐ŸŽ“ 483 โญ 4.7

๐Ÿง‘โ€๐ŸŽ“ 239 โญ 4.8

๊ฐ•์˜์—์„œ๋Š” ์ด๋Ÿฐ ๋‚ด์šฉ์„ ๋‹ค๋ฃจ๊ณ  ์žˆ์–ด์š”. ๐Ÿงฉ 

* What is Airflow?

*Batch Job & Cron Job Vs Airflow

*Apache Airfow์˜ ๋‹จ์ ๊ณผ ๋„์ž…์— ๋Œ€ํ•œ ์•ˆํ‹ฐ ํŒจํ„ด

* ์ „์ฒด์ ์ธ Core Components Architecture ์†Œ๊ฐœ

* WebServer Components Deep Ei

* Scheduler Components Deep Dive

* Executor Components Deep Dive

* MetaDataDB Components Deep Dive

* ๋™์  DAG ์ƒ์„ฑ ํŒจํ„ด [ Dynamic DAG ]

* Cross-DAG Dependencies์™€ ๋ฐ์ดํ„ฐ ์˜์กด์„ฑ

* TaskGroup์„ ํ™œ์šฉํ•œ ๋ณต์žกํ•œ ์›Œํฌํ”Œ๋กœ์šฐ ์„ค๊ณ„

* ์žฌ์‚ฌ์šฉ ๋ฐ ์บก์Аํ™”๋ฅผ ์œ„ํ•œ Custom Operator

*Docker, docker-compose๋ฅผ ํ™œ์šฉํ•œ ๊ฒฝ๋Ÿ‰ ํ™˜๊ฒฝ๊ตฌ์ถ•

* Airlfow์˜ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ์™€ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ์ „๋žต

* Slack์„ ํ™œ์šฉํ•œ Notification

* CeleryExecutor๋ฅผ ํ™œ์šฉํ•œ ๋ฐ์ดํ„ฐ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ

์ด ๊ฐ•์˜๊ฐ€ ํŠน๋ณ„ํ•œ ์ด์œ  โšก

๐Ÿ“Œ 50๊ฐœ์˜ ์ฟ ํฐ์„ ์ œ๊ณตํ•˜๋Š” ์ด๋ฒคํŠธ

๊ฐ•์˜ ์–ผ๋ฆฌ๋ฒ„๋“œํ• ์ธ ๊ธฐ๊ฐ„์— ๊ตฌ๋งคํ•ด์ฃผ์‹œ๋Š” ๋ถ„๋“ค์— ํ•œํ•ด์„œ 50๋ช…์„ ์„ ๋ณ„ํ•˜๊ณ , ๊ทธ์— ๋”ฐ๋ผ 50% ์ฟ ํฐ์„ 1๊ฐœ์”ฉ ์ œ๊ณตํ•ด ๋“œ๋ฆฌ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค

๊ฐ™์ด ๋ณด๋ฉด ์ข‹์€ ์ž๋ฃŒ ๐Ÿš€ 

์ด ๊ฐ•์˜๋ฅผ ๋งŒ๋“  ์‚ฌ๋žŒ ๐Ÿคญ

  • ๋น„์ „๊ณต์ž๋กœ ์‹œ์ž‘ํ•˜์˜€๊ณ , ํ˜„์žฌ๋Š” ํŒ๊ต์—์„œ ํ”Œ๋žซํผ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ ๊ทผ๋ฌดํ•˜๊ณ  ์žˆ๋Š” ๊ฐœ๋ฐœ์ž

  • ํ˜„์‹ค์ ์ธ ๊ฐœ๋ฐœ ๋ฐฉ์‹๊ณผ ๊ฐœ๋ฐœ๋ก ์„ ์•Œ๋ ค๋“œ๋ฆฌ๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ด๊ณ , ํ˜ผ์ž๊ฐ€ ์•„๋‹Œ ์ฃผ๋ณ€ ๋Šฅ๋ ฅ์žˆ๋Š” ์ง€์ธ๋“ค๊ณผ ํ•จ๊ป˜ ๊ฐ•์˜๋ฅผ ๋งŒ๋“œ๋Š” ์ง€์‹ ๊ณต์œ ์ž

  • ์—ด์‹ฌํžˆ ํ™œ๋™ํ•œ ๋•๋ถ„์— ์ธํ”„๋Ÿฐ์—์„œ ์ธํ„ฐ๋ทฐ ์ง„ํ–‰ํ•ด ๋ณธ ์ง€์‹ ๊ณต์œ ์ž


  • ์ง€๋ฐฉ์—์„œ ์ปดํ“จํ„ฐ ๊ณตํ•™์„ ์ „๊ณตํ•˜์˜€๊ณ , ๋„ค์ด๋ฒ„์—์„œ ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๊ฐ€ ํ˜„์žฌ๋Š” ํ† ์Šค์—์„œ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์„ ํ•˜๊ณ  ์žˆ๋Š” ์„œ๋ฒ„ ๊ฐœ๋ฐœ์ž

  • ๋Š˜ ์‹œ๊ฐ„์ด ๋ถ€์กฑํ•˜์—ฌ ํ™์—๊ฒŒ ๋งŽ์ด ํ˜ผ๋‚˜๋Š” ๊ฐœ๋ฐœ์ž...

  • ๊ฒฝ์ œ์  ์ž์œ ๋ฅผ ์ด๋ฃจ๊ณ  ์‹ถ๊ณ , 1์ธ ๊ฐœ๋ฐœ์„ ๊ฟˆ๊พธ๊ณ  ์žˆ๋Š” ๊ฐœ๋ฐœ์ž

์ฐธ๊ณ  ์‚ฌํ•ญ

์‹ค์Šต ํ™˜๊ฒฝ

  • python3, pip3

    • Python 3.13.2

    • 25.0 from /opt/homebrew/lib/python3.13/site-packages/pip (python 3.13)

  • docker, docker-compose

    • Docker version 28.0.0, build f9ced58158

    • Docker Compose version 2.33.1

  • OS

    • Apple M3 Air

ํ•ด๋‹น ๊ฐ•์˜๋Š” ์ดˆ๊ธฐ์— ๊ตฌ๋งคํ•˜์‹œ๋Š” ๋ถ„๋“ค์—๊ฒŒ ๋” ๋งŽ์€ ํ• ์ธ์œจ์„ ์ œ๊ณตํ•ด ๋“œ๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ์„œ ํ• ์ธ์œจ์ด ์กฐ์œจ์ด ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์ฐธ๊ณ  ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • ์‹ค๋ฌด์—์„œ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ์„œ๋ฒ„/๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด

  • ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ์„ค๊ณ„์™€ ์šด์˜ ๊ฒฝํ—˜์„ ์Œ“๊ณ  ์‹ถ์€ ๊ฐœ๋ฐœ์ž

  • Airflow๋ฅผ ๋„์ž…ํ•˜๊ฑฐ๋‚˜ ๊ณ ๋„ํ™”ํ•˜๋ ค๋Š” ๊ธฐ์—…์˜ ๊ธฐ์ˆ  ๋‹ด๋‹น์ž

  • ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ๋ฐ ์›Œํฌํ”Œ๋กœ์šฐ ์ž๋™ํ™”์— ๊ด€์‹ฌ ์žˆ๋Š” ์•„ํ‚คํ…ํŠธ

  • ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ์•ˆ์ •์ ์ธ ๋ฐ์ดํ„ฐ ํ”Œ๋žซํผ์„ ๊ตฌ์ถ•ํ•˜๊ณ  ์‹ถ์€ ํŒ€ ๋ฆฌ๋“œ/์‹œ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž

์•ˆ๋…•ํ•˜์„ธ์š”
Hong์ž…๋‹ˆ๋‹ค.

7,445

๋ช…

์ˆ˜๊ฐ•์ƒ

461

๊ฐœ

์ˆ˜๊ฐ•ํ‰

142

๊ฐœ

๋‹ต๋ณ€

4.7

์ 

๊ฐ•์˜ ํ‰์ 

24

๊ฐœ

๊ฐ•์˜

์ž๊ธฐ ์†Œ๊ฐœ

์ง‘์—์„œ ๋นˆ๋‘ฅ๋Œ€๋‹ค ๊ฐœ๋ฐœ์— ํฅ๋ฏธ๋ฅผ ๋А๊ปด ๊ฐœ๋ฐœ ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ•˜์˜€๊ณ  ํ˜„์žฌ๋Š” ํŒ๊ต์—์„œ ํ”Œ๋žซํผ ์„œ๋ฒ„ ๊ฐœ๋ฐœ์„ ๋‹ด๋‹นํ•˜์—ฌ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ๊ณต๋ถ€๋ฅผ ํ–ˆ๋˜ ๋ฐฉ๋ฒ•๊ณผ ์‹ค๋ฌด์—์„œ ์ ‘ํ•˜์‹ค ์ˆ˜ ์žˆ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฌธ์ œ์ ๋“ค๊ณผ ํ•ด๊ฒฐ์ฑ…์„ ์—ฌ๋Ÿฌ๋ถ„๋“ค์—๊ฒŒ ์ œ๊ณตํ•˜๊ณ  ์‹ถ์–ด ์ง€์‹๊ณต์œ ์ž ํ™œ๋™์„ ์ด์–ด๋‚˜๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ฐ•์˜๋Š” ์˜ค๋กœ์ง€ ์ €๋งŒ์˜ ์ง€์‹์„ ํ†ตํ•ด ๋งŒ๋“ค์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฐ•์˜๋Š” ํ•จ๊ป˜ํ•˜์‹œ๋Š” ๋ถ„๋“ค์ด ๊ณ„์‹ญ๋‹ˆ๋‹ค.

 

์ง€์‹๊ณต์œ ์ž ๊ฒฝ๋ ฅ

[ๅ‰] ์ƒŒ๋“œ๋ฐ•์ŠคIP ๊ด€๋ จ ๋ธ”๋ก์ฒด์ธ ๊ฐœ๋ฐœ์ž

[ๅ‰] ๋ฉ”ํƒ€๋ฒ„์Šค ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž

[็พ] ํŒ๊ต์—์„œ ๊ณ ์—ฌ๊ฐ€๋Š” ์„œ๋ฒ„ ๊ฐœ๋ฐœ์ž

 

์ธํ„ฐ๋ทฐ ์ด๋ ฅ

๊ธฐํƒ€ ๋ฌธ์˜

  • unduck2022@gmail.com

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

29๊ฐœ โˆ™ (4์‹œ๊ฐ„ 39๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์ „์ฒด

17๊ฐœ

4.7

17๊ฐœ์˜ ์ˆ˜๊ฐ•ํ‰

  • ์Šคํ”„๋ง๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    ์Šคํ”„๋ง

    ์ˆ˜๊ฐ•ํ‰ 111

    โˆ™

    ํ‰๊ท  ํ‰์  4.9

    5

    21% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    • dellahong๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
      dellahong

      ์ˆ˜๊ฐ•ํ‰ 1

      โˆ™

      ํ‰๊ท  ํ‰์  5.0

      5

      62% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

      Airflow๋ฅผ 3๋…„์งธ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ, ์ ์  ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์žฆ์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด์„œ ๋‹ค๋ฅธ ํšŒ์‚ฌ์—์„œ๋Š” ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉ์„ ํ• ๊นŒ ์‹ถ์–ด์„œ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๋งŽ์€ ๋„์›€์ด ๋˜๊ณ  ์žˆ์–ด์š”! ์‹ค๋ฌด์ ์œผ๋กœ Airflow์˜ ๊ฐœ๋…๊ณผ ์‹ค์Šต์ด ์žˆ์–ด์„œ ์ดํ•ดํ•˜๊ณ  ์ ์šฉํ•˜๋Š”๋ฐ ๋„์›€์ด ๋งŽ์ด๋ฉ๋‹ˆ๋‹ค :)

      • Hong
        ์ง€์‹๊ณต์œ ์ž

        dellahong๋‹˜ ์ข‹์€ ํ‰ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์‹ค๋ฌด์ž๊ฐ€ ํ•ด์ฃผ๋Š” ํ‰๊ฐ€๋ผ๋‹ˆ ๋” ๋œป๊นŠ๋„ค์š” ์•ž์œผ๋กœ ๋…ธ๋ ฅํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

    • ํ…๋ฒ„๊ฑฐ!๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
      ํ…๋ฒ„๊ฑฐ!

      ์ˆ˜๊ฐ•ํ‰ 7

      โˆ™

      ํ‰๊ท  ํ‰์  5.0

      5

      100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

      ์ œ๊ฐ€ ์ฒ˜์Œ๋ณด๊ณ  ๋ณผ ์ˆ˜ ์—†์—ˆ๋˜ ๊ด€์ ์—์„œ์˜ ๋‹ค์–‘ํ•œ ๊ฐœ๋…์„ ์•Œ๋ ค์ฃผ๋Š” ๋œป๊นŠ์€ ๊ฐ•์˜๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚ด์šฉ ์ž์ฒด๊ฐ€ ์Œ.. ๋ญ๋ž„๊นŒ ์ œ ์‹๊ฒฌ์„ ๋„“ํ˜€์ฃผ๋Š” ๋‚ด์šฉ์ด์˜€๋˜๊ฑฐ ๊ฐ™์•„์š”. ์ข‹์€ ๊ฐ•์˜ ๋„ˆ๋ฌด ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ…๋ฒ„๊ฑฐ!

      • Hong
        ์ง€์‹๊ณต์œ ์ž

        ์•ˆ๋…•ํ•˜์„ธ์š” ํ…๋ฒ„๊ฑฐ!๋‹˜ ์ข‹์€ ํ‰ ๋‚จ๊ฒจ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!! ์•ž์œผ๋กœ ๋” ์ข‹์€ ๋‚ด์šฉ ์ œ๊ณตํ•ด ๋“œ๋ฆด ์ˆ˜ ์žˆ๋˜๋ก ๋…ธ๋ ฅํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!!

    • joon๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
      joon

      ์ˆ˜๊ฐ•ํ‰ 10

      โˆ™

      ํ‰๊ท  ํ‰์  5.0

      5

      31% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

      • ๋ฏธ๋ž˜ 1์ธ ๊ฐœ๋ฐœ์ž๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
        ๋ฏธ๋ž˜ 1์ธ ๊ฐœ๋ฐœ์ž

        ์ˆ˜๊ฐ•ํ‰ 8

        โˆ™

        ํ‰๊ท  ํ‰์  5.0

        5

        93% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

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

        • Hong
          ์ง€์‹๊ณต์œ ์ž

          ๐Ÿ’œ

      Hong๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜

      ์ง€์‹๊ณต์œ ์ž๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

      ๋น„์Šทํ•œ ๊ฐ•์˜

      ๊ฐ™์€ ๋ถ„์•ผ์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

      ์—ฐ๊ด€ ๋กœ๋“œ๋งต

      ๊ฐ•์˜๊ฐ€ ํฌํ•จ๋œ ๋กœ๋“œ๋งต์œผ๋กœ ํ•™์Šตํ•ด ๋ณด์„ธ์š”!

      ์ง€์‹๊ณต์œ ์ž์˜ ๊นœ์งํ• ์ธ ์ค‘ (5์ผ ๋‚จ์Œ)

      โ‚ฉ42,900

      20%

      โ‚ฉ53,900