콘텐츠로 바로가기

Data & Information Management

데이터의 수집, 저장, 관리, 그리고 활용을 위한 아키텍처와 보존 전략을 정의하는 학습 노드입니다.

Article
M

Me

hyunyoun's Blog

data-information-managementdatainformation-managementdatabasesdata-governancesecuritylearningapache-atlas9 min read

1. Overview

데이터 및 정보 관리(Data & Information Management, DIM)는 디지털 자산의 영속성(Persistence), 정합성(Consistency), 고가용성(High Availability)을 보장하는 기술 체계를 다룹니다. 이 카테고리는 데이터를 저장하는 행위를 넘어, 현실의 복합 정보를 논리적으로 구조화하는 모델링, 방대한 데이터셋에서 필요한 값을 빠르게 추출하는 질의 최적화, 대규모 분산 환경에서 장애를 다루는 엔진 구조를 탐구합니다.

CS2023의 Data Management and Information Management (DIM) 지식 영역과 데이터 엔지니어링 역량을 근간으로 삼아, 관계형 모델(RDBMS)부터 최신 NoSQL, In-Memory DB, 그리고 실시간 데이터 스트리밍 인프라(Kafka)까지 체계적으로 다룹니다.

과거의 DIM이 단일 노드 오라클 DB 튜닝에 집중했다면, 현대의 DIM은 페타바이트 규모의 **데이터 레이크(Data Lake)**와 분산 합의(Raft/Paxos) 기반의 클라우드 네이티브 데이터베이스 설계를 포괄합니다. OSSM(03)이 단일 머신의 자원을 관리한다면, DIM은 여러 머신에 흩어진 '상태(State)'의 일관성을 관리하는 심화 계층입니다.

2. Scope & Boundaries

In-Scope

  • 데이터 모델링(Data Modeling): 논리적 ER 모델링, 관계 대수(Relational Algebra), 갱신 이상과 정규화(1NF~BCNF), 반정규화(Denormalization) 전략.
  • DBMS 엔진 인터널: 스토리지 엔진 디스크 쓰기 구조(B+Tree, LSM-Tree, WAL), 쿼리 파싱 및 옵티마이저 실행 계획(Execution Plan) 분석, 버퍼 풀 캐시 관리.
  • 트랜잭션 및 동시성: 트랜잭션 ACID 특성 보장, 격리 수준(Isolation Levels)별 이상 현상(Dirty/Non-Repeatable/Phantom Read), 다중 버전 동시성 제어(MVCC), 락(Pessimistic/Optimistic).
  • 분산 데이터 아키텍처: 마스터-슬레이브 리플리케이션(Replication), 수평적 확장(Sharding/Partitioning), 가용성 전략(Failover), CAP 정리 / PACELC 모델 적용.

Out-of-Scope

  • 데이터 분석 및 머신러닝: 통계적 상관관계 분석, 회귀 모델 구축, AI 모델 훈련 과정 → 11. MLAI 노드로 위임.
  • 프론트엔드 데이터 시각화: D3.js 기반 대시보드 UI 구현 및 차트 렌더링 → 12. HCIG 노드로 위임.
  • 클라우드 DB 인스턴스 운영: AWS RDS, DynamoDB 프로비저닝, 네트워크 VPC/방화벽 설정 및 백업 정책 → 10. CLIC 노드로 위임.

Boundaries

  • DIM은 **'데이터를 어떠한 저장 구조(Storage Engine)로 관리하여 정합성(Consistency)과 성능(Latency)을 양립할 것인가'**에 집중합니다. 수집된 데이터를 알고리즘으로 가공해 비즈니스 통찰을 도출하는 영역은 데이터 사이언스(11. MLAI)로 정의합니다.
  • 데이터의 네트워크 전송 프로토콜 패킷 분석은 NC(08)에서 다루지만, 분산 DB 간 데이터 동기화 프로토콜(예: 2PC, Gossip)은 DIM의 관심사입니다.

