Schema Registry - 스키마 진화를 안전하게 다루는 법
이전 글에서는 Avro가 스키마를 파일에 넣어 태그 없는 바이트를 해석하고, Writer/Reader Schema 분리로 스키마 진화를 지원하는 구조를 살펴봤습니다. 마지막에 Kafka 환경에서 Schema Registry가 스키마를 중앙 관리하고 호환성을 검증한다고 ...
데이터 엔지니어의 기술 블로그
66개의 글
이전 글에서는 Avro가 스키마를 파일에 넣어 태그 없는 바이트를 해석하고, Writer/Reader Schema 분리로 스키마 진화를 지원하는 구조를 살펴봤습니다. 마지막에 Kafka 환경에서 Schema Registry가 스키마를 중앙 관리하고 호환성을 검증한다고 ...
이전 글에서는 BigQuery가 Parquet 대신 자체 포맷 Capacitor를 쓰는 이유를 살펴봤습니다. Row Reordering으로 압축률을 높여서, compute와 storage 사이의 네트워크 전송량을 줄이는 구조였습니다.
이전 글에서는 Apache Parquet의 내부 구조를 뜯어봤습니다. 인코딩으로 크기를 줄이고, Footer 통계로 불필요한 블록을 건너뛰는 디스크에서 읽는 양을 최소화하는 포맷이었습니다.
이전 글에서는 행 기반과 열 기반의 차이를 살펴봤습니다. 열 기반이 분석에 유리한 이유는 필요한 컬럼만 읽고, CPU 캐시와 SIMD를 활용할 수 있기 때문입니다.
Row 기반과 Column 기반은 데이터를 물리적으로 배치하는 두 가지 대표 방식입니다. 행 기반은 레코드 단위 읽기에, 열 기반은 컬럼 단위 집계에 유리합니다. 이 글에서는 MySQL, Protobuf, BigQuery, Arrow를 예시로 두 저장 방식의 구조적 차...
지난 1편에서는 데이터 시스템이 커질수록 직렬화 비용이 필연적인 병목이 된다는 점을 이야기했습니다. 초당 수백만 건의 이벤트를 처리해야 하는 환경에서, 범용적인 JSON은 '가독성'을 얻는 대신 CPU와 네트워크 비용을 비싸게 치르게 됩니다.
데이터 시스템의 규모가 커지면 직렬화(Serialization) 비용이 필연적으로 병목이 됩니다. 초당 수십만~수백만 건의 이벤트를 다루는 환경에서 JSON은 가독성이라는 장점이 있지만, CPU와 네트워크 부하가 빠르게 누적되기 때문입니다.
2025년은 제게 편안한 자리를 떠나 다시 배우는 자리를 고른 해였습니다.
이전 글에서는 MCP(Model Context Protocol)가 무엇인지, 그리고 Python SDK로 간단한 MCP 서버를 만들고 연동하는 방법을 정리했습니다. MCP 서버를 한 번이라도 실행해 보면 자연스럽게 이런 질문이 따라옵니다. “내가 만든 이 파이썬 MCP...
메달리온 아키텍처(Medallion Architecture)는 데이터를 Bronze → Silver → Gold 3단계로 정제하는 레이크하우스 설계 패턴입니다. 각 레이어의 역할과 멱등성 설계, 품질 게이트까지 실무 관점에서 정리합니다.
18편
11편
5편