Airflow ์™„๋ฒฝ ๊ฐ€์ด๋“œ - Part 1

๋ณธ ๊ฐ•์˜๋Š” Apache Airflow์˜ ํ•ต์‹ฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜๊ณผ DAG, Operator, Hook, Scheduling, Timezone, ๋ฉฑ๋“ฑ์„ฑ, Template๊นŒ์ง€ ์ƒ์„ธํ•œ ์ด๋ก ๊ณผ ์‹ค์Šต์œผ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ Airflow๊ฐ€ โ€œ์™œ ์ด๋ ‡๊ฒŒ ๋™์ž‘ํ•˜๋Š”๊ฐ€โ€๋ฅผ ์ดํ•ดํ•˜๊ณ  ์Šค์Šค๋กœ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์„ ์„ค๊ณ„ยท๋””๋ฒ„๊น…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“œ๋Š” ์‹ค์ „ ์ค‘์‹ฌ Airflow ๋งˆ์Šคํ„ฐ ๊ณผ์ •์ž…๋‹ˆ๋‹ค.

(5.0) ์ˆ˜๊ฐ•ํ‰ 2๊ฐœ

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

๋‚œ์ด๋„ ์ค‘๊ธ‰์ด์ƒ

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

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

  • Airflow ์ฃผ์š” ์ปดํฌ๋„ŒํŠธ๋“ค์˜ ํ•ต์‹ฌ ๋™์ž‘ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์ดํ•ด

  • Operator, Hook, TaskFlow API์˜ ์—ญํ• ๊ณผ ๋‚ด๋ถ€ ๋™์ž‘ ๊ตฌ์กฐ ์ดํ•ด

  • ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ Operator(Bash, Http, SQL, S3) ์‚ฌ์šฉ๋ฒ•

  • API, SQL, Object Storage๋ฅผ ํ™œ์šฉํ•œ ์‹ค์ „ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌํ˜„

  • ์žฌ์‹คํ–‰, Timezone ์˜ค๋ฅ˜, catchup/backfill ํ˜ผ๋™ ๋“ฑ ์‹ค๋ฌด ์šด์˜ ์ด์Šˆ ํ•ด๊ฒฐ ์—ญ๋Ÿ‰ ํ™•๋ณด

  • ๋ฉฑ๋“ฑ์„ฑ์„ ๊ณ ๋ คํ•œ ์•ˆ์ •์ ์ธ ํŒŒ์ดํ”„๋ผ์ธ ์„ค๊ณ„ ๋Šฅ๋ ฅ

  • Interval ๊ธฐ๋ฐ˜ ์Šค์ผ€์ค„๊ณผ ์‹คํ–‰ ์‹œ์  ๊ธฐ๋ฐ˜ ์Šค์ผ€์ค„์˜ ์ฐจ์ด๋ฅผ ๋ช…ํ™•ํžˆ ์ดํ•ด

  • ์‹ค๋ฌด์—์„œ Airflow๋ฅผ ์„ค๊ณ„ํ•˜๊ณ  ์šด์˜ํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ค€ ๋„๋‹ฌ

๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ํ•œ ๋ฐฉ์— ๋! Airflow ๋งˆ์Šคํ„ฐ ํด๋ž˜์Šค

๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์˜ ๋ณต์žก์„ฑ์„ ๋ช…ํ™•ํžˆ ์ดํ•ดํ•˜๊ณ ,์Šค์Šค๋กœ ์„ค๊ณ„๋ถ€ํ„ฐ ๋””๋ฒ„๊น…๊นŒ์ง€ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“œ๋Š”
์‹ค์ „ ์ค‘์‹ฌ Airflow ๋งˆ์Šคํ„ฐ ๊ณผ์ •์ž…๋‹ˆ๋‹ค.


๋‚ด๊ฐ€ ๋งŒ๋“  ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ, ์™œ ์ ์  ๋ณต์žกํ•ด์งˆ๊นŒ์š”?
์™œ ๋ฌธ์ œ ํ•˜๋‚˜ ๊ณ ์น˜๋Š”๋ฐ ๋ฐ˜๋‚˜์ ˆ์ด ๊ฑธ๋ฆด๊นŒ์š”?