3. Counterexample

  • 단순 SQL 문법 위주 학습: SELECTLEFT JOIN 문법의 작성법만 아는 것은 '조작(Manipulation)' 단계입니다. 작성된 질의가 엔진 내부에서 **중첩 루프 조인(NL Join)**으로 동작하는지, **해시 조인(Hash Join)**으로 동작하는지 힌트(Hint)와 인덱스 스캔 방식을 통해 제어하는 것이 DIM의 핵심입니다.
  • DB를 단순 저장소로 취급: 전원 차단 시에도 데이터가 보존되는 원리(Write-Ahead Logging, Checkpoint)나 페이지(Page) 단위의 디스크 I/O를 이해하지 못한 채 ORM(Object-Relational Mapping) API만 호출하면 N+1 문제와 병목을 유발합니다.
  • NoSQL 만능주의: "RDBMS는 낡았고 NoSQL이 빠르다"는 오해입니다. 데이터 간의 복잡한 관계와 정합성이 필수인 도메인(예: 금융 원장)에서는 RDBMS가 필수적이며, 시스템 성격(읽기 중심 vs 쓰기 중심, 데이터 스키마 유연성)에 따른 Trade-off 분석 없이 트렌드만 좇는 것은 지양해야 합니다.

4. Prerequisites

  • 자료구조와 알고리즘 (Basic): B-Tree 계열 검색 트리, 해시 테이블 구조 분석 경험, 디스크 블록 단위 정렬(External Sorting) 개념 이해. (P1)
  • 운영체제 및 시스템 메커니즘 (Recommended): 페이지 캐시(Page Cache) 동작 원리, 디스크 I/O 스케줄링(Random vs Sequential), 스레드 동기화(Mutex/Semaphore). (P1)
  • 수리와 컴퓨팅 논리 (Practical): 집합론 기초(합집합, 교집합, 카테시안 곱)를 통한 관계 대수 및 질의 튜닝 논리 전개 능력. (P1)

5. Learning Map

Sequence Core Cluster Objective & Description Evidence (BoK)
1 Relational Logic & Modeling 비즈니스 요구사항을 정규화된 관계형 테이블로 변환하는 논리 스키마 설계를 익히고, 데이터 갱신 이상을 방지하여 무결성을 확보합니다. P1
2 Indexing & Query Optimization B+Tree 인덱스 구조와 스토리지 엔진 메커니즘을 학습하고, 실행 계획 분석을 통해 대규모 데이터의 질의 성능(ms)을 개선합니다. P1
3 Transactions & Concurrency 동시성(Concurrency) 환경에서 ACID 원칙을 준수하고, 격리 수준 조정과 다중 버전 동시성 제어(MVCC)를 통해 데이터 정합성을 유지합니다. P1
4 Distributed Architecture & Storage CAP 이론과 분산 합의 알고리즘(Raft)을 기반으로 확장성(Scale-out) 있는 분산 데이터 아키텍처를 설계하고, 상황에 맞는 Polyglot 데이터베이스 전략을 구축합니다. Industry DB

6. Learning Topics

Basic

Core Topic 01: 관계형 데이터 모델과 정규화 (Relational Model & Normalization)

  • Why to Learn: 설계 결함으로 인한 데이터 갱신 이상(Insertion/Delete/Update Anomaly)을 수학적으로 방지하여, 시스템이 커지더라도 비즈니스 자산의 무결성(Integrity)을 지키기 위함입니다.
  • What to Learn:
    • Concepts: 엔티티와 관계(Entity-Relationship), 함수 종속성(Functional Dependency), 정규형(1NF~3NF, BCNF), 참조 무결성(Referential Integrity).
    • Skills: 도메인 요구사항에서 최소한의 중복을 갖는 논리적 ERD 도출, 읽기 성능 향상을 위한 의도적 반정규화(Denormalization) 설계.
    • Tools: ERD 설계 도구(draw.io, dbdiagram.io, ERwin), SQL DDL.
    • Trade-offs: 정밀한 정규화를 통한 쓰기 무결성 보장 및 중복 제거 vs 잦은 조인(Join) 연산으로 인한 읽기 성능 저하.
  • How to Learn:
    • 1단계: 복잡한 수강 신청 시스템이나 쇼핑몰 주문 데이터를 받아 엑셀과 같은 단일 테이블로 만든 뒤, 이를 3NF까지 직접 분해(Decomposition)하는 과정을 문서화합니다.
    • 2단계: BCNF를 만족하지 않는 테이블을 설계한 후, 갱신 이상(Anomaly)이 실제로 어떻게 발생하는지 SQL 삽입/수정 쿼리로 증명합니다.
  • Implement: 외래 키 제약 조건과 정규화 규칙이 적용된 실제 비즈니스 도메인 DDL 스크립트 설계서.

