데이터 엔지니어

Data Engineer

역할

여기저기 흩어진 기록을 한곳으로 모아 분석에 쓸 수 있는 형태로 옮기고 그 흐름을 유지하는 엔지니어입니다.

등장 배경

데이터를 쓰는 사람이 한둘일 때는 따로 맡는 사람이 없어도 굴러갑니다. 궁금한 게 생기면 분석가가 서비스가 쓰는 데이터베이스에 직접 물어보고, 결제 내역은 결제사 화면에서 내려받고, 광고 성과는 광고 관리자에서 내려받아 엑셀에서 합칩니다. 반나절이면 답이 나옵니다.

이 방식은 세 군데에서 동시에 무너집니다. 첫째, 서비스가 쓰는 데이터베이스에 무거운 질의를 던지면 실제 사용자 화면이 느려집니다. 월말 집계를 돌린 오후에 문서 저장이 느려졌다는 문의가 들어오는 식입니다. 둘째, 손으로 합치는 일은 사람 수만큼 늘어납니다. 같은 질문을 다섯 명이 각자 내려받아 각자 합치고 서로 다른 숫자를 들고 옵니다. 셋째, 원천이 조용히 바뀝니다. 결제사가 칸 이름을 바꾸면 그걸 모르는 채 다음 달 집계가 어긋납니다.

데이터 엔지니어는 이 세 가지를 한 사람이 맡으라고 생긴 자리입니다. 사람마다 각자 긁어 오던 경로를 하나로 합쳐 자동으로 돌게 만들고, 그 경로가 오늘도 제대로 돌았는지를 책임집니다. 분석가가 보는 표가 아침마다 채워져 있는 상태를 만드는 것이 이 역할의 결과물입니다.

하루 업무

만드는 시간보다 돌아가게 두는 시간이 깁니다. 하루는 대개 이런 순서입니다.

  1. 밤사이 실패한 작업 확인 — 출근해서 가장 먼저 보는 것은 새벽에 돌아간 데이터 파이프라인, 곧 원천에서 분석용 저장소까지 데이터를 옮기는 흐름의 결과입니다. 열 개 중 하나가 멈춰 있으면 그 표를 쓰는 대시보드는 어제 숫자를 그대로 보여 주고 있습니다. 오전 회의 전에 다시 돌려 놓는 것이 먼저입니다.
  2. 원천 변경 대응 — 백엔드가 이벤트에 칸을 하나 더 붙였거나 외부 서비스가 응답 형식을 바꾸면 그 지점에서 적재가 깨집니다. 예고 없이 오는 쪽이 대부분이라 깨진 뒤에 알게 됩니다.
  3. 새 요청 처리 — "광고 비용을 계정별로 보고 싶다" 같은 요청을 받아 원천을 연결하고 데이터 웨어하우스, 곧 분석용으로 정리해 모아 두는 저장소에 새 표를 만듭니다.
  4. 비용과 시간 줄이기 — 질의 한 번에 20분이 걸리거나 저장 비용이 갑자기 두 배가 되면 원인을 찾습니다. 하루치만 새로 처리하면 되는 작업이 매번 전체를 다시 읽고 있는 경우가 흔합니다.
  5. 설명 채우기 — 새로 만든 표의 각 칸이 무엇을 뜻하는지 데이터 카탈로그에 적습니다. 미루면 반년 뒤 그 표는 아무도 못 쓰는 표가 됩니다.

2번과 4번이 눈에 안 띄는 만큼 시간을 많이 먹습니다. 새 표를 만드는 일은 요청한 사람이 알아주지만, 깨진 흐름을 아침마다 되살리는 일은 아무 일도 없었던 것처럼 보입니다.

함께 일하는 사람

한쪽에서 데이터를 받아 다른 쪽에 넘기는 자리라 양쪽 모두와 붙어 있습니다.

  1. 백엔드 개발자 — 데이터가 처음 생기는 곳입니다. 어떤 행동을 어떤 이름으로 남길지, 칸을 바꿀 때 미리 알릴지를 여기서 맞춥니다. 이 합의가 없으면 2번 업무가 매주 돌아옵니다.
  2. 데이터 분석가 — 만든 표를 실제로 쓰는 쪽이자 요청을 넣는 쪽입니다. 질문을 듣고 필요한 표의 모양을 함께 정합니다.
  3. 프로덕트 매니저 — 지표의 정의를 확정하는 자리입니다. 활성 사용자를 접속 기준으로 셀지 문서 생성 기준으로 셀지가 정해져야 표를 만들 수 있습니다.
  4. 법무 — 개인을 알아볼 수 있는 칸을 어디까지 저장소에 들여올지 정합니다. 분석에 필요 없는 주민등록번호를 옮겨 두면 쓰지도 않으면서 지킬 것만 늘어납니다.

