Service
home
WOW Onboarding
home
🌴

고급 백엔드 스터디 소개

 스터디 소개

스터디 주제
백엔드 엔지니어에게 필요한 데이터베이스 심화 지식을 배우는 스터디예요.
데이터베이스 인터널스’ 서적의 전반부 내용인 ‘파트 1. 스토리지 엔진’을 함께 학습하며, 현존하는 모든 DBMS에서 사용되는 알고리즘과 개념, 세부 이론을 배워요.
실무에서 사용되는 다양한 데이터베이스의 근간이 되는 지식들을 습득하여, 탄탄한 기본기를 갖춘 백엔드 엔지니어로 성장할 수 있어요.
자세한 내용은 스터디 개요 및 FAQ 섹션을 참고해주세요.
학습 목표
1.
스토리지 엔진 및 데이터 저장 구조 (Ch 1, 3)
메모리/디스크 기반 DBMS, 파일 포맷, 인코딩, 페이지 구조 등
2.
B-Tree 마스터하기 (Ch 2, 4, 6)
B-Tree 구조, 구현(페이지 헤더, 노드 분할/병합, 리밸런싱), 변형 B-Tree 등
3.
트랜잭션 처리 및 동시성 제어 (Ch 5)
트랜잭션, 버퍼 관리, 회복 기법, 동시성 제어
4.
로그 구조 스토리지 (Ch 7)
LSM 트리 구조 및 구현, 로그 스태킹
멘토 소개: 안재현
백엔드 엔지니어 안재현입니다. 유우비트라는 닉네임으로 활동하고 있습니다. 현재 4학년 휴학 후, 에프아이솔루션에 재직 중입니다. (blog)
에프아이솔루션 백엔드 엔지니어 (24.01 - current)
GDGoC Hongik 개발팀 와우디벨로퍼스 팀장 (23.12 - current)
IT연합동아리 디프만 14기 ‘10MM’ 백엔드 파트 (23.11 - 24.04)
GDSC Hongik 1기 리드 (22-23)
멘토 소개: 조상욱
컴퓨터공학과 조상욱입니다. 4학년 재학 중입니다.
GDGoC Hongik 개발팀 BE팀(2024.01 ~ current)
GDGoC Hongik 1기 Core Member
GDGoC Hongik 24-1, 25-1 개발 입문 스터디 멘토
멘토 소개: 권찬
컴퓨터공학과 4학년 권찬입니다.
다양한 내용을 공부하고 블로그에 기록으로 남기는 것을 좋아합니다.
GDGoC Hongik 25-1 백엔드 파트리드
GDGoC Hongik 개발팀 BE (24.09 ~ current)
GDSC Hongik 24-2 초급 백엔드 스터디 멘토
CEOS 19기 ‘AZITO’ 백엔드 파트 (24.03 ~ 24.08)
멘토 소개: 김성훈
컴퓨터공학과 김성훈입니다.
학습한 내용을 함께 나누는 것을 좋아하는 주니어 개발자 입니다. (Blog)
GDGoC Hongik 기초 백엔드 스터디 멘토 (24년 2학기)
에프아이솔루션 백엔드 엔지니어 (25.01 - current)
GDGoC Hongik 개발팀 BE (25.03 - current)

 스터디 개요

왜 ‘데이터베이스 인터널스’를 공부해야 할까요?