Core Topic 02: 인덱싱과 질의 최적화 (Indexing & Query Optimization)

  • Why to Learn: 데이터가 수백만 건 이상 쌓이는 프로덕션 환경에서도 밀리초(ms) 단위의 쿼리 응답성을 보장하여, I/O 병목으로 인한 서버 장애를 방지하기 위함입니다.
  • What to Learn:
    • Concepts: B+Tree 및 LSM-Tree 인덱스 구조, 클러스터링(Clustered) vs 넌-클러스터링 인덱스, 커버링 인덱스(Covering Index), 조인 알고리즘(Nested Loop, Hash, Sort-Merge).
    • Skills: EXPLAIN 실행 계획 분석, 랜덤 I/O를 유발하는 비효율적인 Full Table Scan 지점 식별 및 최적 인덱스 설계.
    • Tools: EXPLAIN ANALYZE, MySQL Slow Query Log, pgAdmin Visual Explain, perf.
    • Trade-offs: 인덱스 추가로 인한 읽기 성능 향상 vs 삽입/삭제 시 인덱스 트리 재정렬 비용(쓰기 성능 저하) 및 스토리지 공간 추가 소모.
  • How to Learn:
    • 1단계: 1천만 건의 더미 데이터가 있는 테이블에서 복합 인덱스(Composite Index)의 컬럼 순서를 달리하여 카디널리티(Cardinality)에 따른 쿼리 플랜 변화를 측정합니다.
    • 2단계: 조인 쿼리 실행 시 Hash JoinNested Loop Join이 각각 유리한 상황(예: 데이터 크기 차이)을 옵티마이저 힌트(Hint)를 주며 벤치마크합니다.
  • Implement: 프로덕션의 슬로우 쿼리를 식별하고, 실행 계획을 튜닝하여 디스크 I/O 비용을 10배 이상 줄인 성능 최적화 리포트.

Practical

Core Topic 03: 트랜잭션 및 고도의 동시성 제어 (Transactions & Concurrency)

  • Why to Learn: 수천 명이 동시에 접근하는 커머스나 금융 환경에서, 결제 누락이나 재고 마이너스 같은 데이터 사고를 엔진 수준에서 차단하기 위함입니다.
  • What to Learn:
    • Concepts: ACID 원칙, 격리 수준(Read Committed, Repeatable Read, Serializable), 낙관적/비관적 락(Lock), 다중 버전 동시성 제어(MVCC), Write-Ahead Logging(WAL).
    • Skills: 교착 상태(Deadlock) 로그 분석 및 해소, Phantom Read 및 Lost Update 등 고립성 위반 이상 현상 검증.
    • Tools: PostgreSQL pg_stat_activity, MySQL InnoDB Monitor, 트랜잭션 추적 로그.
    • Trade-offs: 강한 격리(Serializable)를 통한 높은 정합성 보장 vs 전체 시스템의 처리량(Throughput) 저하 및 데드락 증가.
  • How to Learn:
    • 1단계: 동시에 두 개의 세션에서 동일한 재고 레코드를 수정하는 트랜잭션을 실행하여, Lock 대기 현상과 Lost Update가 어떻게 방어되는지 관찰합니다.
    • 2단계: MVCC 메커니즘을 이해하기 위해, 트랜잭션 도중 다른 세션이 데이터를 변경하고 커밋(Commit)했을 때 언두 로그(Undo Log)를 통해 읽기 일관성이 유지되는 과정을 시연합니다.
  • Implement: 동시성 스트레스 테스트 환경 하에서도 재고 정합성을 유지하는 비관적/낙관적 락 처리 코드 패턴 시연.

Advanced