설계 이야기는 표를 만들기 전에 해야 합니다. 이미 채워진 표의 칸 뜻을 나중에 바꾸면 그 표를 쓰는 모든 자료가 같이 틀어집니다.

실무 용례

"새벽 적재가 3시에 실패해서 오늘 대시보드는 어제까지만 반영돼 있어요."

숫자가 틀린 게 아니라 늦었으니 그대로 읽지 말라는 안내입니다.

"그 칸 추가하려면 원천부터 봐야 해요. 지금은 이벤트에 안 남고 있어요."

저장소에서 꺼내는 문제가 아니라 애초에 안 쌓이고 있다는 뜻입니다.

"이 질의 매번 전체를 다시 읽고 있어요. 하루치만 붙이게 바꾸죠."

같은 결과를 훨씬 적은 비용으로 얻을 수 있다는 제안입니다.

페이지덱에는 데이터 엔지니어가 따로 없고 태오가 서버 일과 함께 이 몫을 지고 있습니다. 지현이 주간 지표를 보려면 가입, 결제, 문서 생성 세 곳의 기록이 한 표에 모여 있어야 하는데, 처음에는 태오가 매주 월요일 아침에 손으로 세 파일을 합쳐 줬습니다. 회의가 늘면서 그 일이 매주 세 시간씩 들어가기 시작했습니다.

그래서 태오는 세 원천을 매일 새벽에 자동으로 옮겨 붙이는 흐름을 만들고, 실패하면 알림이 오게 걸었습니다. 그 뒤로 월요일 아침의 세 시간은 사라졌지만 대신 새벽 알림을 받는 날이 생겼습니다. 결제사 응답 형식이 바뀐 날이 그랬습니다. 역할이 없어진 게 아니라 손으로 합치는 일에서 흐름을 지키는 일로 바뀐 겁니다.

흔한 오해

데이터를 다루니 분석도 함께 한다고 보는 경우가 많습니다. 이름에 데이터가 들어가고 실제로 숫자를 매일 들여다보니 그렇게 보입니다. 하지만 이 역할이 책임지는 것은 값의 해석이 아니라 값이 제때 제 모양으로 도착하는 상태입니다. 가입이 지난주보다 왜 줄었는지를 밝히는 것은 분석가의 일이고, 그 숫자를 담은 표가 오늘 아침에도 채워져 있게 하는 것이 데이터 엔지니어의 일입니다. 둘을 한 사람에게 함께 맡기면 대개 급한 쪽인 분석 요청이 시간을 다 가져가고, 신선도가 깨진 표가 한 달쯤 방치됩니다.

한 번 만들어 두면 끝나는 구축 업무로 보는 것도 흔합니다. 파이프라인이라는 말이 다리나 배관처럼 한 번 놓으면 오래 가는 물건을 떠올리게 합니다. 실제로는 원천이 계속 변합니다. 외부 서비스가 응답 형식을 바꾸고, 새 기능이 새 이벤트를 만들고, 데이터가 쌓일수록 어제까지 3분이던 작업이 30분이 됩니다. 구축이 끝났다고 보고 사람을 다른 일로 옮기면 반년 뒤에는 절반이 멈춘 채로 남아 있고, 그때는 어느 표가 살아 있는지부터 다시 확인해야 합니다.

자주 헷갈리는 용어

용어무엇을 맡는가데이터 엔지니어와의 차이
애널리틱스 엔지니어저장소에 들어온 데이터를 분석하기 좋은 표로 다듬는 일옮기는 구간이 아니라 옮겨진 다음 구간을 맡습니다. 데이터 엔지니어가 원천에서 저장소까지를 책임진다면 이쪽은 저장소 안에서 지표 정의를 표로 만듭니다
데이터 사이언티스트통계와 모델로 예측과 설명을 만드는 일데이터를 쓰는 쪽입니다. 이탈할 것 같은 계정을 예측하는 모델을 만든다면, 그 모델이 매일 읽는 표를 채워 두는 것이 데이터 엔지니어입니다

같이 보면 좋은 페이지

마지막 업데이트 2026-09-16