Airflow ์Šค์ผ€์ค„์ด ๊ผฌ์—ฌ ์ƒˆ๋ฒฝ์— ๋น„์ƒ ์—ฐ๋ฝ์„ ๋ฐ›์€ ๊ฒฝํ—˜์ด ์žˆ์œผ์‹ ๊ฐ€์š”?

๋ฐ์ดํ„ฐ๊ฐ€ ์ค‘๋ณต์œผ๋กœ ์Œ“์—ฌ ๋ณต์žกํ•œ ์ „์ฒ˜๋ฆฌ์— ๊ณจ๋จธ๋ฆฌ๋ฅผ ์•“์€ ์ ์€ ์—†์œผ์‹ ๊ฐ€์š”?

๋ณธ ๊ฐ•์˜๋Š” Part 1 ๊ฐ•์˜์ด๋ฉฐ Part 2 ๊ฐ•์˜๋Š” 2026๋…„ 6์›” ์ค‘์ˆœ์— ๋ณ„๋„ ๊ฐ•์˜๋กœ ์ถœ์‹œํ•ฉ๋‹ˆ๋‹ค. Part 2 ๊ฐ•์˜์—์„œ๋Š” Sensor, Asset, ๋™์  Task ๋งคํ•‘๊ณผ Task Group, Notification, ๋‹ค์–‘ํ•œ ์ถ”๊ฐ€ Operator์™€ Hook๋“ฑ์„ ๋‹ค๋ฃฐ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

๋ณธ ๊ฐ•์˜๋Š” ์ตœ์‹ (๊ฐ•์˜๋ฅผ ์ถœ์‹œํ•˜๋Š” ์‹œ์  ๊ธฐ์ค€) ๋ฒ„์ „์ธ Airflow 3.1 ๋ฒ„์ „์œผ๋กœ ์ด๋ก ๊ณผ ์‹ค์Šต์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.


Airflow์˜ ํ•ต์‹ฌ ๋™์ž‘ ์›๋ฆฌ๋ถ€ํ„ฐ
๋‹ค์–‘ํ•œ Operator์™€ Hook ํ™œ์šฉ๋ฒ•๊นŒ์ง€


๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์„ '์Šค์Šค๋กœ' ์„ค๊ณ„ํ•˜๊ณ  '์šด์˜๊นŒ์ง€ ๊ฐ€๋Šฅํ•œ ์—”์ง€๋‹ˆ์–ด'๋กœ ์„ฑ์žฅ์‹œ์ผœ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.



์ด ๊ฐ•์˜๊ฐ€ ๋๋‚˜๋ฉด ์—ฌ๋Ÿฌ๋ถ„์€

Airflow์˜ '์™œ?'๋ผ๋Š” ์งˆ๋ฌธ์— ๋ช…ํ™•ํ•œ ๋‹ต์„ ์ฐพ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • Airflow์˜ ํ•ต์‹ฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜๋ถ€ํ„ฐ DAG, Operator, Hook, Scheduling, Timezone, ๋ฉฑ๋“ฑ์„ฑ, Template๊นŒ์ง€ ์ƒ์„ธํ•œ ์ด๋ก ๊ณผ ์‹ค์Šต์„ ํ†ตํ•ด Airflow๊ฐ€ '์™œ ์ด๋ ‡๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€' ๊นŠ์ด ์ดํ•ดํ•˜๋„๋ก ๋•์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์Šค์Šค๋กœ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์„ ์„ค๊ณ„ํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•˜๋Š” ์‹ค์ „ ์—ญ๋Ÿ‰์„ ํ‚ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค๋ฌด์—์„œ ์ธ์ •๋ฐ›๋Š” ๋›ฐ์–ด๋‚œ Airflow ๋ฌธ์ œ ํ•ด๊ฒฐ ๋Šฅ๋ ฅ์„ ๊ฐ–์ถ”๊ฒŒ ๋ฉ๋‹ˆ๋‹ค

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

