← 기술 목록으로

ETL DB 영역 분리 — 수집/배포/PROD 경계 재설계

수집·배포·서비스가 한 DB에 묶여 수집 과정의 데이터가 고객사까지 그대로 흘러가던 구조를, 수집 DB와 배포 DB(메타·파일 2계열)로 나누고 바이너리 로그 반영 순서를 잡아 PROD 정합성을 확보한 재설계

기간2022–2023
소속래브라도랩스(LabradorLabs)
역할Data Engineer · 구조 재설계
MySQLBinary LogETLDB 아키텍처Medallion Architecture

0작업자의 메모

고객사로 나갈 데이터와 만드는 중인 데이터를 같은 그릇에 두지 않는다 — 이 작업은 그 한 문장에서 출발했습니다. 수집이 실패하거나 다시 돌 때마다 그 흔적이 배포본에 묻어가면, 문제가 생겨도 어디서부터 손대야 할지 보이지 않으니까요.

지금 와서 보면 원천(raw) → 정제·배포(curated) → 서비스(serving)로 층을 나눈 메달리온 아키텍처와 같은 발상입니다. 당시에는 그 이름을 몰랐지만, 데이터가 단계를 거치며 신뢰도를 얻어야 한다는 건 운영하면서 몸으로 알게 됐습니다.

1배경

초기에는 ETL 전 과정이 하나의 DB에서 이루어졌습니다. 수집 작업과 배포용 데이터, 서비스 PROD까지 한 곳에 있다 보니 수집 과정의 중간 데이터까지 고객사로 그대로 전달되는 구조였습니다.

Before

수집·배포·PROD가 한 DB → 수집 중간 산출물이 고객사까지 노출, 정합성 깨짐, 불필요한 데이터가 PROD에 누적

After

수집 DB / 배포 DB 영역 분리, 배포 DB는 메타·파일 2계열 → 반영 순서가 보장되는 binlog 경로로 PROD 정합성 확보

2한 일

A아키텍처 (데이터 흐름)

수집 DB크롤러 인입 · 중간 산출물
정제·적재 →
배포 DB · 메타정보취약점 · 라이선스 · 버전
binlog ① 먼저 →
PROD DB서비스 · 고객사 전달
수집 DB파일 원천 데이터
정제·적재 →
배포 DB · 파일 정보파일 / 컴포넌트
binlog ② 나중 →
PROD DB메타 반영 후 수신

메타정보가 먼저 PROD에 반영된 뒤 파일 정보가 따라가도록 순서를 보장해, 파일 데이터가 존재하지 않는 메타를 참조하는 일이 없게 했습니다. 원천 → 정제 → 서비스로 층을 나눈, 지금으로 치면 메달리온 아키텍처(bronze/silver/gold)에 해당하는 구조입니다.

3임팩트

정합성 확보 — 메타 먼저, 파일 나중이라는 반영 순서가 구조로 보장되어 참조가 깨지는 문제를 차단
PROD 슬림화 — 수집용 중간 데이터를 걷어내 고객사로 나가는 DB에 배포에 필요한 데이터만 유지
책임 경계 — 수집 영역의 변경·실험이 배포와 PROD에 번지지 않는 구조적 격리의 출발점

4역할

Data Engineer로서 영역 분리 설계와 배포 DB 2계열 분류, binlog 반영 경로 재구성을 수행했습니다. 운영 중인 서비스와 고객사 동기화에 직접 닿는 변경이라, 경계를 먼저 세운 뒤 데이터 흐름을 옮기는 순서로 진행했습니다. 이때 세운 수집/배포 DB 경계는 지금의 데이터 플랫폼에도 그대로 살아 있습니다.

이후 DB 아키텍처 인스턴스 분리(2024), 바이너리 로그 기반 동기화 고도화로 이어지는 수집/배포 분리 구조의 출발점.