기술 컨퍼런스 가보셨나요?
예전에는 ‘우리 이 정도까지 챌린징한 거 해’의 상징이었던 Kafka와 EDA, 분산락 이야기가 빠지지 않는 MSA, 클라우드 네이티브 등의 주제들이 어느샌가 진부하다는 말을 듣기 시작했고, 이제는 AI/ML과 백엔드 엔지니어링의 통합이 중요한 어젠다로 떠오르고 있습니다. 이러한 변화의 중심에는 변함없이 데이터베이스가 자리하고 있습니다. 어찌 보면 당연한 일입니다. 환경이 변하고, 새로운 기술이 나오고, AI 혁신이 우리가 일하는 방식을 바꿔놓아도, 우리 백엔드 엔지니어들은 여전히 데이터를 조회하고, 저장하고, 처리하는 일들을 하고 있습니다. JSON 상하차라는 말은 우리가 하는 일의 근원에 가까운 말일지도 모릅니다.
전통적인 RDBMS는 각각의 비즈니스 도메인이 요구하는 다양한 문제를 해결하기엔 어려웠습니다. 수평 확장(흔히 샤딩이라고도 합니다) 같은 걸 예시로 들 수 있겠죠. 2012년 NoSQL 기반 짧은 레이턴시와 무제한 확장이 가능한 DynamoDB가 등장했습니다. 다만 관계형 모델의 장점을 포기해야 했습니다. 2014년 RDBMS의 장점을 취하면서도 여전히 수평 확장이 용이한 CockroachDB가 등장했습니다. 한편 기존 MySQL 샤딩을 확장하여 수평 확장을 처리하는 Vitess도 존재합니다.
그렇다면 여러분에게 익숙할 AWS RDS는 어떨까요? RDS는 DB 자체에서 샤딩을 지원하지 않습니다. 그래서 애플리케이션 레벨에서 샤딩을 직접 구현해야 했습니다. 하지만 지난 24년 11월 (비록 서울 리전은 지원하지는 않지만) Aurora Limitless Database가 출시되면서 매우 손쉽게 샤딩을 사용할 수 있게 되었습니다.
이러한 사례는 하나의 일면일 뿐입니다. 아마 여러분들은 백엔드 엔지니어로서 앞으로 흥미로운 사례들을 자주 마주하게 될겁니다. 시스템 디자인 인터뷰에서 자주 등장하는 트위터 피드 기능 설계, ‘Discord가 수조 개의 메시지를 저장하는 방법’ 에서 등장한 (MongoDB →) Apache Cassandra → ScylaDB 마이그레이션 사례, ‘Vitess를 통한 슬랙 데이터 저장소 확장하기’, CockroachDB를 사용하는 쿠키런 킹덤의 글(링크) 같이요.
실무에서는 전통적인 RDBMS는 물론, 쿠키런 킹덤처럼 해당 도메인의 요구사항에 따른 특정한 유형의 DB를 사용하게 되는 경우가 많습니다. 또, 디스코드의 사례처럼 비즈니스 요구사항이 바뀌면서 다른 DB로 마이그레이션하는 경우도 생깁니다. 한편 Aurora Limitless Database처럼 새로운 기능을 갖춘 DB가 등장한다면, 기술 동향을 파악하기 위해 특징들을 알아야 하는 상황이 오기도 하죠.
여러분들이 당장 이 모든 DBMS에 대해서 알아야 한다는 것은 아닙니다. 그럴 수도 없고, 그럴 필요도 없습니다. 업무에 필요해지거나, 개인적인 궁금증이 들 때 잠깐 알아보는 정도로도 충분합니다. 하지만 이런 상황에서, 모든 개념들을 밑바닥부터 배워야 한다면 큰 부담이겠죠? 이 책은 현존하는 모든 종류의 DBMS에서 사용되는 알고리즘과 개념, 그리고 세부 구현에 대해서 다루고 있는데요, 이를 통해 실무에서 사용되는 데이터베이스의 근간이 되는 지식들을 미리 습득할 수 있습니다.
가령 7장의 로그 구조 저장소와 LSM Tree는 위에서 언급한 DynamoDB, Apache Cassandra와 같은 키-값 데이터베이스의 기본 아키텍처를 이해하는 데 필수적입니다. 한편 이 스터디에서 다루지는 않지만, 2부 10장의 리더 선출 / 14장의 Raft 합의 알고리즘은 CockroachDB가 분산 환경에서 일관성을 보장하는 방법에 대해 잘 설명합니다. 기본 중의 기본인 B-Tree와 트랜잭션 / 병행 제어에 대한 내용도 빼놓을 수 없습니다.
이 스터디를 통해 급변하는 기술 환경에서도 흔들리지 않는 기본기를 갖출 수 있기를 바랍니다.
4월 29일에 뵙겠습니다!

 스터디 일정

