지난 4일간 데이터 엔지니어링의 토대를 세웠다. Day 1에서 역할과 파이프라인, OLTP/OLAP, 레이크/웨어하우스를 봤고, Day 2에서 배치와 스트리밍을 갈랐으며, Day 3에서 AWS 데이터 서비스 지도를 펼쳤고, Day 4에서 데이터 포맷과 스키마 진화를 다뤘다. 흩어진 조각처럼 보이지만, 사실 이들은 하나의 파이프라인으로 꿰어진다.
오늘은 개별 개념을 다시 나열하는 대신, 하나의 시나리오를 처음부터 끝까지 따라가며 네 날의 지식이 어떻게 맞물리는지 본다. 시험은 단편 암기가 아니라 "이 상황에서 무엇을 고를 것인가"를 묻기 때문에, 이렇게 연결해서 보는 것이 가장 효과적인 복습이다.
[Day1] 역할·개념 [Day2] 처리 [Day3] 서비스 [Day4] 포맷
데이터 엔지니어 배치 수집 Kinesis/DMS CSV/JSON (원시)
= 파이프라인 책임 vs 저장 S3/Redshift Parquet/ORC (분석)
OLTP vs OLAP 스트리밍 처리 Glue/EMR Avro (스트리밍)
레이크 vs 웨어하우스 (지연/처리량) 분석 Athena/QS 스키마 진화
거버넌스 LakeFmt
네 날의 키워드가 결국 "데이터를 어떻게 수집·저장·처리·분석하고 통제하는가"라는 한 질문의 다른 측면들이다.
💡 관련 이론: 이 모든 판단을 관통하는 단일 원칙은 "워크로드가 설계를 결정한다"이다. OLTP냐 OLAP냐, 배치냐 스트림이냐, 행형이냐 컬럼형이냐 — 모두 "어떤 식으로 데이터를 읽고 쓰는가"라는 워크로드 특성에서 답이 나온다. 기술을 먼저 고르고 워크로드를 끼워맞추는 게 아니라, 워크로드를 분석해 기술을 고르는 것이 데이터 엔지니어링의 사고법이다.
전자상거래 회사의 요구를 따라간다. 각 요구가 Week 1의 어느 개념에 닿는지 표시했다.
요구 1. "운영 주문 DB에 부하 주지 말고, 그 데이터를 분석할 수 있게 해줘."
운영 DB는 OLTP(Day1) → 무거운 집계를 직접 돌리면 안 됨
DMS의 CDC(Day3)로 변경분만 분석 환경으로 복제
분석 환경은 OLAP(Day1) → Redshift 또는 S3+Athena
요구 2. "결제 순간 이상거래를 잡아내고 싶어."
즉시성이 필요 → 스트리밍(Day2)
Kinesis Data Streams(Day3)로 결제 이벤트 수집
스키마가 바뀔 수 있으니 Avro + Schema Registry(Day4)
요구 3. "매일 아침 어제 매출 리포트를 자동으로."
주기적·경계 있는 데이터 → 배치(Day2)
Glue(Day3)로 하루치 처리, Parquet(Day4)으로 적재
Athena/QuickSight(Day3)로 조회·시각화
-- 요구 3의 분석 쿼리 — Parquet으로 저장돼 있어 빠르고 저렴SELECT region, SUM(amount) AS revenueFROM orders -- S3의 Parquet, Glue Catalog에 등록됨WHERE order_date = DATE '2026-06-25' -- 파티션 프루닝GROUP BY region;
하나의 회사가 세 요구를 동시에 가질 수 있고, 각각 다른 패러다임·서비스·포맷을 쓴다. "정답 하나"가 아니라 요구마다 맞는 조합이 있다는 것이 핵심이다.
💡 관련 이론: 요구 1~3을 한 그림에 합치면 자연스럽게 레이크하우스가 된다. 모든 원시 데이터(주문 CDC, 결제 스트림, 로그)가 S3 데이터 레이크에 모이고, 배치·스트리밍 처리를 거쳐 Parquet으로 정제되며, 그 위에서 Athena·Redshift·QuickSight가 분석한다. Day1의 "레이크 vs 웨어하우스"가 현대에선 "레이크하우스로 통합"되는 이유다.
이 8개 짝의 구분 기준만 정확히 잡아도 Week 1 범위의 시나리오 문제 상당수를 풀 수 있다.
이 표의 거의 모든 짝은 "유연성·범용성 vs 효율성·전문성"이라는 같은 긴장 구조를 갖는다. 레이크는 유연하지만 관리가 필요하고, 웨어하우스는 효율적이지만 경직됐다. 서버리스(Glue/Athena)는 편하지만 세밀한 제어가 약하고, 클러스터(EMR/Redshift)는 강력하지만 운영 부담이 있다. 트레이드오프를 의식하면 암기가 이해로 바뀐다.
Week 1 의 개념은 따로 외우면 흩어지고, 질문 순서로 묶으면 판별 절차가 된다. 시나리오 지문을 만나면 아래 순서로 밑줄을 긋는다.
① 원천이 무엇인가? DB / 파일 / 이벤트·로그 / SaaS
↓ → 수집 서비스가 정해진다 (Day 3)
② 얼마나 신선해야 하나? 초 이내 / 분 / 시간 / 하루
↓ → 배치·스트리밍·준실시간이 정해진다 (Day 2)
③ 누가 어떻게 읽나? 한 행 조회 / 대량 집계 / 검색 / 대시보드
↓ → 저장소와 포맷이 정해진다 (Day 1, Day 4)
④ 붙은 조건은? 운영 부담 최소 / 비용 최소 / 코드 변경 최소 / 세밀한 권한
→ 같은 단계의 후보 중 하나로 좁혀진다
질문
답
귀결
① 원천
운영 DB
DMS(CDC). 직접 집계 쿼리는 금지
파일 서버
DataSync(끌어옴) / Transfer Family(받음) / Snow(회선 부족)
이벤트·로그
Kinesis Data Streams·MSK(스트림) / Firehose(적재)
SaaS
AppFlow
② 신선도
초 이내
스트림 + Flink/Lambda
수 초~분
Firehose, Glue 스트리밍
시간~하루
스케줄 배치(Glue/EMR)
③ 읽는 방식
키로 한 건씩, 쓰기 많음
OLTP — RDS/Aurora, DynamoDB
대량 집계·조인
OLAP — Redshift, 또는 S3(Parquet)+Athena
형태가 제각각인 원본 보관
S3 데이터 레이크
④ 조건
운영 부담 최소
서버리스 쪽(Firehose, Glue, Athena, Lambda)
기존 코드·도구 재사용
오픈소스 호환 쪽(MSK, EMR, MWAA)
컬럼·행 단위 권한
Lake Formation
④가 가장 자주 정답을 가른다. ①~③까지는 보기 두세 개가 살아남고, 마지막 한정어 하나가 승부를 낸다.
개념을 "무엇이 잘못되면 어떤 증상이 나오는가"로 뒤집어 보면 Week 1 전체가 다시 연결된다.
증상
Week 1 개념으로 본 원인
조치
분석 쿼리를 돌리면 서비스 응답이 느려진다
OLTP DB 에 OLAP 쿼리를 직접 실행
CDC 로 분석 환경 분리
Athena 요금이 데이터 증가보다 빠르게 는다
행형 포맷 + 파티션 필터 없는 쿼리
Parquet 변환, 파티션 설계, WHERE 에 파티션 컬럼
파일은 S3 에 있는데 Athena 결과가 비어 있다
카탈로그에 파티션 미등록
파티션 추가·크롤러·파티션 프로젝션
새벽 리포트 숫자가 실시간 대시보드와 다르다
스트리밍은 늦은 이벤트를 놓치고 배치는 다 모은 뒤 계산
기준 지표를 하나로 정하고 배치 결과로 보정
프로듀서 배포 직후 소비자가 역직렬화 오류
호환되지 않는 스키마 변경
스키마 레지스트리 호환 모드로 사전 차단
쿼리가 병렬로 돌지 않고 오래 걸린다
거대한 GZIP 텍스트 파일 하나
분할하거나 컬럼형으로 변환
쿼리 계획 단계부터 느리다
아주 작은 파일 수만 개
버퍼 확대, 주기적 병합
민감 컬럼이 전 직원에게 보인다
버킷 단위 권한만 설정
Lake Formation 으로 컬럼·행 권한
위 표의 조치는 대부분 "데이터를 어떻게 놓느냐"의 문제다. 클러스터를 키우는 것은 마지막 수단이고, 포맷·파티션·파일 크기·분리(운영과 분석, 원본과 가공본)를 먼저 바로잡는 것이 데이터 엔지니어의 일이다. DEA-C01 이 서비스 이름보다 설계 판단을 묻는 이유도 여기에 있다.
이 사고법을 손에 쥐었다면 Week 1은 성공이다. Week 2부터는 이 골격에 살을 붙여, 각 서비스를 실제로 다루는 법으로 들어간다.