데이터 트랜스포메이션

GCP-CDL 대비 구조화/반구조화/비구조화 데이터 유형과 Cloud Storage, Spanner, Bigtable, BigQuery, Firestore 등 저장 서비스, Pub/Sub·Dataflow 파이프라인을 정리합니다.

CDL에서 데이터 솔루션 도메인은 전체의 약 15~20%를 차지합니다. 어떤 데이터 저장소를 언제 쓰는지, 파이프라인 구성이 핵심입니다.

 

데이터가 왜 중요한가

현대 기업에서 데이터는 석유와 같습니다. 원유 자체는 가치가 없지만, 정제하면 연료가 되듯이 데이터도 수집하고 분석해야 비즈니스 가치를 창출합니다. 마치 슈퍼마켓이 고객 구매 패턴 데이터를 분석해 재고를 최적화하거나 개인화 추천을 제공하는 것처럼, 데이터 기반 의사결정은 직감에 의존하는 것보다 훨씬 정확합니다.

데이터 유형 세 가지

데이터는 형태에 따라 세 가지로 나뉩니다.

구조화 데이터(Structured Data)는 행과 열로 구성된 표 형식의 데이터입니다. 엑셀 스프레드시트나 관계형 데이터베이스의 테이블처럼 정형화된 형식을 갖습니다. 예: 고객 주문 테이블, 매출 데이터.

반구조화 데이터(Semi-structured Data)는 완전한 표 구조는 아니지만 태그나 키-값 쌍으로 어느 정도 구조가 있는 데이터입니다. JSON, XML 형식이 대표적입니다. 예: 센서 데이터, API 응답값.

비구조화 데이터(Unstructured Data)는 정해진 형식이 없는 데이터입니다. 예: 이미지, 동영상, 오디오 파일, 이메일 본문. 전 세계 데이터의 약 80%가 비구조화 데이터입니다.

| 유형 | 형식 | 저장 서비스 예시 | |------|------|---------------| | 구조화 | 테이블, 행/열 | Cloud SQL, Cloud Spanner, BigQuery | | 반구조화 | JSON, XML | Firestore, Bigtable | | 비구조화 | 이미지, 동영상, 텍스트 파일 | Cloud Storage |

 

Google Cloud 데이터 저장 서비스

Google Cloud는 다양한 데이터 유형과 사용 사례에 맞는 여러 저장 서비스를 제공합니다. CDL 시험에서 가장 자주 출제되는 내용 중 하나가 "이 상황에 어떤 서비스를 써야 하는가?"입니다.

Cloud Storage — 객체 스토리지

Cloud Storage는 파일, 이미지, 동영상, 백업 데이터 등 모든 종류의 파일을 저장하는 서비스입니다. 마치 Google Drive와 비슷하지만 개발자와 애플리케이션을 위해 설계되었습니다.

데이터는 버킷(Bucket)이라는 컨테이너에 저장됩니다. 각 파일(객체)은 고유한 URL로 접근할 수 있습니다. 용량 제한이 없고 99.999999999%(11 nines) 내구성을 제공합니다. 데이터 레이크(분석을 위해 원시 데이터를 대량으로 보관하는 저장소)로 많이 활용됩니다.

Cloud Storage 스토리지 클래스

접근 빈도에 따라 클래스를 선택하면 비용을 최적화할 수 있습니다. 접근 빈도가 낮을수록 저장 비용은 내려가지만 데이터를 꺼낼 때 비용이 올라갑니다.

| 클래스 | 최소 저장 기간 | 적합한 상황 | 예시 | |--------|-------------|-----------|------| | Standard | 없음 | 자주 접근하는 데이터 | 웹사이트 이미지, 앱 데이터 | | Nearline | 30일 | 월 1회 이하 접근 | 월간 백업, 재해 복구 | | Coldline | 90일 | 분기 1회 이하 접근 | 분기 감사 데이터 | | Archive | 365일 | 연 1회 이하 접근 | 장기 아카이브, 규정 보관 |