전체 일정
15주간 진행되며,
매주 화요일 21시 00분 ~ 22시 30분디스코드에서 온라인으로 진행됩니다.
시험 기간
6월 3일부터 6월 16일까지는 기말고사 준비 기간으로 쉬어갑니다.

고급 백엔드 스터디 커리큘럼

커리큘럼
날짜
주차
스터디 주제
스터디 범위 (원서 기준)
키워드
2025/04/29
스토리지 엔진 소개 및 DBMS 아키텍처 개요 (pt.1 - Ch.1.3)
• Part I. Storage Engines (pp. 19 - 26) (8p) • Chapter 1. Introduction and Overview (10p) ◦ Introduction and Overview (pp. 27 - 28) (2p) ◦ DBMS Architecture (pp. 29 - 32) (4p) ◦ Memory- Versus Disk-Based DBMS (pp. 33 - 36) (4p)
Storage Engine, DBMS Architecture, Process Model, Memory-Based DBMS, Disk-Based DBMS, Durability
2025/05/06
데이터 저장 방식 비교 및 파일/인덱스 구조
• Chapter 1. Introduction and Overview ◦ Column- Versus Row-Oriented DBMS (pp. 37 - 44) (8p) ◦ Data Files and Index Files (pp. 45 - 51) (7p) ◦ Buffering, Immutability, and Ordering (pp. 52 - 53) (2p) ◦ Summary (pp. 54 - 55) (2p)
Row-Oriented, Column-Oriented, Wide Column Stores, Data Layout, Data Files, Index Files, Primary Index, Buffering, Immutability, Ordering
2025/05/13
B-Tree 기본 및 디스크 기반 구조 (Ch.2.1 - Ch2.4.4)
• Chapter 2. B-Tree Basics ◦ B-Tree Basics (pp. 56 - 56) (1p) ◦ Binary Search Trees (pp. 57 - 62) (6p) ◦ Disk-Based Structures (pp. 63 - 68) (6p) ◦ Ubiquitous B-Trees (pp. 69 - 78) (8p) ◦ B-Tree Hierarchy ◦ Separator Keys ◦ B-Tree Lookup Complexity ◦ B-Tree Lookup Algorithm
Binary Search Tree (BST), Tree Balancing, Disk-Based Storage, HDD, SSD, On-Disk Structures, B-Tree, Node, Leaf, Internal Node, B-Tree Hierarchy, Separator Keys, Lookup Complexity, Lookup Algorithm
2025/05/20
B-Tree 연산 및 파일 포맷 기초 (Ch.2.4.5 - Ch.3.3)
• Chapter 2. B-Tree Basics ◦ Ubiquitous B-Trees (pp. 79 - 84) (8p) ◦ Counting Keys ◦ B-Tree Node Splits ◦ B-Tree Node Merges ◦ Summary (pp. 85 - 85) (1p) • Chapter 3. File Formats ◦ File Formats (pp. 86 - 86) (1p) ◦ Motivation (pp. 87 - 88) (2p) ◦ Binary Encoding (pp. 89 - 94) (6p)
B-Tree Key Counting, Node Splits, Node Merges, File Format, Binary Encoding, Primitive Types, Variable-Size Data, Bit-Packing, Endianness
2025/05/27
페이지 구조 및 관리
• Chapter 3. File Formats ◦ General Principles (pp. 95 - 96) (2p) ◦ Page Structure (pp. 97 - 97) (1p) ◦ Slotted Pages (pp. 98 - 100) (3p) ◦ Cell Layout (pp. 101 - 102) (2p) ◦ Combining Cells into Slotted Pages (pp. 103 - 104) (2p) ◦ Managing Variable-Size Data (pp. 105 - 106) (2p) ◦ Versioning (pp. 107 - 107) (1p) ◦ Checksumming (pp. 108 - 109) (2p) ◦ Summary (pp. 110 - 110) (1p)
Page Structure, Slotted Pages, Cell Layout, Pointer, Offset, Variable-Size Data Management, Versioning, Checksumming, Data Integrity
2025/06/02 → 2025/06/15
2025/06/17
B-Tree 구현 (페이지 헤더, 검색, 전파)
• Chapter 4. Implementing B-Trees ◦ Implementing B-Trees (pp. 111 - 111) (1p) ◦ Page Header (pp. 112 - 122) (11p) ◦ Binary Search (pp. 123 - 124) (2p) ◦ Propagating Splits and Merges (pp. 125 - 127) (3p)
Page Header, Magic Number, Sibling Links, Rightmost Pointers, High Keys, Overflow Pages, Binary Search, Indirection Pointers, Split Propagation, Merge Propagation, Breadcrumbs
2025/06/24
B-Tree 구현 (재조정, 추가, 압축, 유지보수)
• Chapter 4. Implementing B-Trees ◦ Rebalancing (pp. 128 - 129) (2p) ◦ Right-Only Appends (pp. 130 - 131) (2p) ◦ Compression (pp. 132 - 133) (2p) ◦ Vacuum and Maintenance (pp. 134 - 138) (5p) ◦ Summary (pp. 139 - 140) (2p)
Rebalancing, Right-Only Appends, Bulk Loading, Compression, Key Prefix Compression, Vacuum, Maintenance, Fragmentation, Page Defragmentation
2025/07/01
트랜잭션 처리 및 버퍼 관리
• Chapter 5. Transaction Processing and Recovery ◦ Transaction Processing and Recovery (pp. 141 - 143) (3p) ◦ Buffer Management (pp. 144 - 156) (13p)
Transaction, ACID, Recovery, Buffer Management, Buffer Pool, Caching Semantics, Cache Eviction, Page Locking (Pinning), Page Replacement Policies (LRU, Clock)
2025/07/08
복구 기법 및 동시성 제어 기초
• Chapter 5. Transaction Processing and Recovery ◦ Recovery (pp. 157 - 164) (8p) ◦ Concurrency Control (pp. 165 - 176) ◦ Serializability ◦ Transaction Isolation ◦ Read and Write Anomalies ◦ Isolation Levels
Recovery, Write-Ahead Logging (WAL), Log Semantics, Operation Log, Data Log, Steal/Force Policies, ARIES, Concurrency Control, Serializability, Transaction Isolation, Read/Write Anomalies, Isolation Levels
2025/07/15
동시성 제어 기법 (낙관적, MVCC, 비관적)
• Chapter 5. Transaction Processing and Recovery ◦ Concurrency Control (pp. 177 - 187) ◦ Optimistic Concurrency Control ◦ Multiversion Concurrency Control ◦ Pessimistic Concurrency Control ◦ Lock-Based Concurrency Control ◦ Summary (pp. 188 - 189) (2p)
Optimistic Concurrency Control (OCC), Validation, Multiversion Concurrency Control (MVCC), Snapshot Isolation, Pessimistic Concurrency Control, Lock-Based Concurrency Control, Two-Phase Locking (2PL), Deadlock Detection/Prevention
2025/07/22
B-Tree 변형 (Copy-on-Write, Lazy B-Tree, FD-Tree)
• Chapter 6. B-Tree Variants ◦ B-Tree Variants (pp. 190 - 190) (1p) ◦ Copy-on-Write (pp. 191 - 193) (3p) ◦ Abstracting Node Updates (pp. 194 - 194) (1p) ◦ Lazy B-Trees (pp. 195 - 200) (6p) ◦ FD-Trees (pp. 201 - 205) (5p)
B-Tree Variants, Copy-on-Write (CoW), LMDB, Lazy B-Trees, WiredTiger, Lazy-Adaptive Tree, FD-Trees, Fractional Cascading, Logarithmic Runs
2025/07/29
B-Tree 변형 (Bw-Tree, Cache-Oblivious B-Tree)
• Chapter 6. B-Tree Variants ◦ Bw-Trees (pp. 206 - 213) (8p) ◦ Cache-Oblivious B-Trees (pp. 214 - 217) (4p) ◦ Summary (pp. 218 - 219) (2p)
Bw-Trees, Latch-Free, Update Chains, CAS, SMOs, Consolidation, Garbage Collection, Cache-Oblivious B-Trees, van Emde Boas Layout
2025/08/05
로그 구조 저장소 및 LSM 트리
• Chapter 7. Log-Structured Storage ◦ Log-Structured Storage (pp. 220 - 221) (2p) ◦ LSM Trees (pp. 222 - 240) (19p)
Log-Structured Storage, LSM Trees, Memtable, SSTables, Compaction (Merging), Updates, Deletes (Tombstones), Lookups, Merge-Iteration, Reconciliation, Maintenance
2025/08/12
LSM 트리 증폭 현상, 구현 상세 및 비정렬 LSM
• Chapter 7. Log-Structured Storage ◦ Read, Write, and Space Amplification (pp. 241 - 242) (2p) ◦ Implementation Details (pp. 243 - 252) ◦ Sorted String Tables ◦ Bloom Filters, Skiplist ◦ Disk Access ◦ Unordered LSM Storage (pp. 255 - 259) (5p)
Read Amplification, Write Amplification, Space Amplification, RUM Conjecture, SSTable Format, Bloom Filters, Skiplist, Disk Access Patterns, Bitcask, WiscKey, Key-Value Separation
2025/08/19
LSM 트리 구현, 동시성, 로그 스태킹 및 파트 1 마무리
• Chapter 7. Log-Structured Storage ◦ Implementation Details (pp. 253 - 254) ◦ Compression ◦ Concurrency in LSM Trees (pp. 260 - 261) (2p) ◦ Log Stacking (pp. 262 - 266) (5p) ◦ LLAMA and Mindful Stacking (pp. 267 - 270) (4p) ◦ Summary (pp. 271 - 271) (1p) • Part I Conclusion (pp. 272 - 274) (3p)
LSM Tree Compression, Concurrency Control (LSM), Log Stacking, Flash Translation Layer (FTL), Filesystem Logging, LLAMA, Mindful Stacking, Open-Channel SSDs, Storage Engine Tradeoffs

