Sign In

What is data engineering?

μƒνƒœ
Data
λ‹΄λ‹Ήμž
  • Jaenoo
μž‘μ„±μž
Jaenoo
데이터 μ—”μ§€λ‹ˆμ–΄λ§ μ΄λž€?
πŸ’¬
데이터 μ—”μ§€λ‹ˆμ–΄λ§ μ΄λž€ 무엇인가, "μ›μ‹œ 데이터"λ₯Ό μ‹ λ’° κ°€λŠ₯ν•œ μ œν’ˆμœΌλ‘œ λ§Œλ“œλŠ” 일 이라고 μ„€λͺ…ν•  수 μžˆλ‹€.
좜처 https://k21academy.com/microsoft-azure/dp-203/data-engineering/
데이터λ₯Ό ν™œμš©ν•΄ μ˜μ‚¬κ²°μ •μ„ 내리렀면, λ¨Όμ € 데이터가 λͺ¨μœΌκΈ° 쉽고(Accessible), 믿을 수 있고(Reliable), μ•ˆμ „ν•˜λ©°(Secure), ν•„μš”ν•œ ν˜•νƒœλ‘œ μ€€λΉ„λ˜μ–΄(Usable) μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.
데이터 μ—”μ§€λ‹ˆμ–΄λ§ 은 λ°”λ‘œ 이 κΈ°λ°˜μ„ λ§Œλ“œλŠ” λΆ„μ•Όλ‘œ, λŒ€κ·œλͺ¨ 데이터λ₯Ό μˆ˜μ§‘, μ €μž₯, λ³€ν™˜, μ œκ³΅ν•˜λŠ” μ‹œμŠ€ν…œ(infra/pipeline/workflow)을 μ„€κ³„ν•˜κ³  ꡬ좕, μš΄μ˜ν•©λ‹ˆλ‹€.
데이터가 λ§ˆμΌ€νŒ… μ§€ν‘œ, μ†Œμ…œλ‘œκ·Έ, μ œν’ˆ μ‚¬μš© 이벀트, 직원 μ„±κ³Ό 데이터, IoT μ„Όμ„œ μ‹ ν˜Έμ²˜λŸΌ λ‹€μ–‘ν•΄μ§ˆμˆ˜λ‘ " 데이터λ₯Ό 잘 λͺ¨μ•„λ‘λŠ” 것"λ§ŒμœΌλ‘œλŠ” λΆ€μ‘±ν•©λ‹ˆλ‹€. 데이터 μ—”μ§€λ‹ˆμ–΄λŠ” λΆ„μ‚°λœ μ›μ²œμ—μ„œ λ“€μ–΄μ˜€λŠ” 데이터λ₯Ό μΌκ΄„λœ κΈ°μ€€μœΌλ‘œ μ •λ¦¬ν•˜κ³ , λ‹€μš΄μŠ€νŠΈλ¦Ό(뢄석/BI/ML/Service)에 μ•ˆμ •μ μœΌλ‘œ 곡급해 기업이 "μ‹€μ‹œκ°„μ— κ°€κΉκ²Œ" μΈμ‚¬μ΄νŠΈλ₯Ό 얻도둝 λ•μŠ΅λ‹ˆλ‹€.
β€’
데이터 μˆ˜μ§‘ : DB API, 이벀트 슀트림, Saas, Log, File, IoT λ“± λ‹€μ–‘ν•œ μ†ŒμŠ€ μ—°κ²°
β€’
μ €μž₯ : 레이크/μ›¨μ–΄ν•˜μš°μŠ€/λ ˆμ΄ν¬ν•˜μš°μŠ€ 및 메타데이터 μΉ΄νƒˆλ‘œκ·Έ 운영
β€’
λ³€ν™˜ : μ •μ œ/ν‘œμ€€ν™”/쀑볡 제거/ν’ˆμ§ˆ 검증/λͺ¨λΈλ§(μŠ€ν‚€λ§ˆ 섀계)
β€’
제곡 : BI용 ν…Œμ΄λΈ”, MLν•™μŠ΅μš© ν”Όμ²˜, 리포트, μ‹€μ‹œκ°„ λŒ€μ‹œλ³΄λ“œ, API ν˜•νƒœ 제곡
β€’
운영 : 배치, 슀트리밍 νŒŒμ΄ν”„λΌμΈ λͺ¨λ‹ˆν„°λ§, μž₯μ•  λŒ€μ‘, λΉ„μš© μ΅œμ ν™”, λ³΄μ•ˆ/κΆŒν•œ 관리 λ“±

