데이터 엔지니어링이란: 수명주기와 데이터 엔지니어의 역할

데이터 엔지니어링 — 흩어진 원천 데이터가 수명주기 파이프라인을 지나 가치로 환원된다 원천 데이터 앱 DB · API IoT · 로그 데이터 엔지니어링 수명주기 ① 생성 Generation ② 수집 Ingestion ③ 저장 Storage 기반 ④ 변환 Transform ⑤ 서빙 Serving 가치로 환원 분석 · ML · 역 ETL 흩어진 원천이 정돈된 데이터로
데이터 엔지니어링의 한 장 요약 — 흩어진 원천 데이터가 생성→수집→저장→변환→서빙의 수명주기를 지나며 정돈되고, 마침내 분석·ML·역 ETL로 쓰이는 가치로 환원된다. 가운데 저장(③)이 수집·변환·서빙 모두와 맞닿은 기반이라는 점에 주목.

들어가며

“데이터가 새로운 석유”라는 말은 익숙하지만, 정작 그 원유를 캐서 정제하고 송유관으로 흘려보내는 일을 누가 하는지는 잘 이야기되지 않습니다. 대시보드의 숫자, 추천 모델의 예측, A/B 테스트의 결과는 모두 누군가 미리 데이터를 모으고, 쌓고, 다듬어 적시에 흘려보냈기 때문에 가능합니다. 그 토대를 책임지는 분야가 바로 데이터 엔지니어링(Data Engineering)입니다.

이 글은 Data-Engineering-Essential 시리즈의 1단계로, 분야 전체의 지도를 그리는 것을 목표로 합니다. 데이터 엔지니어링이 정확히 무엇이고, 데이터 엔지니어가 분석가·사이언티스트와 어떻게 다른지, 그리고 앞으로 만날 모든 기술을 정리하는 틀이 될 데이터 엔지니어링 수명주기(Data Engineering Lifecycle)를 익힙니다.

📌 이 글에서 다루는 내용

🔍 핵심 주제

  • 데이터 엔지니어링의 정의: 무엇을 책임지는 분야이며, 왜 별도의 직무로 자리 잡았는가
  • 역할 구분: 데이터 엔지니어 vs 데이터 분석가 vs 데이터 사이언티스트
  • 데이터 엔지니어링 수명주기: 생성→수집→저장→변환→서빙이라는 사고의 틀
  • 저류(Undercurrents): 수명주기 전체를 떠받치는 6가지 횡단 관심사

🎯 왜 중요한가

개별 도구(Kafka, Spark, Airflow…)는 빠르게 바뀌지만, 수명주기라는 사고의 틀은 오래 갑니다. 새 기술을 만날 때마다 “이건 수명주기의 어느 칸을 푸는가?”라고 물을 수 있으면, 도구의 홍수 속에서도 길을 잃지 않습니다.

데이터 엔지니어링이란 무엇인가

데이터 엔지니어링을 한 문장으로 정의하면 다음과 같습니다.

데이터 엔지니어링은 원천 데이터를 받아 분석·머신러닝 등 다운스트림(downstream)에서 곧바로 쓸 수 있는 고품질·일관된 정보로 바꾸는 시스템과 프로세스를 설계·구축·운영하는 일이다.

여기서 핵심은 “시스템과 프로세스”입니다. 데이터 엔지니어는 일회성으로 데이터를 한 번 옮기는 사람이 아니라, 매일·매시간 자동으로 데이터가 흐르도록 만드는 파이프라인을 만드는 사람입니다. 분석가가 신뢰할 수 있는 테이블을 조회하고, 사이언티스트가 깨끗한 학습 데이터를 받고, 서비스가 실시간 집계를 사용할 수 있는 것은 그 아래에서 파이프라인이 묵묵히 돌고 있기 때문입니다.

이 분야가 독립된 직무로 부상한 이유는 데이터의 규모(Volume)·속도(Velocity)·다양성(Variety)이 폭발하면서, “분석”과 “데이터를 분석 가능한 상태로 만드는 일”이 더 이상 한 사람의 일로 묶이기 어려워졌기 때문입니다. 테라바이트 단위의 데이터를 분산 시스템으로 처리하고, 수십 개의 원천을 안정적으로 통합하며, 장애에도 데이터가 유실되지 않도록 보장하는 것은 그 자체로 본격적인 엔지니어링 문제입니다.

데이터 엔지니어 vs 분석가 vs 사이언티스트