스터디 진행 방식

스터디 주간 회고 WIL (Weekly-I-Learned) 작성
매주 배운 것들을 기록하고 공유하는 시간을 가집니다.
과제가 없는 주차라도, WIL은 기본적으로 꼭 작성 후 제출하셔야 합니다.
WIL은 마크다운 형식(md)으로 작성되어야 하며, 아래 형식은 정상적인 미션 WIL 제출로 인정되지 않습니다.
WIL 글자 수 2000자 미만
블로그 링크
멘토님이 모든 제출 기록을 꼼꼼히 확인하므로, 부정 제출 및 치팅은 지양해주세요!
자신이 이번 주차에 배운 내용을 깃허브 해당 주차 wil.md에 업로드하여 WIL 작성을 한번에 확인할 수 있도록 합니다.
과제 제출 방식
와우클래스를 통해서 과제 제출을 진행합니다.
자세한 사항은 아래 가이드라인을 확인해주세요!
과제 치팅 및 불성실 관련 수료 공지
과제 치팅의 경우, 제출한 WIL에 학습 내용과 무관하거나 과할 정도로 성의 없이 작성한 내용을 제출한 경우에 해당하며, 불성실 제출의 경우 WIL에 학습 내용을 작성했으나 총 자수가 2000자 이하인 경우에 해당합니다.
사안의 심각성에 따라 다음과 같은 패널티가 부과될 수 있습니다.
1) 수료증 미발급 2) 다음 학기 스터디 참여 제한

