8기 백엔드 데이터베이스 스터디 '우아박스터디'
DB 내부 동작 원리 이해 : MySQL의 아키텍처와 엔진 동작 원리를 깊이 있게 파악한다.
실험 기반 문제 해결 경험 축적 : "왜?"라는 질문에 대해 실제 데이터와 지표로 답을 찾는다.
성능 최적화 능력 키우기 : 쿼리 실행 계획을 분석하고 병목을 해결하는 능력을 기른다.
RealMySQL 8.0 책을 바탕으로 학습 및 실습 진행
각 주차 주제에 맞춰 이론 학습 + 실습 으로 진행한다.
실험 결론을 도출할 때, 이론 학습 내용 바탕으로 작성한다.
이론 학습 내용, 실습 방법은 Github에 정리한다.
수업은 매주 화요일 16시 에 진행한다. (최대 2시간)
선생님
스터디 전까지 주제에 맞는 챕터를 골라 공부하고, 수업 내용을 정리한다.
학생들이 읽어와야 할 챕터를 주말 전까지 공지한다.
실습이 필요하다면, 이론 내용을 바탕으로 미리 실험을 설계하고 진행하여 수업 때 차질이 없도록 한다.
스터디 후, 이론 요약과 실험에 대해 파일로 정리해 PR을 제출한다.
순서 : 라이 → 봉구스 → 티모 → 서여
학생
분류
설명
벌점
챕터 선정 지각
학생들이 읽어올 챕터 선정을 금요일 이후에 함
1/4 우아박
준비 미흡
수업 준비가 미흡
1/2 우아박
준비 X
수업 준비가 안 됨
2 우아박
분류
설명
벌점
준비 미흡
선생님이 정한 챕터를 안 읽어옴
1/2 우아박
Phase 1 — 네트워크 I/O & 실행 계획 (1~4주차)
주차
주제
챕터
세부 내용
실험 과제
결과물
링크
1주차
MySQL 아키텍처 & 실행 계획
MySQL 전체 구조 이해 및 EXPLAIN 사용하여 실행 계획 확인
MySQL/스토리지 엔진 역할 이해, 쿼리 처리 흐름 파악, EXPLAIN 주요 지표 해석법
10만 건 데이터 생성 후 인덱스 유/무에 따른 실행 계획(type, rows 변화) 비교
아키텍처 요약 및 실행 계획 분석 문서
1주차 - MySQL 기본 구조와 실행 계획 1주 차 - 실험 정리
2주차
인덱스 기본
인덱스 구조
B-Tree 구조, 클러스터드 인덱스 vs 세컨더리 인덱스
인덱스 유/무 조건별 성능 비교
쿼리 성능 변화 정리
2주차 - 인덱스 기본 2주차 - 인덱스 기본 실습
3, 4주차
옵티마이저
옵티마이저 정렬 실행 방식 및 쿼리 실행 방식
Order by, 쿼리 실행 방식
컬럼 순서 바꿔 가며 실행 계획 비교
실행 계획 차이 분석
3주차 - 옵티마이저 정렬 실행 방식 및 쿼리 4주차 - 인덱스 실전
5주차
커버링 인덱스
커버링 인덱스
Covering Index 개념, InnoDB 세컨더리 인덱스 구조, 복합 인덱스를 활용한 커버링 인덱스 설계
SELECT * vs 필요한 컬럼만 조회 비교, 복합 인덱스 커버링 인덱스 적용
인덱스 적용 기준 정리
5주차 - 커버링 인덱스
주차
주제
챕터
세부 내용
실험 과제
결과물
링크
6주차
JOIN 구조
옵티마이저 / JOIN
Nested Loop Join 동작 원리, 조인 순서 결정 방식
조인 순서 변경 전후 성능 비교
성능 차이 분석
7주차
쿼리 튜닝
쿼리 최적화
WHERE vs HAVING 차이, 서브쿼리 vs JOIN 비교
느린 쿼리 직접 개선해 보기
튜닝 전/후 비교
8주차
정렬 / 그룹핑
ORDER BY / GROUP BY
filesort 발생 조건, GROUP BY 동작 원리
인덱스 적용 전후 정렬·집계 성능 비교
실행 계획 분석
9주차
실전 튜닝
종합
다양한 쿼리 최적화 패턴 종합
성능 2배 이상 개선 쿼리 찾아 튜닝
튜닝 사례 정리
Phase 3 — 트랜잭션 & 동시성 (9~12주차)
주차
주제
챕터
세부 내용
실험 과제
결과물
링크
10주차
트랜잭션
트랜잭션
ACID 원칙, Isolation Level 종류와 차이
Isolation Level 별 동작 비교 실험
결과 비교 정리
11주차
락
InnoDB 락
Row Lock / Gap Lock / Next-Key Lock 개념
UPDATE 충돌 상황 직접 재현
락 발생 상황 정리
12주차
동시성 문제
트랜잭션 심화
Lost Update, Phantom Read 발생 원인
문제 상황 직접 재현 및 원인 파악
문제 원인 분석
13주차
동시성 해결
락 전략
낙관적 락 vs 비관적 락 트레이드오프
version 컬럼으로 낙관적 락 직접 구현
해결 방식 비교
Phase 4 — 설계 & 마무리 (13~16주차)
주차
주제
챕터
세부 내용
실험 과제
결과물
링크
14주차
DB 설계
데이터 모델링
정규화 원칙, PK/FK 설계 전략
실제 서비스 ERD 직접 설계
ERD 제출
15주차
대용량 설계
확장 전략
인덱스 전략, 읽기/쓰기 분리 개념
테이블 구조 병목 찾고 개선안 도출
설계 개선안
16주차
성능 개선 프로젝트
종합
실서비스 시나리오 기반 종합 최적화
쿼리 튜닝 + 인덱스 설계 통합 적용
프로젝트 결과
17주차
발표 / 면접 대비
정리
스터디 전체 회고, 경험 언어로 정리하기
튜닝 사례 발표 준비
발표 자료