λŒ€ν‘œ μ‚¬μš© 사둀 3κ°€μ§€

1.
데이터 μˆ˜μ§‘, μŠ€ν† λ¦¬μ§€ κ΄€λ¦¬μ˜ ν‘œμ€€ν™”
μ„±μž₯ν•˜λŠ” κΈ°μ—…μ—μ„œλŠ” 데이터가 μ—¬λŸ¬ νŒ€/도ꡬ/지역에 ν©μ–΄μ§‘λ‹ˆλ‹€. 데이터 μ—”μ§€λ‹ˆμ–΄λŠ” ν™•μž₯κ°€λŠ₯ν•œ μ €μž₯ ꡬ쑰와 ν‘œμ€€ν™”λœ 적재 κ·œμΉ™μ„ λ§Œλ“€μ–΄ "데이터가 μŒ“μΌμˆ˜λ‘ 더 λ³΅μž‘ν•΄μ§€λŠ” 문제"λ₯Ό μ€„μž…λ‹ˆλ‹€.
2.
μ‹€μ‹œκ°„ λ˜λŠ” μ€€μ‹€μ‹œκ°„ 뢄석 기반 ꡬ좕
User event, 결제, νŠΈλž˜ν”½, 운영 이벀트처럼 "μ§€κΈˆ μƒνƒœ"κ°€ μ€‘μš”ν•œ 도메인은 데이터가 λ“€μ–΄μ˜€λŠ” μ¦‰μ‹œ 뢄석 κ°€λŠ₯ν•œ ꡬ쑰가 ν•„μš”ν•©λ‹ˆλ‹€. 쒋은 νŒŒμ΄ν”„λΌμΈμ€ μˆ˜μ§‘β†’μ •μ œβ†’μ μž¬λ₯Ό μžλ™ν™”ν•΄, λΆ„μ„κ°€λ‚˜ μ˜μ‚¬κ²°μ •μžκ°€ ν•„μš”ν•œ μ§€ν‘œλ₯Ό λΉ λ₯΄κ²Œ μ°Ύκ³  ν•΄μ„ν•˜λ„λ‘ λ•μŠ΅λ‹ˆλ‹€.
3.
MLκ³Ό μƒμ„±ν˜• AIλ₯Ό μœ„ν•œ 데이터 곡급
μΆ”μ²œ/검색/μ΄νƒˆ 예츑과 같은 전톡적 MLλΆ€ν„°, μƒμ„±ν˜• AIκΉŒμ§€ κ²°κ΅­ μ„±λŠ₯을 μ’Œμš°ν•˜λŠ” 건 ν•™μŠ΅, 좔둠에 μ“°μ΄λŠ” 데이터 ν’ˆμ§ˆμž…λ‹ˆλ‹€. 데이터 μ—”μ§€λ‹ˆμ–΄λŠ” λͺ¨λΈμ΄ μ†ŒλΉ„ν•  수 μžˆλŠ” ν˜•νƒœλ‘œ 데이터λ₯Ό μ€€λΉ„ν•˜κ³ , μž¬ν˜„ κ°€λŠ₯ν•œ ν”Όμ²˜/데이터셋을 μ•ˆμ •μ μœΌλ‘œ μ œκ³΅ν•΄μ•Όν•©λ‹ˆλ‹€.

"핡심 데이터 μ„ΈνŠΈ(Core Datasets)" 관점

