profile image

L o a d i n g . . .

728x90

"필수 DBMS 상식(필D상)" 포스트 시리즈는 DBMS를 사용하는 개발자라면 반드시 알아야 하는 DBMS 상식에 대해 다룹니다. 이 시리즈는 단순한 정보 전달을 넘어, DBMS가 내부적으로 어떻게 동작하는지와 개발자의 시각에서 DBMS의 동작 방식을 바라보는 방법 등을 다룹니다.

DBMS는 Database Management System의 약자로, 일반적으로 데이터베이스라고 불리지만 사실상 데이터베이스와는 엄연히 다른 개념입니다. 데이터베이스는 구조화된 정보 또는 데이터의 조직화된 모음으로서 디스크에 저장되는 반면, DBMS는 이러한 데이터베이스의 데이터를 효율적으로 관리하기 위해 사용되는 소프트웨어입니다.

 

시리즈 목차는 다음과 같습니다. 

Part 1. 단일 프로세스 DBMS 

Part 1에서는 단일 프로세스에서 동작하는 DBMS에 대해 다양한 개념을 다룹니다. 이를 위해 상용 DBMS인 MySQL을 해부하고, 다양한 DBMS 개념에 대해 상세히 설명합니다.

 

Chapter 1. 실제 DBMS 사례를 통해 기본 개념 익히기

  • MySQL 아키텍처 
  • MySQL Redo Log & Checkpoint
  • MySQL MVCC(Multi-Version Concurrency Control) 

Chapter 2. 알면 알수록 좋은 DBMS 기능의 동작원리 

  • 조인(Join)의 종류 
  • 트랜잭션(Transaction)은 내부적으로 어떻게 동작할까? 
  • 복구(Recovery) 

 

Part 2. 분산환경 DBMS 

분산 환경에서의 DBMS는 단일 프로세스에서 동작하는 것과는 달리 다양한 실패 시나리오가 발생할 수 있습니다. 이러한 실패 시나리오는 네트워크 문제, 프로세스의 실패 등 다양한 불안정한 요인에 의해 발생할 수 있습니다. Part 2에서는 이러한 분산 환경에서 DBMS가 데이터를 어떻게 저장하고, 실패 시나리오에서 어떻게 동작하는지, 그리고 데이터를 일관성 있게 처리하는 방법에 대해 자세히 설명합니다.

 

Chapter 3. 데이터는 어떻게 나눌까? 

  • 파티셔닝(Partitioning) 
  • 샤딩(Sharding) 

Chapter 4. 실패 대응은 어떻게 해야 돼? 

  • 실패 탐지(Failure Detection) 
  • 리더 선출(Leader Election) 

Chapter 5. 일관성과 복제를 유지하는 방법 

  • CAP이론과 그 한계 
  • 일관성(Consistency) 
  • 복제(Replication) 

Chapter 6. 어떻게 분산환경은 일관성을 유지할까? 

  • 안티 엔트로피(Anti-Entropy) 
  • 가십 프로토콜(Gossip Protocol) 

Chapter 7. 분산 트랜잭션 

  • 2 Phase Commit 
  • 3 Phase Commit 
  • 그 외 분산 트랜잭션을 구현한 DBMS 

Chapter 8. 분산 시스템에서 합의를 도출하는 방법 

  • Broadcast 
  • Paxos 
  • Raft 
  • Byzantine Consensus 
728x90
복사했습니다!