애널리틱스 엔지니어
Analytics Engineer
역할
흩어진 원본 기록을 분석가가 바로 꺼내 쓸 수 있는 공통 표로 미리 정리해 두고 그 정의를 관리하는 역할입니다.
등장 배경
분석가가 한 명일 때는 매출을 어떻게 계산하든 회사 안에 매출이 하나입니다. 문제는 세 명이 되는 순간 생깁니다.
페이지덱에서 그런 회의가 있었습니다. 지난달 유료 매출을 두고 한 사람은 2억 8천만 원, 다른 사람은 3억 1천만 원을 들고 왔습니다. 한쪽은 환불된 결제를 빼고 셌고 다른 쪽은 결제 시점 기준으로 다 넣었습니다. 둘 다 틀리지 않았는데 회의 한 시간이 숫자를 맞추는 데 쓰였고, 정작 왜 그 숫자가 됐는지는 아무도 못 봤습니다.
원인은 사람이 아니라 자리였습니다. 원본 기록을 끌어와 한곳에 모으는 데이터 파이프라인까지는 데이터 엔지니어가 만들어 두지만, 그 원본은 사람이 바로 읽을 수 있는 모양이 아닙니다. 결제 한 건이 여러 줄로 쪼개져 있고 환불은 다른 표에 따로 들어 있습니다. 그것을 쓸 만한 표로 바꾸는 일은 분석가가 각자 자기 질문에 답할 때마다 새로 했습니다. 그래서 같은 계산이 사람 수만큼 생겼습니다.
이 역할은 그 중간 자리를 맡으려고 생겼습니다. 계산을 한 번만 해 두고 모두가 그것을 쓰게 만드는 것이 이 자리의 전부입니다.
하루 업무
하루는 대개 어젯밤에 돌린 변환 작업이 제대로 끝났는지 확인하는 것으로 시작합니다. 새벽에 원본을 읽어 표를 다시 만들어 두도록 걸어 두는데, 원본 쪽에서 칸 이름 하나만 바뀌어도 그 작업이 멈춥니다. 멈춘 채로 아침이 되면 대시보드의 어제 숫자가 비어 있습니다. 실제 업무는 아래 다섯 가지 사이를 오갑니다.
- 실패한 작업을 고칩니다. 어디서 끊겼는지 찾아 원본의 변경을 반영하고 다시 돌립니다. 이 일이 하루의 절반을 먹는 날도 있습니다.
- 새 표를 만듭니다. "계정별로 가입일과 첫 결제일과 마지막 접속일이 한 줄에 있는 표" 같은 요청을 받아 만들어 둡니다. 한 번 만들어 두면 그다음부터 같은 질문은 표 하나만 보고 답이 나옵니다.
- 정의를 맞춥니다. 활성 사용자를 한 번이라도 접속한 사람으로 볼지 문서를 한 건이라도 만든 사람으로 볼지에 따라 같은 달 숫자가 12만과 4만으로 갈립니다. 어느 쪽이 맞는지는 이 자리에서 정하지 않고 지표를 쓰는 사람들과 합의해 코드에 한 번 적어 둡니다.
- 검사를 겁니다. 결제 금액 칸이 빈 줄이 섞이거나 같은 계정이 두 줄로 들어오면 그 위의 계산이 전부 조금씩 틀어집니다. 그런 줄이 나오면 멈추고 알리도록 데이터 품질 검사를 붙여 둡니다.
- 적어 둡니다. 표마다 각 칸의 뜻과 갱신 시점을 남깁니다. 없으면 반년 뒤에 본인도 왜 이 조건을 넣었는지 모릅니다.
일하는 방식은 분석보다 개발에 가깝습니다. 계산을 코드로 적고, 고칠 때 다른 사람이 리뷰하고, 내력을 남겨 이전 상태로 되돌릴 수 있게 둡니다.
함께 일하는 사람
앞뒤로 다른 역할이 붙어 있어서 하루의 상당 부분이 남의 요청과 남의 변경을 다루는 데 들어갑니다.
앞쪽에는 데이터 엔지니어가 있습니다. 원본을 분석용 데이터 저장소까지 실어다 주는 쪽이라, 그쪽에서 원본 구조가 바뀌면 이쪽 표가 같이 무너집니다. 그래서 바뀌기 전에 알려 달라는 약속을 걸어 둡니다.
뒤쪽에는 데이터 분석가와 프로덕트 애널리스트가 있습니다. 만들어 둔 표를 실제로 쓰는 사람들이고, 새 표가 필요하다는 요청도 여기서 옵니다. BI 담당자가 만드는 대시보드도 대개 이 표 위에 얹힙니다. 예측 모델을 만드는 데이터 사이언티스트는 학습에 넣을 재료를 여기서 가져갑니다.
옆에는 제품을 만드는 사람들이 있습니다. 태오가 새 기능을 만들 때 무엇을 기록으로 남길지를 함께 정합니다. 기록은 되돌릴 수 없어서, 지난달 공유 버튼을 누른 사람 수를 알려면 지난달에 이미 그 기록이 남고 있었어야 합니다. 지현과는 지표 정의를 함께 정합니다. 활성 사용자를 어떻게 셀지는 제품이 정하는 문제라 이쪽에서 답을 만들어 주지 않습니다.
실무 용례
"그 숫자 어느 표에서 뽑으셨어요? 공통 표에 같은 계산 있어요."
같은 계산을 각자 새로 짜지 말고 한 곳을 쓰자는 말입니다.
"결제 테이블 구조 바뀌면 미리 알려 주세요. 야간 작업 멈춥니다."
원본이 바뀌면 그 위에 얹힌 표가 전부 멈춘다는 경고입니다.
"활성 사용자 정의부터 정해 주시면 그걸로 코드에 박아 둘게요."
세는 기준은 제품이 정하고 자기는 그것을 한 곳에 고정하는 역할이라는 뜻입니다.
페이지덱에서는 지난 회의 이후로 매출 계산을 표 하나에 몰아 두었습니다. 환불을 뺀 값과 넣은 값이 각각 다른 칸으로 들어가 있고, 어느 칸을 쓸지는 보는 사람이 고릅니다. 두 숫자가 다르다는 사실 자체는 그대로지만, 이제 회의에서 그 차이가 어디서 왔는지를 한 줄로 확인할 수 있습니다.
새 지표를 만들 때는 순서가 있습니다. 지현이 무엇을 세고 싶은지 적어 오면 정의를 같이 다듬고, 코드로 옮긴 뒤 한 주쯤 기존 방식과 나란히 돌려 값이 크게 벌어지지 않는지 봅니다. 벌어지면 정의가 덜 맞은 것이라 다시 앉습니다.
흔한 오해
데이터 엔지니어와 같은 일을 한다고 보는 경우가 가장 많습니다. 둘 다 표를 만들고 둘 다 코드를 쓰니 겉으로는 비슷해 보입니다. 다른 것은 다루는 대상입니다. 데이터 엔지니어는 데이터가 흐르는 길, 그러니까 어디서 어디로 얼마나 자주 옮길지를 만들고 그 길이 멈추지 않게 지킵니다. 애널리틱스 엔지니어는 그 길로 도착한 것의 뜻을 다룹니다. 매출을 어떻게 셀지는 뒤쪽 질문이고 앞쪽에서는 답이 나오지 않습니다. 이 구분이 없으면 정의를 정할 사람이 조직에 없는 채로 표만 늘어납니다.
질의문을 잘 쓰는 분석가 정도로 읽는 것도 흔합니다. 이 자리에 오는 사람 중 분석가 출신이 많아서 더 그렇습니다. 그런데 한 번 쓰고 버리는 계산과 매일 밤 자동으로 도는 계산은 요구하는 것이 다릅니다. 뒤쪽은 원본이 바뀌면 알아서 멈춰야 하고, 고친 내력이 남아야 하고, 반년 뒤에 남이 읽어도 왜 그렇게 짰는지 알 수 있어야 합니다. 이 차이를 모르고 자리를 만들면 표는 늘어나는데 아무도 손댈 수 없게 되고, 결국 분석가들이 다시 각자 계산합니다.
자주 헷갈리는 용어
| 용어 | 맡는 자리 | 애널리틱스 엔지니어와의 차이 |
|---|---|---|
| 데이터 분석가 | 쌓인 데이터를 뒤져 질문에 답을 만듭니다 | 답을 만드는 쪽이고, 이쪽은 그 답을 만들 재료를 미리 깔아 두는 쪽입니다. 분석가는 결과를 사람에게 내놓고 이쪽은 표를 분석가에게 내놓습니다 |
| 데이터 엔지니어 | 데이터가 흐르는 길을 만들고 지킵니다 | 옮기는 일까지가 그쪽이고 옮겨 온 것의 뜻을 정하는 일이 이쪽입니다. 그쪽 관심은 안 멈추는 것, 이쪽 관심은 맞는 것입니다 |
| 프로덕트 애널리스트 | 제품 데이터를 분석해 결정 근거를 만듭니다 | 제품 한 영역에 붙어 질문에 답하는 자리라 관심이 좁고 깊습니다. 이쪽은 특정 제품 질문이 아니라 모두가 쓰는 공통 정의를 봅니다 |
같이 보면 좋은 페이지
마지막 업데이트 2026-09-16