Cloud SQL — 관계형 데이터베이스 (관리형)

Cloud SQL은 MySQL, PostgreSQL, SQL Server를 완전 관리형으로 제공합니다. 여기서 "완전 관리형"이란 패치, 백업, 복제, 장애 조치를 Google이 자동으로 처리한다는 의미입니다. 개발자는 데이터베이스 관리 대신 애플리케이션 개발에 집중할 수 있습니다.

적합한 상황: 기존 MySQL/PostgreSQL 애플리케이션을 클라우드로 이전하거나, 웹 애플리케이션의 백엔드 데이터베이스, OLTP(온라인 트랜잭션 처리) 워크로드. 수직 확장(서버 사양 업그레이드)은 가능하지만 수평 확장(서버 수 늘리기)에는 한계가 있습니다.

Cloud Spanner — 글로벌 분산 관계형 데이터베이스

Cloud Spanner는 Cloud SQL의 한계를 넘어선 서비스입니다. 관계형 데이터베이스의 ACID 트랜잭션 특성을 유지하면서도 전 세계에 걸쳐 수평 확장이 가능합니다. 이것은 매우 독특한 특성으로, 일반적으로 관계형 DB는 수평 확장이 어렵습니다.

적합한 상황: 전 세계 사용자를 대상으로 하는 금융 거래 시스템, 글로벌 재고 관리, 수십억 건의 레코드를 처리해야 하는 미션 크리티컬 애플리케이션. Cloud SQL이 작은 마을의 지점 은행이라면, Cloud Spanner는 전 세계 지점을 하나의 시스템으로 연결한 글로벌 은행입니다.

Cloud Bigtable — NoSQL 넓은 열 데이터베이스

Bigtable은 Google 내부에서 검색 엔진, Gmail, Google Maps를 지원하기 위해 만들어진 기술을 클라우드로 제공합니다. 초당 수백만 건의 읽기/쓰기 작업을 처리할 수 있으며, 페타바이트 규모까지 확장됩니다.

"넓은 열(Wide Column)" 구조는 행마다 열 수가 달라도 되는 유연한 스키마를 말합니다. 적합한 상황: IoT 센서 데이터, 시계열 데이터(시간 기반 측정값), 사용자 행동 분석, 실시간 스트리밍 분석. SQL을 지원하지 않으므로 복잡한 조인이나 트랜잭션이 필요하면 부적합합니다.

BigQuery — 서버리스 데이터 웨어하우스

BigQuery는 CDL 시험에서 가장 중요한 데이터 서비스 중 하나입니다. 수 테라바이트, 심지어 페타바이트 규모의 데이터를 표준 SQL로 분석할 수 있습니다. "서버리스"라는 말은 서버를 프로비저닝하거나 관리할 필요가 없다는 의미입니다.

OLAP(온라인 분석 처리) 워크로드에 최적화되어 있습니다. OLAP는 "지난 1년간 지역별 매출 합계는?" 같은 대규모 집계·분석 쿼리를 말합니다. 반면 OLTP(온라인 트랜잭션 처리)는 개별 주문 처리처럼 빠른 소규모 트랜잭션을 말합니다. BigQuery는 OLAP용이고, Cloud SQL은 OLTP용입니다.

BigQuery는 데이터를 저장(스토리지)하고 분석(컴퓨팅)하는 기능을 모두 갖추고 있어, 별도의 ETL 없이 데이터를 불러와 바로 분석할 수 있습니다.

Firestore — NoSQL 문서 데이터베이스

Firestore는 JSON 문서를 저장하는 완전 관리형 NoSQL 데이터베이스입니다. 모바일과 웹 애플리케이션에 최적화되어 있으며, 가장 큰 특징은 실시간 동기화(Real-time sync)입니다. 데이터가 변경되면 연결된 모든 클라이언트(앱, 웹 브라우저)에 즉시 반영됩니다. 마치 구글 독스에서 여러 사람이 동시에 편집할 때 바로 반영되는 것처럼요.