데이터 직무는 종종 혼동되지만, 가치 사슬에서 서로 다른 지점을 맡습니다. 데이터 엔지니어는 상류(upstream)에서 토대를 닦고, 분석가와 사이언티스트는 그 토대 위에서 가치를 추출합니다.

구분 주로 답하는 질문 핵심 산출물 대표 도구
데이터 엔지니어 데이터를 어떻게 안정적으로 모으고·쌓고·다듬어 공급할까? 파이프라인, 데이터 모델, 신뢰할 수 있는 테이블 SQL, Spark, Kafka, Airflow, dbt, 클라우드
데이터 분석가 무슨 일이 일어났고 왜 일어났는가? 대시보드, 리포트, 인사이트 SQL, BI 도구(Looker, Tableau), 스프레드시트
데이터 사이언티스트 앞으로 무슨 일이 일어날까, 무엇을 해야 할까? 예측 모델, 실험 결과 Python, 노트북, ML 프레임워크, 통계

이 경계는 조직마다 다르고 자주 겹칩니다. 작은 팀에서는 한 사람이 세 역할을 모두 하기도 하고, 큰 조직에서는 데이터 플랫폼 엔지니어, 애널리틱스 엔지니어(Analytics Engineer), ML 엔지니어처럼 더 세분화됩니다. 다만 방향성은 일정합니다 — 데이터 엔지니어는 데이터를 쓸 수 있게 만드는 쪽, 나머지는 만들어진 데이터를 쓰는 쪽입니다.

데이터 성숙도(Data Maturity)에 따라 달라지는 일

같은 “데이터 엔지니어”라도 조직의 데이터 성숙도에 따라 하는 일이 크게 달라집니다. 성숙도는 보통 세 단계로 나뉩니다.

  1. 시작 단계 (Starting with data) — 데이터 인프라가 거의 없는 조직. 이때 데이터 엔지니어는 폭넓은 제너럴리스트로서 첫 파이프라인과 기본 저장소를 깔고, “데이터로 무엇을 할 수 있는지”를 증명합니다. 화려한 실시간 스트리밍보다 단순하고 동작하는 배치 파이프라인이 훨씬 가치 있습니다.
  2. 확장 단계 (Scaling with data) — 데이터 활용이 늘며 파이프라인이 많아지고 복잡해지는 조직. 이제 확장성·표준화·자동화가 중요해지고, 데이터 엔지니어는 재사용 가능한 플랫폼과 견고한 오케스트레이션을 구축합니다.
  3. 선도 단계 (Leading with data) — 데이터가 의사결정과 제품의 핵심인 조직. 셀프서비스 분석, 자동화된 데이터 품질, 거버넌스가 자리 잡고, 데이터 엔지니어는 플랫폼을 다른 팀이 스스로 쓰도록 만드는 데 집중합니다.
데이터 성숙도 3단계 — 시작 · 확장 · 선도 조직의 데이터 성숙도 → ① 시작 단계 제너럴리스트 첫 파이프라인 · 기본 저장소 "단순하지만 동작하는 배치" ② 확장 단계 플랫폼 구축 확장성 · 표준화 · 자동화 재사용 플랫폼 · 견고한 오케스트레이션 ③ 선도 단계 셀프서비스 셀프서비스 분석 · 자동 데이터 품질 · 거버넌스 다른 팀이 스스로 쓰도록 플랫폼화 일의 무게중심: "깔기" → "떠받치기" → "남에게 넘기기"
데이터 성숙도가 오를수록 데이터 엔지니어의 일은 "첫 파이프라인을 깔기"에서 "재사용 플랫폼으로 떠받치기", 다시 "다른 팀이 스스로 쓰게 넘기기"로 옮겨간다. 단계에 맞는 적정 기술을 고르는 것이 핵심.

💡 흔한 실수는 성숙도 1단계 조직에서 3단계의 도구(복잡한 스트리밍, 화려한 카탈로그)를 도입하는 것입니다. 조직의 성숙도에 맞는 적정 기술을 고르는 것이 데이터 엔지니어의 중요한 판단력입니다.

데이터 엔지니어링 수명주기

데이터 엔지니어링의 모든 작업은 결국 다섯 단계의 흐름으로 정리됩니다. Joe Reis와 Matt Housley가 Fundamentals of Data Engineering에서 제시한 이 데이터 엔지니어링 수명주기는 이 시리즈 전체를 관통하는 사고의 틀입니다. 앞으로 배울 모든 기술은 이 다섯 칸 중 어딘가에 들어갑니다.