์ž์‹ ์žˆ๊ฒŒ ์•ˆ์ •์ ์ธ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์„ ์ง์ ‘ ์„ค๊ณ„/๊ตฌ์ถ• ํ•ฉ๋‹ˆ๋‹ค.

  • SQL, API, Object Storage ๋“ฑ ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์„ ์—ฐ๊ฒฐํ•˜๋Š” ์‹ค์ „ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์„ ์ง์ ‘ ๊ตฌ์ถ•ํ•˜๋ฉฐ Airflow ์ž์‹ ๊ฐ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฐ์ดํ„ฐ ์ค‘๋ณต ์ ์žฌ๋‚˜ ์ฒ˜๋ฆฌ ์‹คํŒจ์™€ ๊ฐ™์€ ์˜ˆ์ธก ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํ™ฉ์—์„œ๋„ ์‹œ์Šคํ…œ ์•ˆ์ •์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฉฑ๋“ฑ์„ฑ(Idempotency)์„ ๊ณ ๋ คํ•œ ํŒŒ์ดํ”„๋ผ์ธ ์„ค๊ณ„/๊ตฌ์ถ• ์—ญ๋Ÿ‰์„ ํ‚ค์›๋‹ˆ๋‹ค.

Airflow ์ „๋ฌธ๊ฐ€๋กœ ์„ฑ์žฅํ•ฉ๋‹ˆ๋‹ค.

  • ์‹ค์ œ ์šด์˜ ํ™˜๊ฒฝ์—์„œ ๋ฐ˜๋“œ์‹œ ์•Œ์•„์•ผ ํ•˜๋Š” ์‹ค์ „์ ์ธ ๋‚ด์šฉ๋“ค๋กœ ๊ฐ•์˜๋ฅผ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ Airflow ์‚ฌ์šฉ๋ฒ•์„ ์ตํžˆ๋Š” ๊ฒƒ์„ ๋„˜์–ด, ๊ฐ•์˜ ์ˆ˜๋ฃŒ ํ›„์—๋Š” ํŒ€ ๋‚ด์—์„œ Airflow ๊ด€๋ จ ์งˆ๋ฌธ์— ์ž์‹  ์žˆ๊ฒŒ ๋‹ตํ•˜๊ณ , ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์„ ์„ฑ๊ณต์ ์œผ๋กœ ์„ค๊ณ„ ๋ฐ ์šด์˜ํ•  ์ˆ˜ ์žˆ๋Š” ์‹ค๋ฌด ์ „๋ฌธ๊ฐ€๋กœ ๊ฑฐ๋“ญ๋‚˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.



๐Ÿ“š

์ด๋ก ๊ณผ ์‹ค์Šต์„ ํ†ตํ•ด
Airflow ๋™์ž‘ ์›๋ฆฌ ๋งˆ์Šคํ„ฐํ•˜๊ธฐ


Airflow ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค - ๋ณธ ๊ฐ•์˜์™€ ํ•จ๊ป˜ ๋ผ๋ฉด,

Airflow์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์„ ํ™•์‹คํ•˜๊ฒŒ ์ตํžˆ๊ณ , Operator์™€ Hook, ์Šค์ผ€์ค„๋ง๊ณผ Template๊นŒ์ง€, ์ดˆ๋ณด์ž์™€ ๊ฒฝํ—˜์ž ๋ชจ๋‘์—๊ฒŒ ์ ํ•ฉํ•œ ๋‹จ๊ณ„๋ณ„ ํ•™์Šต์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.