적합한 상황: 채팅 앱, 실시간 공동 편집, 모바일 게임 순위표, 쇼핑 카트.

서비스 선택 가이드

| 서비스 | 유형 | 핵심 사용 사례 | |--------|------|-------------| | Cloud Storage | 객체 스토리지 | 파일, 이미지, 동영상, 백업, 데이터 레이크 | | Cloud SQL | 관계형 (관리형) | 웹 앱 백엔드, 기존 MySQL/PostgreSQL 이전 | | Cloud Spanner | 관계형 (글로벌) | 글로벌 금융 트랜잭션, 무제한 수평 확장 | | Bigtable | NoSQL (넓은 열) | IoT, 시계열, 대규모 실시간 분석 | | BigQuery | 데이터 웨어하우스 | 대규모 SQL 분석, BI, 데이터 탐색 | | Firestore | NoSQL (문서) | 모바일/웹 앱, 실시간 동기화 |

 

데이터 파이프라인: 수집 → 처리 → 분석 → 시각화

데이터는 수집되는 것만으로는 가치가 없습니다. 처리하고 분석하고 시각화해야 의미 있는 인사이트가 됩니다. Google Cloud는 이 전 과정을 지원하는 서비스를 제공합니다.

!데이터 파이프라인 단계: 수집, 처리, 분석, 시각화

Pub/Sub — 실시간 메시지 스트리밍

Pub/Sub는 "발행자(Publisher) - 구독자(Subscriber)" 패턴으로 작동하는 비동기 메시지 서비스입니다. 마치 신문 구독 서비스처럼, 발행자는 기사를 발행하고 구독자는 관심 있는 기사를 받아봅니다.

핵심 특징은 발행자와 구독자의 분리(Decoupling)입니다. 발행자는 구독자가 몇 명인지, 언제 메시지를 처리하는지 알 필요가 없습니다. IoT 센서 수천 개가 데이터를 보내면 Pub/Sub가 메시지를 받아두었다가 처리 시스템에 전달합니다.

적합한 상황: IoT 데이터 수집, 이벤트 기반 아키텍처, 마이크로서비스 간 통신, 실시간 알림 시스템.

Dataflow — 배치 및 스트리밍 데이터 처리

Dataflow는 Apache Beam 기반의 완전 관리형(서버리스) 데이터 처리 서비스입니다. 배치(Batch) 처리와 스트리밍(Streaming) 처리를 동일한 코드로 처리할 수 있다는 것이 가장 큰 특징입니다.

배치 처리는 "오늘 하루 쌓인 로그를 한꺼번에 분석"하는 것이고, 스트리밍 처리는 "데이터가 들어오는 즉시 실시간으로 분석"하는 것입니다. Dataflow는 이 두 가지를 하나의 파이프라인으로 처리합니다.

전형적인 파이프라인: Pub/Sub(수집) → Dataflow(변환/집계) → BigQuery(저장/분석)

Looker — BI 및 데이터 시각화

Looker는 비즈니스 인텔리전스(BI) 및 데이터 시각화 플랫폼입니다. BigQuery나 다른 데이터베이스에 저장된 데이터를 대화형 대시보드와 리포트로 만들어 비즈니스 사용자가 쉽게 분석할 수 있게 합니다.

LookML이라는 모델링 언어로 데이터 관계를 정의하면, 비즈니스 사용자가 SQL을 몰라도 복잡한 분석을 수행할 수 있습니다.

데이터 파이프라인 전체 흐름 요약:

 

시험 핵심 정리

"행/열 구조, SQL 사용" -- 구조화 데이터

"JSON/XML, 유연한 구조" -- 반구조화 데이터

"이미지, 동영상, 정형화 없음" -- 비구조화 데이터

"모든 파일/이미지/백업 저장, 객체 스토리지" -- Cloud Storage

"접근 빈도에 따른 비용 최적화 — 자주" -- Standard

블로그 목록으로 돌아가기