Data & Information Management
데이터의 수집, 저장, 관리, 그리고 활용을 위한 아키텍처와 보존 전략을 정의하는 학습 노드입니다.
sys.entry
M
Me
hyunyoun's Blog
posts7 min read
1. Overview
데이터 및 정보 관리(Data & Information Management, DIM)는 디지털 자산의 영속성(Persistence), 정합성(Consistency), 그리고 가용성(Availability)을 보장하는 기술 체계를 다룹니다. 본 카테고리는 단순한 데이터 저장을 넘어, 현실의 복합 정보를 논리적으로 구조화하는 데이터 모델링, 방대한 데이터셋에서 필요한 값을 즉시 추출하는 질의 최적화, 그리고 거대 규모의 분산 환경에서도 데이터 무결성을 유지하는 엔진 구조를 탐구합니다.
CS2023의 Data Management and Information Management (DIM) 지식 영역과 DS-BoK의 데이터 관리 역량을 근간으로 삼아, 관계형 모델부터 현대적 NoSQL, 실시간 데이터 처리 인프라까지 체계적으로 다룹니다.
2. Scope & Boundaries
In-Scope
- 데이터 모델링(Data Modeling): 논리적 ER 모델링, 관계 대수 기초, 정규화(1NF~BCNF) 및 물리 스키마 설계.
- DBMS 엔진 인터널: 스토리지 엔진 구조(B+Tree, LSM-Tree), 실행 계획(Execution Plan) 분석, 버퍼 관리.
- 트랜잭션 및 동시성: ACID 원칙, 격리 수준(Isolation Levels), 다중 버전 동시성 제어(MVCC), 장애 복구(WAL).
- 분산 데이터 아키텍처: 리플리케이션, 샤딩(Sharding), 가용성 전략(Failover), CAP/PACELC 트레이드오프.
Out-of-Scope
- 데이터 분석 및 머신러닝: 통계 분석 기법 및 인공지능 모델 학습 과정 (11. MLAI 노드로 위임).
- 프론트엔드 시각화: 대시보드 UI 구현 및 차트 라이브러리 사용법 (12. HCIG 노드로 위임).
- 클라우드 인프라 자원 관리: DB 인스턴스 프로비저닝 및 네트워크 보안 설정 (10. CLIC 노드로 위임).
Boundaries
- DIM은 **'데이터를 어떠한 저장 구조로 관리하여 정합성과 성능을 양립할 것인가'**에 집중하며, 이를 통해 가공된 데이터에서 비즈니스 통찰을 도출하는 'Data Science' 영역과는 구분됩니다.
3. Counterexample
- 단순 SQL 문법 위주 학습: SELECT나 JOIN 문법을 아는 것은 단순한 활용 단계입니다. 질의가 하부 엔진에서 **중첩 루프 조인(NL Join)**을 수행하는지 **해시 조인(Hash Join)**을 선택하는지 실행 계획을 통해 진단하는 것이 DIM의 핵심입니다.
- DB를 마법의 저장소로 취급: 전원 차단 시에도 데이터가 보존되는 원리(fsync, Checkpoint)를 이해하지 못한 채 라이브러리 API만 호출하는 것은 '엔지니어링'이 아닌 '사용법 습득'에 불과합니다.
4. Prerequisites
- 자료구조와 알고리즘 (Basic): B-Tree, 해시 테이블, 정렬 알고리즘이 인덱싱 및 쿼리 처리의 근간입니다. (P1
) - 운영체제 (Recommended): 페이지 캐시 메커니즘과 디스크 I/O 스케줄링이 DBMS 성능에 미치는 영향 이해. (P1
) - 수리 논리 (Practical): 집합론과 관계 대수를 통한 질의 최적화 논리 전개 능력. (P1
)
5. Learning Map
- Relational Logic: 비즈니스 요구사항을 정규화된 관계형 테이블로 변환하는 논리 스키마 설계를 익힙니다. (P1
) - Polyglot Strategy: 데이터의 성격에 따라 최적의 NoSQL 모델(Document, Key-Value, Graph)을 선택하는 역량을 기릅니다.
- Distributed Consistency: 분산 환경에서의 리플리케이션, 합의 알고리즘(Raft), 그리고 데이터 정합성 메커니즘을 이해합니다.
- Information Governance: 메타데이터 관리, 데이터 계보 추적, 그리고 규제 준수를 위한 거버넌스 체계를 정립합니다.
- Ingestion Pipelines: 이종 시스템 간의 안정적인 데이터 수집(CDC) 및 변환(ETL/ELT) 파이프라인을 설계합니다.
- Storage Physics: 파일 시스템 인터널, SSD FTL 기전, 그리고 고성능 NVMe I/O 최적화를 학습합니다.
- Lakehouse Architecture: 데이터 레이크의 유연성과 웨어하우스의 정합성을 결합한 현대적 클라우드 데이터 플랫폼을 구축합니다.
- Analytics Modeling: 차원 모델링(Star Schema)과 dbt 기반의 엔지니어링을 통해 신뢰할 수 있는 비즈니스 통찰을 도출합니다.
6. Learning Topics
Basic
Core Topic 01: 관계형 데이터 모델과 정규화 (Relational Model & Normalization)
- Why to Learn: 설계 결함으로 인한 데이터 이상 현상(Insertion/Delete/Update Anomaly)을 방지하여 자산의 무결성을 지키기 위함입니다.
- What to Learn:
- Concepts: 엔티티와 관계, 함수 종속성, 정규형(1~3NF, BCNF), 참조 무결성.
- Skills: 도메인 요구사항에서 ERD 도출하기, 비정규화된 테이블의 중복 제거 가이드 작성.
- Tools: ERD 설계 도구(draw.io, dbdiagram.io), SQL DDL.
- Trade-offs: 정교한 정규화(무결성) vs 성능을 위한 비정규화(조인 비용 감소).
- How to Learn:
- 1단계: 복잡한 수강 신청 시스템이나 쇼핑몰 주문 데이터를 받아 직접 테이블 분해 과정을 수행합니다.
- 2단계: 특정 정규형을 위반했을 때 데이터 수정 과정에서 발생하는 모순 상황을 시뮬레이션합니다.
- Implement: 데이터 무결성이 완벽히 보장된 실제 서비스 도메인 스키마 설계서.
Recommended
Core Topic 02: 인덱싱과 질의 최적화 (Indexing & Query Optimization)
- Why to Learn: 대규모 데이터셋(수백만 건 이상)에서도 밀리초(ms) 단위의 응답성을 보장하는 고성능 데이터 서비스를 구현하기 위해서입니다.
- What to Learn:
- Concepts: B+Tree 인덱스, LSM-Tree, 커버링 인덱스, Clustered vs Non-clustered, 조인 방식(Nested Loop/Hash).
- Skills:
EXPLAIN도구로 쿼리 실행 경로 읽기, 비효율적인 Full Table Scan 지점 식별. - Tools: pgAdmin visual explain, MySQL slow query log.
- Trade-offs: 읽기 성능 향상을 위한 인덱스 추가 vs 쓰기 성능 저하 및 저장 공간 소모.
- How to Learn:
- 1단계: 인덱스가 없는 테이블과 있는 테이블에서 동일한 쿼리의 처리 속도를 비교 측정합니다.
- 2단계: 복합 인덱스(Composite Index)의 컬럼 순서가 질의 성능에 미치는 영향을 실험합니다.
- Implement: 특정 슬로우 쿼리를 진단하고 인덱스 튜닝으로 성능을 5배 이상 개선한 리포트.
Practical
Core Topic 03: 트랜잭션 및 고도의 동시성 제어 (Transactions & Concurrency)
- Why to Learn: 수천 명이 동시에 접근하는 환경에서 결제 누락이나 재고 불일치 등의 데이터 사고를 완벽히 차단하기 위함입니다.
- What to Learn:
- Concepts: ACID 원칙, 격리 수준(RC, RR, Serializable), 낙관적/비관적 락(Lock), MVCC(Multi-Version Concurrency Control).
- Skills: Deadlock 발생 상황 재현 및 해소, Phantom Read와 같은 고립성 위반 케이스 검증.
- Tools: PostgreSQL
pg_stat_activity, 트랜잭션 추적 로그. - Trade-offs: 완벽한 격리(Serializable)를 통한 정합성 보장 vs 전체 시스템의 처리량(Throughput) 저하.
- How to Learn:
- 1단계: 동시에 같은 레코드를 수정하는 시나리오를 작성하여 Lost Update 현상이 어떻게 복구되는지 확인합니다.
- 2단계: MVCC가 어떻게 락 없이 읽기/쓰기를 병행 가능하게 하는지 실제 스토리지 레이어를 탐구합니다.
- Implement: 고시성(Concurrency) 하에서도 데이터 정합성을 유지하는 안전한 결제 처리 코드 패턴.
Advanced
Core Topic 04: 분산 아키텍처와 저장소 경제학 (Distributed DB & Storage Economics)
- Why to Learn: 단일 서버의 한계를 넘어 무한히 확장 가능하고(Scale-out) 데이터 유실 위험이 극도로 낮은 엔터프라이즈 환경을 구축하기 위함입니다.
- What to Learn:
- Concepts: CAP 이론, 분산 합의(Raft), 리플리케이션 지연, 샤딩(Sharding), 저장 계층화(Cold/Hot Storage).
- Skills: 대규모 트래픽 분산을 위한 샤딩 키 선정, 데이터 복제 지연 시간(Lag) 최적화.
- Tools: Redis Cluster, Cassandra, MongoDB Sharding internals.
- Trade-offs: 무한 확장을 위한 가용성 확보 vs 분산 환경에서의 강한 일관성 포기.
- How to Learn:
- 1단계: 분산 DB 클러스터에서 한 노드를 강제로 종료한 뒤, 데이터 복구 및 서비스 지속성을 테스트합니다.
- 2단계: 쓰기 위주 부하와 읽기 위주 부하 상황에서 각각 유리한 샤딩 전략을 분석합니다.
- Implement: 초당 만 건 이상의 입출력을 견디는 글로벌 스케일 분산 데이터베이스 아키텍처 설계안.
7. Terminology
8. References
Primary References
- [P1] CS2023: DIM — Data Management and Information Management.
- [P4] DS-BoK: DM — Data Management & Storage Infrastructure.
- [P5] SFIA v9: Data Management — 데이터 구조 설계 및 거버넌스 기술 역량.
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)로 이관하는 전략을 수립했는가?