Airflow ๊ธฐ๋ฐ˜ 01 ~ 02

  • Airflow์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ์ธ DAG, Task, Task ๊ฐ„์˜ ์˜์กด์„ฑ ์ •์˜, ๊ทธ๋ฆฌ๊ณ  Task ๊ฐ„ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ธ XCom์— ๋Œ€ํ•ด ์ƒ์„ธํžˆ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.๋˜ํ•œ TaskFlow API ๊ธฐ๋ฐ˜์˜ DAG, Airflow ์ฃผ์š” ์ปดํฌ๋„ŒํŠธ ์—ญํ• , ์ž๋™ retries, Clear ๊ธฐ๋Šฅ์„ ํ†ตํ•œ Task์™€ DAG Run ์žฌ ์ˆ˜ํ–‰, Airflow Context ๋“ฑ์„ ํ•™์Šตํ•˜๋ฉด์„œ Airflow ๋™์ž‘ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๋ช…ํ™•ํžˆ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค


Bash ๋ฐ HTTP Operator ํ™œ์šฉ

Bash Operator๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ , HTTP Operator๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€ API์™€ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‹ค์Šตํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์™ธ๋ถ€ ์‹œ์Šคํ…œ๊ณผ์˜ ํ†ตํ•ฉ ๊ธฐ๋ฐ˜์„ ๋‹ค์ง‘๋‹ˆ๋‹ค.


SQL Operator์™€ Hook์„ ํ™œ์šฉํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™

MySQL ๋ฐ PostgreSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜์—ฌ SQL ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ• ์—ญ๋Ÿ‰์„ ๊ฐ•ํ™”ํ•ฉ๋‹ˆ๋‹ค.


S3 Operator์™€ Hook์„ ํ™œ์šฉํ•œ Object ์Šคํ† ๋ฆฌ์ง€ ์—ฐ๋™ (MinIO)

MinIO๋ฅผ ์ด์šฉํ•œ S3 ํ˜ธํ™˜ ๊ฐ์ฒด ์Šคํ† ๋ฆฌ์ง€์™€ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‹ค์Šตํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€ ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๋ฐ ์ฒ˜๋ฆฌ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ธ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.


Airflow ์Šค์ผ€์ค„๋ง 01 ~ 02

Airflow์—์„œ ๊ฐ€์žฅ ํ—ท๊ฐˆ๋ฆฌ๊ธฐ ์‰ฌ์šด Interval ๊ธฐ๋ฐ˜ Scheduling๊ณผ Timezone ๋™์ž‘ ๋ฐ . ์ฃผ๊ธฐ์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜๋Š” DAG์˜ ๋ฉฑ๋“ฑ์„ฑ ์œ ์ง€ ๋ฐฉ์‹์„ ๋ช…ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŽ์€ ์ด๋ก ๊ณผ ์‹ค์Šต์œผ๋กœ ์ฑ„์› ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ catchup, backfill, ๊ทธ๋ฆฌ๊ณ  ์ตœ์‹ ์˜ Cron ์‹ Timetable ๊ธฐ๋ฐ˜์˜ Point-In-Time ์Šค์ผ€์ฅด๋ง์— ๋Œ€ํ•ด์„œ๋„ ์ž์„ธํžˆ ๋ง์”€๋“œ๋ฆฝ๋‹ˆ๋‹ค


Airflow Templating

Airflow์˜ Jinja ํ…œํ”Œ๋ฆฟ์„ ํ™œ์šฉํ•˜์—ฌ ๋™์ ์ธ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด Operator ๋ฐ DAG๋ฅผ ๋”์šฑ ์œ ์—ฐํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์ด๋Ÿฐ ๋ถ„๋“ค์˜ ๊ณ ๋ฏผ์„
ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์–ด์š”!

๐Ÿ“Œ

์‹ค๋ฌด ์ฃผ๋‹ˆ์–ด ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด

Airflow DAG๊ฐ€ ์™œ ํŠน์ • ์‹œ๊ฐ„์— ์‹คํ–‰๋˜๋Š”์ง€, ํ˜น์€ ์ค‘๋ณต ์‹คํ–‰๋˜๋Š”์ง€ ๋ช…ํ™•ํžˆ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ด ์šด์˜ ์ค‘์— ๊ณค๋ž€์„ ๊ฒช๋Š” ๋ถ„
์‹คํ–‰ ์ค‘์ธ DAG๋ฅผ ๋””๋ฒ„๊น…ํ•˜๋ฉฐ ๋ฌธ์ œ์˜ ๊ทผ๋ณธ ์›์ธ์„ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ์–ด๋ ค์›€์„ ๋А๋ผ๋Š” ๋ถ„