β€’
'λ°μ΄ν„°λŠ” μ œν’ˆμ΄λ‹€'
β—¦
ν˜„μ—…μ—μ„œλŠ” μ’…μ’… "ν•„μš”ν•œ 데이터가 μ–΄λ”¨λŠ”μ§€ λͺ¨λ₯΄κ² κ³ , μžˆμ–΄λ„ 믿을 수 μ—†λ‹€"κ°€ κ°€μž₯ 큰 병λͺ© μž…λ‹ˆλ‹€. 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ μ—”μ§€λ‹ˆμ–΄λ§μ€ μ›μ²œλ°μ΄ν„°λ₯Ό κ·ΈλŒ€λ‘œ μŒ“μ•„λ‘λŠ” λŒ€μ‹ , λͺ©μ μ— 맞좘 핡심 데이터셋을 λ§Œλ“€μ–΄ μ œκ³΅ν•©λ‹ˆλ‹€.
β—¦
쒋은 핡심 데이터셋은 보톡 이 3κ°€μ§€λ₯Ό λ§Œμ‘±ν•©λ‹ˆλ‹€
β–ͺ
μ‚¬μš© νŽΈμ˜μ„±
뢄석가/기획자/리더가 λ³΅μž‘ν•œ 쑰인과 도메인 지식을 κ³Όλ„ν•˜κ²Œ μš”κ΅¬λ°›μ§€ μ•Šλ„λ‘, ν…Œμ΄λΈ”κ³Ό μ§€ν‘œ μ •μ˜κ°€ λͺ…ν™•ν•΄μ•Ό ν•©λ‹ˆλ‹€.
β–ͺ
λ§₯락 제곡
ν˜„μž¬ μŠ€λƒ…μƒ· 뿐 μ•„λ‹ˆλΌ 기간별 λ³€ν™”(μΆ”μ„Έ), 비ꡐ 기쀀을 λ‹΄μ•„ μ˜μ‚¬κ²°μ •μ— λ°”λ‘œ 쓰일 수 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.
β–ͺ
포괄성
ν•„μš”ν•œ 경우 μ—¬λŸ¬ μ†ŒμŠ€μ˜ 데이터λ₯Ό κ²°ν•©ν•  수 μžˆλ„λ‘ ν‚€ 섀계와 톡합 기쀀이 μ •λ¦¬λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.

데이터 νŒŒμ΄ν”„λΌμΈμ€ μ–΄λ–»κ²Œ μž‘λ™ν•˜λŠ”μ§€?

1.
μˆ˜μ§‘
μ„œλ‘œ λ‹€λ₯Έ μ €μž₯ ν˜•μ‹(μ •ν˜•/λ°˜μ •ν˜•/λΉ„μ •ν˜•)κ³Ό μΈν„°νŽ˜μ΄μŠ€(DB, API, 슀트림 λ“±)λ₯Ό κ°€μ§„ 데이터λ₯Ό ν•˜λ‚˜μ˜ 데이터 μƒνƒœκ³„ 둜 κ°€μ Έμ˜΅λ‹ˆλ‹€. 이 λ‹¨κ³„μ˜ 핡심은 μ—°κ²°μ„±, μŠ€ν‚€λ§ˆ λ³€ν™” λŒ€μ‘, 쀑볡/μ§€μ—° 처리 같은 "ν˜„μ‹€μ μΈ 문제"λ₯Ό κ²¬λ””λŠ” μ„€κ³„μž…λ‹ˆλ‹€.
2.
λ³€ν™˜
μˆ˜μ§‘λœ 데이터λ₯Ό κ·ΈλŒ€λ‘œ μ“°κΈ° μ–΄λ €μš΄ κ²½μš°κ°€ μžˆμŠ΅λ‹ˆλ‹€. κ·Έλž˜μ„œ 였λ₯˜/κ²°μΈ‘/쀑볡을 μ²˜λ¦¬ν•˜κ³ , ν‘œμ€€ λ‹¨μœ„ μ½”λ“œ 체계λ₯Ό λ§žμΆ”λ©°, λͺ¨λΈλ§ν•˜μ—¬ μ†ŒλΉ„κ°€λŠ₯ν•œ ν˜•νƒœλ‘œ μ •μ œν•©λ‹ˆλ‹€.
이 λ‹¨κ³„λŠ” "데이터 ν’ˆμ§ˆ"이 μ‹€μ œλ‘œ λ§Œλ“€μ–΄μ§€λŠ” ꡬ간이기도 ν•©λ‹ˆλ‹€.
3.
제곡
μ •μ œλœ λ°μ΄ν„°λŠ” λͺ©μ μ— 따라 λ‹€μ–‘ν•œ ν˜•νƒœλ‘œ μ œκ³΅λ©λ‹ˆλ‹€.
β€’
BI/λ¦¬ν¬νŒ…μš© ν…Œμ΄λΈ” 및 λŒ€μ‹œλ³΄λ“œ
β€’
ML ν•™μŠ΅μš© 데이터셋/ν”Όμ²˜ μŠ€ν† μ–΄
β€’
운영 μ‹œμŠ€ν…œμ„ μœ„ν•œ API/μ„œλΉ™ ν…Œμ΄λΈ”
β€’
μ‹€μ‹œκ°„ λͺ¨λ‹ˆν„°λ§ μ§€ν‘œ
λ˜ν•œ 이 전체λ₯Ό λ―Ώκ³  μ“Έ 수 있으렀면 데이터 κ΄€μΈ‘μ„±(Data Observability)이 ν•„μˆ˜μž…λ‹ˆλ‹€. νŒŒμ΄ν”„λΌμΈ μ§€μ—°, κ²°μΈ‘λ₯ , μŠ€ν‚€λ§ˆ λ“œλ¦¬ν”„νŠΈ, ν’ˆμ§ˆ κ·œμΉ™ μœ„λ°˜ 등을 쑰기에 감지해 μž₯μ• λ₯Ό μ΅œμ†Œν™”ν•©λ‹ˆλ‹€.

