1. 클라우드 기반의 데이터 플랫폼
<학습 목표>
- 데이터의 종류와 활용 방법 등을 살펴 본다.
- 관계형 데이터와 비관계형 데이터의 차이를 이해하고 활용
방안에 대해서 알아본다.
1.1 데이터의 정의와 구분
데이터는 사실, 숫자, 설명, 개체의 컬렉션이며 저장 방식에 따라 다음과 같이 구분됩니다.
- 구조화(Structured): 행과 열로 구성된 테이블 형태입니다.
- 반구조화(Semi-structured): 데이터 내에 구조(필드)가 정의된 형태로, JSON, AVRO, ORC, Parquet 등이 대표적입니다.
- 비구조화(Unstructured): 정해진 형식이 없는 데이터입니다.

1.2 트랜잭션(OLTP) vs 분석(OLAP) 워크로드
- OLTP (온라인 거래 처리): 조직의 활동을 추적하는 트랜잭션 데이터를 관리하며, ACID(원자성, 일관성, 격리성, 영속성) 특성을 유지하는 것이 핵심입니다.
- OLAP (온라인 분석 처리): 대량의 데이터를 입체적으로 분석하여 요약, 추세, 비즈니스 정보를 제공하며, 데이터는 큐브(Cube)에 주기적으로 로드 및 집계됩니다.

1.3 처리 방식: 일괄 처리(Batch)와 스트림 처리(Stream)
- 일괄 처리: 데이터 요소를 그룹으로 수집하여 향후 한꺼번에 처리하는 방식입니다.

- 스트림 처리: 각 새 데이터가 도착하는 즉시 실시간으로 처리합니다.

1.4 비관계형 데이터와 NoSQL의 특징
- 비관계형 데이터(NoSQL)는 유연한 데이터 처리가 필요한 최신 IT 환경에서 비중이 커지고 있습니다.
- 주요 특징: 테이블 형식이 아닌 여러 스키마를 포함할 수 있으며, 동일 컬렉션 내 엔터티들이 서로 다른 필드를 가질 수 있습니다.
- 유형: 키/값 저장소, 문서 기반, 열 패밀리, 그래프 데이터베이스 등이 있습니다.
- 사용 사례: IoT 및 텔레매틱스(실시간 처리), 소매 및 마케팅(문서 스토리지), 게임(낮은 대기 시간), 웹 및 모바일 클릭 분석 등
2. 클라우드 Open Source Database
<학습 목표>
- Open Source 기반의 Database를 알아본다.
- 클라우드 기반에서 Open Source 기반의 Database가 어떻게
동작하는지 살펴본다.
- 대표적인 Open Source Database인 MySQL을 설치해 본다.
2.1 Azure에서 제공하는 오픈 소스 DB 서비스
Azure는 익숙한 커뮤니티 에디션 엔진을 기반으로 완전 관리형 PaaS 서비스를 제공합니다.
- Azure Database for PostgreSQL: PostgreSQL 커뮤니티 버전 기반
- Azure Database for MySQL: MySQL 커뮤니티 에디션 기반의 PaaS 구현
- Azure Database for MariaDB: Azure에 최적화된 MariaDB 커뮤니티 버전 기반
2.2 클라우드 DB의 장점 및 구성 요소
클라우드에서 오픈 소스 DB를 사용하면 안정성, 보안, 확장성 면에서 큰 이점을 얻을 수 있습니다.
- 주요 장점: 완전 관리형 서비스, 추가 비용 없는 고가용성 기본 제공, 지능형 성능 확장(최대 16TB 스토리지 및 20K IOPS), 업계 최고의 보안(Advanced Threat Protection) 제공.
- 구성 요소: 구독, 리소스 그룹, 서버 이름, 지역, 컴퓨팅+스토리지 설정, 방화벽 규칙 등이 필요합니다.
2.3 데이터베이스 연결 정책
애플리케이션이 Azure SQL 데이터베이스에 연결되는 방식은 두 가지로 나뉩니다.
- 리디렉션 정책: 첫 번째 요청만 게이트웨이를 거치고, 이후 모든 요청은 데이터베이스로 직접 전송되어 성능상 유리합니다.

- 프록시 정책: 모든 요청이 게이트웨이를 통과하여 전달됩니다.

3. 클라우드 데이터 플랫폼의 관리 도구
<학습 목표>
- 클라우드 플랫품에서 제공하는 Database를 다룰 수 있는
다양한 관리 도구들을 살펴본다.
- 관리도구들을 사용해서 Database에 직접 접속하고 관리하는
방법을 살펴 확인해 본다.
3.1 데이터 관련 역할별 작업 내용
데이터를 다루는 역할에 따라 사용하는 도구와 목적이 달라집니다 .
- 데이터베이스 관리자(DBA): DB 관리, 보안 구현, 백업, 사용자 액세스 및 성능 모니터링을 담당합니다.

- 데이터 엔지니어: 데이터 파이프라인 구축, 수집 스토리지 관리, 분석을 위한 데이터 준비를 수행합니다.

- 데이터 분석가: 데이터 인사이트 제공, 시각적 보고서 작성, 분석용 데이터 모델링을 담당합니다.

3.2 주요 관리 및 시각화 도구
Azure Data Studio: Windows, macOS, Linux를 지원하는 데이터 서비스 관리용 그래픽 인터페이스입니다.
- SSMS (SQL Server Management Studio): Windows용 포괄적인 데이터베이스 관리 도구입니다.
- Azure Portal / CLI: 리소스 프로비저닝 및 자동화 스크립팅에 사용됩니다.
- Azure Synapse Studio: 데이터 수집 및 자산 관리를 위한 통합 포털입니다.
- Power BI (Desktop/Portal): 데이터 시각화, 보고서 및 대시보드 작성을 위한 도구입니다.
- MySQL Workbench: MySQL 데이터베이스 쿼리 및 관리를 위해 사용됩니다.
4. 학습 소감 및 결론
3주차 수업을 통해 클라우드 환경에서 데이터를 관리하는 것이 단순히 저장하는 것을 넘어 얼마나 전략적인 선택이 필요한지 깨달았습니다. 1-2주차에 배운 서버 인프라 위에, 이제는 비즈니스 목적에 따라 관계형(SQL)과 비관계형(NoSQL) 중 적절한 플랫폼을 설계하는 눈을 기를 수 있었습니다.
특히 Azure에서 제공하는 오픈 소스 DB 서비스들이 고가용성과 보안을 기본으로 제공한다는 점이 인상 깊었으며, 실습을 통해 MySQL Workbench로 직접 DB를 핸들링해 본 경험은 데이터 엔지니어링의 기초를 다지는 소중한 시간이었습니다.
다음 시간에는 이 데이터를 실제로 어떻게 쿼리하고 조작하는지 더 깊게 파고들어 보겠습니다!