๐Ÿ“Œ

๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ๊ฒฝํ—˜์ด ์ ์€ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž

๋ฐฐ์น˜ ์ž‘์—… ์ž๋™ํ™”๋‚˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด Airflow๋ฅผ ๋„์ž…ํ–ˆ์ง€๋งŒ,
Operator, Hook, Scheduling ๋“ฑ ํ•ต์‹ฌ ๊ฐœ๋…์„ ๊นŠ์ด ์žˆ๊ฒŒ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ด ํ™œ์šฉ์— ํ•œ๊ณ„๋ฅผ ๋А๋ผ๋Š” ๋ถ„

๐Ÿ“Œ

Airflow ์šด์˜ ๊ฒฝํ—˜์ด ์žˆ๋Š” ์ค‘๊ธ‰ ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด

๋ฉฑ๋“ฑ์„ฑ ๋ณด์žฅ, ์žฌ์‹œ๋„ ๋กœ์ง ๊ตฌํ˜„, Timezone ์„ค์ • ์˜ค๋ฅ˜ ๋“ฑ Airflow ์šด์˜ ์ค‘ ๋ฐœ์ƒํ•˜๋Š” ๋‹ค์–‘ํ•œ ์ด์Šˆ๋“ค์„ ํšจ๊ณผ์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ณ ,
๋”์šฑ ์•ˆ์ •์ ์ด๊ณ  ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์„ ์„ค๊ณ„ํ•˜๊ณ  ์‹ถ์€ ๋ถ„

์ˆ˜๊ฐ• ์ „ ์ฐธ๊ณ  ์‚ฌํ•ญ


์‹ค์Šต ํ™˜๊ฒฝ ๐Ÿ’พ

์‹ค์Šต ๊ตฌ์„ฑ ํ™˜๊ฒฝ ์‚ฌ์–‘

  • ์šด์˜ ์ฒด์ œ(OS): ์‹ค์Šต์€ Windows ์šด์˜์—์„œ ์ง„ํ–‰ํ•˜์ง€๋งŒ, Mac์—์„œ๋„ ๋ฌธ์ œ ์—†์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.


  • PC ์‚ฌ์–‘: Docker ๋ฐ Docker Desktop, VSCode๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด ์ธํ„ฐ๋„ท ์ ‘์†์ด ํ—ˆ์šฉ๋œ PC๋กœ์„œ 6GB ์ด์ƒ์˜ RAM ํ•„์š”

  • Airflow๋Š” Astro CLI๋ฅผ ์ด์šฉํ•˜์—ฌ Docker Container๋กœ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.  Airflow ๋ฒ„์ „์€ 3.1 ์ž…๋‹ˆ๋‹ค. 