데이터 μ—”μ§€λ‹ˆμ–΄λ§ vs 데이터 뢄석 vs 데이터 κ³Όν•™

μ„Έ 역할은 ν˜‘μ—…ν•˜μ§€λ§Œ 초점이 λ‹€λ¦…λ‹ˆλ‹€.
β€’
데이터 μ—”μ§€λ‹ˆμ–΄(Data Engineer): 데이터가 ν˜λŸ¬κ°€λŠ” κΈΈ(νŒŒμ΄ν”„λΌμΈ/μŠ€ν† λ¦¬μ§€/ν’ˆμ§ˆ/κΆŒν•œ)을 λ§Œλ“ λ‹€
β€’
데이터 뢄석가(Data Analyst/BI): μ€€λΉ„λœ 데이터λ₯Ό 톡해 ν˜„ν™©κ³Ό 원인을 μ„€λͺ…ν•˜κ³  μ˜μ‚¬κ²°μ •μ„ λ•λŠ”λ‹€
β€’
데이터 κ³Όν•™μž(Data Scientist): 톡계·ML κΈ°λ²•μœΌλ‘œ 예츑/μ΅œμ ν™” λͺ¨λΈμ„ λ§Œλ“€κ³  μ‹€ν—˜ν•œλ‹€
즉, 데이터 μ—”μ§€λ‹ˆμ–΄λ§μ΄ νƒ„νƒ„ν• μˆ˜λ‘ 뢄석과 과학은 더 λΉ λ₯΄κ³  μ •ν™•ν•΄μ§‘λ‹ˆλ‹€.

데이터 μ—”μ§€λ‹ˆμ–΄κ°€ λ‹€λ£¨λŠ” 기술 μŠ€νƒ: νŒŒμ΄ν”„λΌμΈΒ·μŠ€ν† λ¦¬μ§€Β·μ–Έμ–΄

ETL vs ELT
β€’
ETL(Extract β†’ Transform β†’ Load): λ³€ν™˜ ν›„ 적재. ν‘œμ€€ν™”κ°€ λ¨Όμ € ν•„μš”ν•œ 톡합 μ‹œλ‚˜λ¦¬μ˜€μ— 강점
β€’
ELT(Extract β†’ Load β†’ Transform): 일단 λͺ¨μ•„두고 ν•„μš”μ— 따라 λ³€ν™˜. μœ μ—°μ„±κ³Ό ν™•μž₯성에 강점(ν΄λΌμš°λ“œ DWH/λ ˆμ΄ν¬ν•˜μš°μŠ€μ™€ ꢁ합)
μŠ€ν† λ¦¬μ§€ 선택지
β€’
ν΄λΌμš°λ“œ μŠ€ν† λ¦¬μ§€/데이터 레이크: λŒ€μš©λŸ‰ μ›λ³ΈΒ·λΉ„μ •ν˜• 데이터에 유리
β€’
데이터 μ›¨μ–΄ν•˜μš°μŠ€(DWH): 뢄석 μ„±λŠ₯κ³Ό 관리(μŠ€ν‚€λ§ˆ/κΆŒν•œ/κ±°λ²„λ„ŒμŠ€)에 강점
β€’
λ ˆμ΄ν¬ν•˜μš°μŠ€: 레이크의 μœ μ—°μ„±κ³Ό μ›¨μ–΄ν•˜μš°μŠ€μ˜ 관리/μ„±λŠ₯을 κ²°ν•©ν•˜λ €λŠ” μ ‘κ·Ό
μ£Όμš” μ–Έμ–΄
β€’
SQL: λͺ¨λΈλ§, ν’ˆμ§ˆ 검증, λΆ„μ„μš© 데이터 제곡의 쀑심 μ–Έμ–΄
β€’
Python: μ›Œν¬ν”Œλ‘œ μžλ™ν™”, 데이터 처리, μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜κ³Ό 연동
β€’
Scala/Java: λŒ€κ·œλͺ¨ λΆ„μ‚° 처리(Spark λ“±)λ‚˜ λ°±μ—”λ“œ μ‹œμŠ€ν…œμ—μ„œ 자주 μ‚¬μš©
μ°Έκ³  μ‚¬μ΄νŠΈ