Core Topic 04: 분산 아키텍처와 데이터베이스 엔진 (Distributed DB & Internals)

  • Why to Learn: 단일 서버의 물리적 한계를 넘어 확장 가능하고(Scale-out), 재난 상황에서도 데이터 유실 위험을 낮추는 엔터프라이즈 데이터 파이프라인을 설계하기 위함입니다.
  • What to Learn:
    • Concepts: CAP 정리 및 PACELC 모델, 분산 합의 알고리즘(Raft/Paxos), 리플리케이션 지연(Replication Lag), 샤딩(Sharding) 및 파티셔닝 전략.
    • Skills: 대규모 트래픽을 고르게 분산시키기 위한 샤딩 키 선정(Consistent Hashing), 분산 트랜잭션(2PC, Saga) 설계.
    • Tools: Redis Cluster, Apache Kafka, Cassandra, ProxySQL.
    • Trade-offs: 수평 확장을 위한 분산 가용성 확보 vs 분산 트랜잭션으로 인한 강한 일관성(Strong Consistency) 유지 비용 증가.
  • How to Learn:
    • 1단계: 3대의 노드로 구성된 분산 DB(예: MongoDB Replica Set) 클러스터에서 프라이머리 노드를 강제로 종료(Kill)하고 리더 선출(Leader Election) 과정을 로그로 확인합니다.
    • 2단계: 쓰기 위주 부하(Write-heavy)와 읽기 위주 부하(Read-heavy) 상황에서 LSM-Tree 기반 DB와 B+Tree 기반 DB의 벤치마크 결과를 비교합니다.
  • Implement: 초당 만 건(10K TPS) 이상의 입출력을 처리하고 장애 복구(Failover)를 자동화한 글로벌 스케일 분산 데이터베이스 아키텍처 다이어그램 및 설계안.

7. Terminology

Term (EN / ko, abbr) 1문장 정의 단계(기본/권장/실무/심화) 역할/맥락 관련 개념 유사/대비/함께 사용 오해 포인트 Evidence(Primary/Secondary/Industry) Flags(core)
Normalization, 정규화 데이터 중복을 제거하여 릴레이션의 논리적 구조를 최적화하는 설계 프로세스입니다. 기본 무결성 Anomaly vs. Denormalization 단순히 성능을 높이기 위해 하는 것으로 오인(실제론 정합성 목적) Primary core
Consistency, 일관성(ACID) 트랜잭션 수행 전후에 데이터베이스가 미리 정의된 모든 무결성 규칙을 만족해야 함을 뜻합니다. 권장 신뢰성 Integrity vs. BASE 분산 시스템의 일관성(Consistency)과 용어 의미의 미묘한 차이에 주의 Primary core
MVCC 동일 레코드에 대해 여러 버전을 관리하여 읽기와 쓰기 간의 잠금을 최소화하는 기술입니다. 실무 동시성 Locking Read Committed 실제 물리 저장 공간에 구버전 데이터가 존재한다는 점을 간과함 Industry, MySQL core
CAP Theorem 분산 시스템은 일관성, 가용성, 단절 내성을 모두 같은 수준으로 제공할 수 없다는 이론적 한계입니다. 심화 확장성 Consensus PACELC 세 가지 모두를 동시에 달성할 수 있다고 믿는 오해 Industry core

8. References

Primary References

Secondary References

  • [DDIA] Designing Data-Intensive Applications — Martin Kleppmann (분산 시스템 실무의 정석).
  • [Database Internals] Alex Petrov — 스토리지 엔진과 인덱스 인터널의 심화 명세.

Industry References

  • [AWS Builders' Library] Database Caching Strategies — 대규모 분산 환경의 데이터 캐싱 실전.
  • [PostgreSQL Documentation] Performance Tips — 엔지니어링 최전선의 쿼리 튜닝 가이드.

9. Final Checklist

Primary Checklist

  • 비즈니스 도메인 명세로부터 중복과 갱신 이상이 없는 3정규형 이상의 물리 스키마를 도출했는가? (P1-DIM-DM)
  • 질의 실행 계획(EXPLAIN)을 읽고 인덱스 유실이나 비효율적인 조인 병목을 정확히 짚어낼 수 있는가? (P1-DIM-SF)

Secondary Checklist

  • 서비스 요구사항에 맞춰 트랜잭션 격리 수준을 조정하고, 발생 가능한 사이드 이펙트를 예측했는가?
  • 관계형 모델과 비관계형(NoSQL) 모델의 선택 트레이드오프를 데이터 모델의 유연성 관점에서 설명할 수 있는가?

Industry Checklist

  • 무중단 서비스를 보장하기 위한 리플리케이션 지연(Lag) 및 장애 복구(Failover) 프로세스를 설계에 반영했는가?
  • 데이터 수명 주기에 맞춰 오래된 데이터를 저비용 저장소(Cold Storage)로 이관하는 전략을 수립했는가?

Data & Databases · Data Governance & Security

6 / 6