ํ•™์Šต ์ž๋ฃŒ

  • ๊ฐ•์˜ ์ž๋ฃŒ๋Š” ๊ฐ•์˜ ๋‚ด์—์„œ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์œผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์‹ค์Šต ์ž๋ฃŒ๋Š” https://github.com/chulminkw/airflow_part_01 ์—์„œ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์œผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์Šต ์ฝ”๋“œ๋ฅผ ๋ณด์‹œ๋ฉด ๊ฐ•์˜ ์ˆ˜๊ฐ•์— ํ•„์š”ํ•œ ํŒŒ์ด์ฌ๊ณผ SQL ์ˆ˜์ค€์„ ๋ฏธ๋ฆฌ ๊ฐ€๋Š ํ•ด ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

  • Airflow๋ฅผ ์“ฐ๊ณ  ์žˆ์ง€๋งŒ ์™œ ์ด๋ ‡๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ๋ชจ๋ฅด๋Š” ๋ชจ๋“  ์ด๋“ค

  • ์ฃผ๋‹ˆ์–ด ~ ์ค‘๊ธ‰ ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด

  • ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด๋กœ ์ „ํ™˜ํ•˜๊ณ  ์‹ถ์€ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž(๋ฐฐ์น˜/๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋‹ด๋‹น์ž)

  • (๋ณธ ๊ฐ•์˜์—์„œ AI๋ฅผ ๋‹ค๋ฃจ์ง€๋Š” ์•Š์ง€๋งŒ) MLOps๋ฅผ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์„ฑํ•ด์•ผ ํ•˜๋Š” AI ์—”์ง€๋‹ˆ์–ด

  • Airflow๋ฅผ โ€œ์ œ๋Œ€๋กœโ€ ๋ฐฐ์šฐ๊ณ  ์‹ถ์€ ๋ชจ๋“  ์‹ค๋ฌด์ž

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • Python ๋ฐ SQL ๊ธฐ๋ณธ ํ™œ์šฉ ๋Šฅ๋ ฅ

์•ˆ๋…•ํ•˜์„ธ์š”
๊ถŒ ์ฒ ๋ฏผ์ž…๋‹ˆ๋‹ค.

27,951

๋ช…

์ˆ˜๊ฐ•์ƒ

1,505

๊ฐœ

์ˆ˜๊ฐ•ํ‰

4,069

๊ฐœ

๋‹ต๋ณ€

4.9

์ 

๊ฐ•์˜ ํ‰์ 

15

๊ฐœ

๊ฐ•์˜

(์ „) ์—”์ฝ”์•„ ์ปจ์„คํŒ… | (์ „) ํ•œ๊ตญ ์˜ค๋ผํด | ํŒŒ์ด์ฌ ๋จธ์‹ ๋Ÿฌ๋‹ ์™„๋ฒฝ ๊ฐ€์ด๋“œ ์ €์ž

AI ํ”„๋ฆฌ๋žœ์„œ ์ปจ์„คํ„ดํŠธ

 

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

์ „์ฒด

124๊ฐœ โˆ™ (20์‹œ๊ฐ„ 54๋ถ„)

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

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

์ˆ˜๊ฐ•ํ‰

์ „์ฒด

2๊ฐœ

5.0

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

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

    ์ˆ˜๊ฐ•ํ‰ 8

    โˆ™

    ํ‰๊ท  ํ‰์  3.5

    ์ˆ˜์ •๋จ

    5

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

    ์ •๋ง ์ข‹์€ ๊ฐ•์˜ ์ž…๋‹ˆ๋‹ค. alrflow ๋ฅผ ์ฒ˜์Œ ๋ฐฐ์šฐ์‹œ๋Š” ๋ถ„ ๊ผญ ๋ณด์„ธ์š” !!!

    • ๊ถŒ ์ฒ ๋ฏผ
      ์ง€์‹๊ณต์œ ์ž

      ์˜ค, ์ฒซ๋ฒˆ์งธ ์ˆ˜๊ฐ•ํ‰์—, ์ข‹์€ ํ‰๊ฐ€๊นŒ์ง€ ๋„˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค ^^

  • ๋‚ด์ผ์€ ํ•œ๊ฑธ์Œ ๋” ๋‚˜์•„๊ฐˆ๊ฑฐ์•ผ๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    ๋‚ด์ผ์€ ํ•œ๊ฑธ์Œ ๋” ๋‚˜์•„๊ฐˆ๊ฑฐ์•ผ

    ์ˆ˜๊ฐ•ํ‰ 31

    โˆ™

    ํ‰๊ท  ํ‰์  4.8

    5

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

    • ๊ถŒ ์ฒ ๋ฏผ
      ์ง€์‹๊ณต์œ ์ž

      ์ข‹์€ ์ˆ˜๊ฐ•ํ‰ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ^^

๊ถŒ ์ฒ ๋ฏผ๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜

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

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

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

โ‚ฉ66,000