스터디 규칙

과제 인정 기준
해당 주차의 기한 내에 미션을 제출해야 n주차 과제 제출로 인정됩니다.
해당 주차의 미션은 다음과 같습니다.
= WIL 제출 (기본적인 과제)
질의응답
과제나 스터디에 대해 궁금한 점에 대해 별도로 답변을 드리지는 않지만 디스코드 #고급-백엔드-스터디에서 멤버들과 함께 논의할 수 있어요!
스터디 수료 기준
스터디 수료의 조건은 출석률 70% 이상입니다.
수료자에게는 공식 수료증이 발급되며, 다음 학기 회비를 할인해 드립니다.
우수 참여자
우수 참여자의 경우 다음 학기 회비 면제 쿠폰을 제공합니다.
우수 참여자 선정 기준
1.
스터디 출석을 성실하게 했는가?
2.
과제 제출을 성실하게 했는가?
3.
과제 작성이 우수한가?
커뮤니티 및 스터디 활성화에 기여하였는가?
(새로 알게 된 내용을 스터디 채널에 공유하거나, 스터디원들에게 도움이 될만한 질문을 올리는 등의 활동이 스터디 활성화에 해당합니다.)

FAQ

듣고 싶은데, 학기 중에 참여하기엔 부담스러울 것 같아요.