flowchart LR
    SRC[("원천 시스템<br/>Source Systems<br/>앱 DB·API·IoT·로그")]

    subgraph LIFECYCLE["데이터 엔지니어링 수명주기"]
        direction LR
        GEN["① 생성<br/>Generation"] --> ING["② 수집<br/>Ingestion"]
        ING --> STO["③ 저장<br/>Storage"]
        STO --> TRA["④ 변환<br/>Transformation"]
        TRA --> SER["⑤ 서빙<br/>Serving"]
        STO -.-> ING
        STO -.-> TRA
        STO -.-> SER
    end

    SRC --> GEN
    SER --> USE[["분석 · ML · 역(reverse) ETL<br/>다운스트림 활용"]]

수명주기에서 저장(Storage)이 가운데에 놓여 수집·변환·서빙 모두와 맞닿아 있다는 점에 주목하세요. 저장은 단순한 한 단계가 아니라 수명주기 전반을 떠받치는 기반입니다.

① 생성 (Generation)

데이터가 태어나는 곳, 즉 원천 시스템입니다. 애플리케이션 데이터베이스, 외부 API, 사용자 행동 이벤트, IoT 센서, 서버 로그 등이 여기에 속합니다. 데이터 엔지니어가 원천 시스템을 직접 소유하지 않는 경우가 많지만, 스키마가 언제 바뀌는지, 데이터가 어떻게 생성되는지를 이해하는 것은 안정적인 파이프라인의 전제 조건입니다. 원천의 변경은 곧바로 하류 전체를 무너뜨릴 수 있기 때문입니다.

② 수집 (Ingestion)

원천에서 데이터를 가져오는 단계입니다. 데이터 엔지니어링에서 가장 큰 병목이 자주 발생하는 지점이기도 합니다. 핵심 결정은 두 가지입니다.

  • 배치(Batch) vs 스트리밍(Streaming): 하루에 한 번 모아서 가져올 것인가, 발생하는 즉시 흘려보낼 것인가?
  • 풀(Pull) vs 푸시(Push): 파이프라인이 원천을 주기적으로 조회할 것인가, 원천이 이벤트를 밀어 넣을 것인가?

이 단계의 구체적인 기술(CDC, Kafka, 커넥터 등)은 3단계: 데이터 수집에서 다룹니다.

③ 저장 (Storage)

가져온 데이터를 어디에 어떤 형태로 쌓을 것인가. 데이터 웨어하우스(분석에 최적화된 정형 저장소), 데이터 레이크(원본을 그대로 보존하는 오브젝트 스토리지), 그리고 둘을 통합한 레이크하우스가 대표적입니다. 저장 계층의 선택은 비용·쿼리 성능·확장성을 모두 좌우하므로, 수명주기에서 가장 신중해야 할 결정 중 하나입니다.

④ 변환 (Transformation)

원본(raw) 데이터를 쓸모 있는 형태로 다듬는 단계입니다. 타입 정리, 결측치 처리, 조인과 집계, 비즈니스 로직 적용, 분석용 데이터 모델(예: 스타 스키마) 구성이 여기서 일어납니다. “데이터를 가치로 바꾸는” 가장 핵심적인 작업이며, ETL과 ELT의 차이도 바로 이 변환을 언제·어디서 수행하느냐에서 갈립니다.

⑤ 서빙 (Serving)

다듬어진 데이터를 실제 사용처로 전달하는 마지막 단계입니다. BI 대시보드를 위한 데이터 마트, 머신러닝 학습/서빙용 피처, 그리고 분석 결과를 다시 운영 시스템(CRM 등)으로 보내는 역 ETL(Reverse ETL)이 대표적인 서빙 형태입니다. 데이터가 비로소 비즈니스 가치로 환원되는 지점입니다.

저류(Undercurrents) — 수명주기를 떠받치는 6가지