학기 중(5주) + 방학(10주)동안 진행되는 15주 과정과, 방학동안 진행되는 10주 과정이 있어요.
학기 중에 참여하기 어렵다면, 종강 이후 열리는 2차 모집 기간을 통해 10주 과정에 참여해도 돼요.
5주치 내용 중 ‘Ch 2. B-Tree Basics’만 알면, 나머지 10주 동안 다룰 내용을 충분히 소화할 수 있어요.
…그렇긴 하지만, 15주 과정에 참여하면 이런 점이 좋아요.
챕터 2는 이후 챕터를 이해하기 위한 최소한의 선수 지식이에요. 챕터 1과 3에도 이 책의 핵심적인 내용이 담겨있어요. 10주 과정에 참여하는 분이라면, 따로 시간을 내서 이 부분을 추가로 공부하기를 권장해요. 15주 과정에 참여하는 분이라면, 이런 번거로움 없이 커리큘럼을 따라가기만 하면 돼요.
우수 스터디원은 15주 과정 참여자 그리고 신규 학회원을 대상으로 선발해요. 다음 학기 회비 면제 쿠폰을 받을 수 있는 기회가 주어져요.

‘기초데이터베이스’ 전공과목과 어떤 관련이 있나요?

아래 기준표를 참고해주세요.
스터디에서 다루지 않지만, 기디비에서 다루는 내용: SQL, 모델링 및 설계(ERD, 정규화)
스터디에서 다루고, 교수님에 따라 기디비에서도 다루는 내용: B-Tree
스터디에서도 다루고, 기디비에서도 다루는 내용: 트랜잭션 처리 및 동시성 제어
스터디에서만 다루는 내용: 로그 구조 스토리지
기디비는 데이터 모델링 / 정규화 / SQL / 관계 대수 등을 기본적인 내용을 다루며, 본 스터디는 스토리지 엔진에 대한 기술적 구현 및 트랜잭션 이론에 대해 더 깊게 다룰 예정이에요.
자세한 내용은 ‘스터디 개요’를 참고해주세요.

누가 수강하면 좋나요?

백엔드 엔지니어로서, CS 면접 준비 전 DB 분야에 대해 깊게 공부하고 싶거나, 충분한 기본기를 쌓고 싶은 분들에게 추천드려요.
백엔드 분야가 아니더라도, 기초데이터베이스 수강 전 미리 난이도 있는 학습을 해보고 싶은 분들에게도 추천드려요.

스터디 난이도가 궁금해요.

기디비 수강 여부 및 데이터베이스 분야에 대한 이해도에 따라 달라요.
먼저 도서 자체의 난이도는 전공서와 비슷하거나 더 어려워요.
이러한 난이도를 고려하여 매주 스터디 분량을 10 ~ 20페이지 사이로 여유롭게 구성했어요.
아래 기준표를 참고하시면 좋아요.
기디비를 수강했고, 백엔드 관련 경험이 충분하다면 → 주 3시간 투자 권장
기디비를 수강했지만, 아직 부족한 점이 많다면 → 주 5시간 투자 권장
기디비를 수강하지 않고, 예습 차원 수강이라면 → 주 8시간 투자 권장 (4시간 * 2일)

책을 사야 하나요?

한글 번역본의 경우 직접 구매해야 해요.
스터디는 원서 기준으로 진행돼요.
용어 차이 정도이기에, 번역본 / 원서 차이에 대해 걱정하지 않아도 돼요.

더 궁금한 점이 있어요.

수강이 고민되거나, 궁금한 점이 있다면 디스코드 DM으로 편하게 물어보세요.
안재현(@uwoobeat)로 DM 보내주시면 확인 후 시간이 날 때 답장 드릴게요.