수명주기의 다섯 단계가 “데이터가 흘러가는 가로축”이라면, 저류(Undercurrents)는 그 다섯 단계 전체를 아래에서 떠받치는 세로축입니다. 좋은 데이터 엔지니어와 그렇지 않은 사람을 가르는 것은 대개 이 횡단 관심사를 얼마나 챙기느냐입니다.

  • 보안(Security): 최소 권한 원칙, 접근 제어, 민감 데이터 암호화·마스킹. 데이터 엔지니어링에서 가장 먼저 고려해야 할 저류입니다.
  • 데이터 관리(Data Management): 거버넌스, 데이터 카탈로그, 리니지(lineage), 마스터 데이터 관리 — 데이터를 자산으로 다루는 체계.
  • DataOps: 소프트웨어의 DevOps를 데이터에 적용한 것. 자동화·관측가능성·신속한 사고 대응으로 파이프라인의 신뢰성을 높입니다.
  • 데이터 아키텍처(Data Architecture): 비용·확장성·요구사항을 균형 있게 반영해 시스템 전체를 설계하는 일.
  • 오케스트레이션(Orchestration): 수많은 작업의 실행 순서와 의존성을 조율하는 두뇌(예: Airflow).
  • 소프트웨어 엔지니어링(Software Engineering): 버전 관리, 테스트, 코드 리뷰, 좋은 추상화 — 데이터 코드도 결국 소프트웨어라는 사실.
저류(Undercurrents) — 수명주기 다섯 단계 전체를 떠받치는 6가지 횡단 관심사 가로축 — 데이터가 흐르는 수명주기 ① 생성 ② 수집 ③ 저장 ④ 변환 ⑤ 서빙 세로축 — 전체를 떠받치는 저류 보안 (Security) 데이터 관리 (Data Management) DataOps 데이터 아키텍처 (Architecture) 오케스트레이션 (Orchestration) 소프트웨어 엔지니어링 (Software Eng.)
수명주기 다섯 단계가 "데이터가 흐르는 가로축"이라면, 여섯 저류는 그 전체를 아래에서 떠받치는 "세로축"이다 — 각 저류는 한 단계가 아니라 다섯 단계 전체를 가로질러 관통한다. 보안·테스트·모니터링은 단계마다 따로가 아니라 처음부터 함께 묻는 기본값.

핵심은 저류가 선택이 아니라 기본이라는 점입니다. 수명주기 단계를 구현할 때마다 “이 단계의 보안은? 테스트는? 모니터링은?”을 함께 물어야 합니다.

좋은 데이터 엔지니어의 역량

마지막으로, 어떤 역량을 길러야 할까요? 기술 스택은 끊임없이 바뀌므로, 원칙과 도구를 분리해서 보는 것이 중요합니다.

  • 탄탄한 SQL과 데이터 모델링: 도구가 바뀌어도 변하지 않는 핵심. 분석용 데이터를 어떻게 구조화할지 아는 능력.
  • 분산 시스템 감각: 규모가 커지면 모든 것이 달라집니다. 파티셔닝, 셔플, 일관성, 장애 내성에 대한 이해.
  • 소프트웨어 엔지니어링 기본기: 데이터 파이프라인도 코드입니다. 버전 관리·테스트·CI/CD·좋은 설계가 그대로 적용됩니다.
  • 요구사항에서 출발하는 사고: “이 도구가 멋있어서”가 아니라 “지연·규모·정확성 요구가 이러하므로”라는 판단. 적정 기술을 고르는 안목.
  • 소통과 비즈니스 이해: 데이터 엔지니어는 원천(개발팀)과 활용처(분석·사이언스) 사이의 다리입니다. 양쪽의 요구를 번역하는 능력이 기술만큼 중요합니다.

정리

데이터 엔지니어링은 “데이터를 옮기는 잡일”이 아니라, 신뢰할 수 있는 데이터 흐름을 설계하고 운영하는 본격적인 엔지니어링입니다. 이 글에서 그린 지도를 요약하면 다음과 같습니다.

  • 데이터 엔지니어는 데이터를 쓸 수 있게 만드는 사람이고, 분석가·사이언티스트는 그것을 쓰는 사람입니다.
  • 같은 직무라도 조직의 데이터 성숙도에 따라 적정 기술과 우선순위가 달라집니다.
  • 모든 작업은 생성→수집→저장→변환→서빙이라는 수명주기로 정리되며, 앞으로 배울 모든 기술은 이 다섯 칸 중 하나에 들어갑니다.
  • 보안·데이터 관리·DataOps·아키텍처·오케스트레이션·소프트웨어 엔지니어링이라는 저류가 그 전체를 떠받칩니다.

이 수명주기와 저류는 이 시리즈를 읽는 내내 다시 꺼내 쓸 기준 좌표입니다. 다음 글부터는 이 좌표 위에서 각 칸을 하나씩 깊이 파고듭니다.

다음 학습 (Next Learning)