답을 외우는 사람에서,
답을 만드는 사람으로.
Redis 한 도구를 끝까지 파는 4주. 명령어가 아니라 ‘내가 이 자리에 있었다면 어떻게 풀었을까’를 직접 풀어내는 자리입니다.
Redis 명령어는 써봤지만 “왜 이렇게 설계됐나”엔 답 못 하는 3~7년차 백엔드를 위한 4주.
4주 후 손에 들어오는 건 단 두 가지 —
Redis 깊은 지식 + 문제해결 능력.
현장에서 *시니어와 갈리는 두 자리*. 둘 다 한 도구를 끝까지 판 사람만 가져갈 수 있는 자리예요.
왜 싱글 스레드인가, 왜 자료구조를 *서버*로 들어올렸나 (Antirez 사상). Skiplist는 왜 위 확률 1/4인가, Listpack은 어떻게 메모리를 아끼나, AOF·RDB는 왜 둘 다 두었나, Cluster는 왜 16384 슬롯인가 (내부 결정). 4주가 끝나면 *"Redis 좀 안다"*가 아니라 *"Redis 설계 결정 4개를 본인 언어로 풀어낼 수 있다"*가 손에 들어옵니다. 인터뷰·시스템 디자인 라운드에서 인용 가능한 깊이.
Strong vs Eventual, 메모리 vs 영속성, 일관성 vs 가용성, 단순함 vs 운영성 — 각 축에서 *Redis가 어디에 섰나*를 본 다음, 본인 시스템 앞에서 마주칠 같은 축의 결정에 *나는 어디에 설지*를 정리할 수 있게 됩니다. Redis 한 도구를 끝까지 판 결과가, Kafka·DB·MQ 다음 도구 앞에서도 그대로 작동하는 사고 흐름이에요. *이게 시니어와 갈리는 자리*입니다.
PDF가 아니라 본인이 직접 깎아낸 한 장 — 그게 이 4주의 결과물입니다. 아래는 이 두 가지가 어떻게 만들어지는지의 이야기예요.
저도 3년차 때, 회의에서 한 마디도 못 했어요.
팀장이 "이 캐시 인코딩 listpack으로 갈까 hashtable로 갈까?" 물으면, "음, 케이스 바이 케이스죠" 식 빈 말로 모면했어요. 결정은 다 시니어가 내고, 저는 노트북만 봤습니다.
문제는 답을 모른 게 아니었어요. Antirez가 어떤 문제 자리에서 자료구조 서버라는 점프를 했는지, 그 자리에 제가 다시 서 있었다면 어떻게 풀었을지 — 이 사고 흐름이 머릿속에 없으니 회의에서 비교가 안 됐던 거예요.
그래서 1개 기술을 끝까지 파봤습니다. 답을 외우는 게 아니라, 답에 도달하는 사고 흐름을 자기 것으로 만드는 길로요.
4주 후, 회의에서 "이 자리에 있었다면 저는 다른 길도 봤을 텐데, Redis가 이 길을 고른 이유는…"으로 의견을 냈습니다. "오, 디테일 잡혔네"라는 한 마디를 들었어요.
이 4주는 그 사고 흐름을 같이 합류한 동료들과 같이 걷는 시간이에요. 답을 보기 전에 본인 가설부터 적고, Redis의 실제 답을 룸 전체가 같이 펼쳐 읽으며 결정마다 멈추고, 다른 길은 어떻게 무너졌을지 같이 봅니다.
맞는 분, 솔직히 잘 맞지 않을 수도.
- ✓Redis 명령어는 써봤지만 "왜 Skiplist냐"에 답할 수 없는 3년차 백엔드
- ✓시스템 디자인 회의에서 침묵하는 자신을 자주 발견하는 분
- ✓단순 명령어 암기보다 왜·어떻게 결정되는가가 궁금한 분
- ✗이미 Redis 소스 레벨로 익숙한 시니어 — 이 4주는 좀 얕을 거예요
- ✗"면접 합격"이 단일 목표인 분 — 이 4주는 판단력을 같이 깎는 시간이라 면접은 부수효과
- ✗주당 6 ~ 9시간 투자가 어려운 시기인 분 — 다음 기수가 더 맞을 수 있어요
4주 라이브, 매주 목요일 저녁 8시. 정원 8명.
라이브 1주차가 2026년 5월 28일 (목) 저녁 8시에 시작합니다. 그 전에 사전 준비(Redis 한 번 켜 보기 + 아직 답이 안 보이는 질문 4줄 적기)를 한 번 해 둡니다. 일정 상세는 합류하신 분들께 따로 안내드립니다.
온라인 모임공간에서 매주 2시간 만납니다.
소수 정원이라 한 분 한 분 동료로 같이 깊게 가요. *2기 일정은 미정* — 이번 1기를 놓치면 언제 다시 열릴지 모릅니다.
사용법 강의는 어디든 있어요. 이 스터디는 사상까지 같이 따라가요.
역사 · 내부 · CS, 같이 깊이 파고드는 세 축이에요.
역사·철학
Antirez는 왜 그 선택을 했을까요? 싱글스레드, 자료구조 서버, 메모리 우선 — 사상의 결을 따라가요.
"Sometimes the most reasonable thing you can do is the simplest one."
— Salvatore Sanfilippo (Antirez)
내부 구조·불변식·실패모드
Redis 컴포넌트 책임 분배 도해, 보장하는 불변식, 깨질 때 나오는 신호와 복구 경로. 시스템 디자인 lens로 본체를 따라가고, 소스는 결정의 증거로만 짧게 인용해요.
Skiplist · Quicklist · Listpack · Cluster 16384 slot · PSYNC2 backlog
— Redis 내부 결정의 표면들
CS 브릿지
Pugh 1990(Skiplist), Lamport, Reactor 패턴, Monte Carlo 샘플링. 교과서·원논문이 실물에 붙는 순간을 봐요.
"Skip Lists: A Probabilistic Alternative to Balanced Trees"
— William Pugh, 1990
탄생 → 깊이 → 생존 → 확장. Redis가 세상에 나와 자리 잡기까지의 네 자리를, 매주 한 자리씩 본인 손으로 걷습니다.
라이브에 들어오기 전에 Redis 를 본인 손으로 한 번 켜고 만져 봅니다. Docker 한 줄로 전체를 띄우고 PING · SET · GET · EXPIRE 를 직접 쳐 본 그 자리에서, 책 4장 redis.conf 의 60여 옵션을 펼쳐 본 그 자리에서 — 아직 답이 안 보이는 질문 네 줄을 적어 둡니다. 4주가 끝나면 이 네 줄의 답을 본인이 자기 손으로 적게 됩니다.
자료구조 서버라는 점프 — Memcached가 안 풀어준 것
Antirez 가 2009년 LLOOGG 에서 RDB 가 무릎 꿇는 자리에 섰을 때, 자료구조 자체를 서버 안에 둔다는 발상으로 점프했습니다. 그 자리에 본인이 다시 서서 가설을 적어 봅니다.
- ·Memcached 가 풀지 못한 문제는 무엇이었나 — flat KV의 한계는 어디서 드러나는가
- ·단일 스레드라는 결정의 conviction — 멀티스레드로 갔다면 어디가 무너졌을 것인가
- ·Strings · Lists · Hashes · Sets · ZSets — 왜 이 5개가 첫 cardinal types인가, 다른 묶음은 안 됐나
- ·본인 시나리오의 인코딩 임계치(-max-listpack-entries 등)를 어디서 끊을 것인가
Antirez 인용문 1쪽 정독 + 인코딩 임계치 한 줄 정리 — 본인이라면 어디서 끊을지·왜
단일 스레드 가게에서 정렬된 자료구조를 어떻게 만들까
실시간 랭킹을 RB-tree 로 만들면 락 경합이 폭발합니다. 단일 스레드 가게에서 *정렬된 자료구조*를 어떻게 만들 것인가가 이 주차의 문제예요. Antirez 는 Skiplist 라는 답을 골랐고, Pugh 1990의 확률적 평형 위에 그걸 세웠습니다.
- ·RB-tree 로 갔다면 단일 스레드 가게에서 정확히 어디가 막히는가
- ·Pugh 가 박은 확률 1/4 vs 1/2 — 두 선택지의 trade-off를 본인 손으로 벤치하면 어디가 갈리는가
- ·Dict 의 점진적 rehash 가 보장하는 latency 불변식은 무엇인가, 깨질 때 어떤 신호가 나오는가
- ·listpack ↔ quicklist 자동 전환의 임계치를 본인 시나리오에 어떻게 매핑할 것인가
Skiplist 레벨 확률 1/4 vs 1/2 trade-off 한 단락 정리 — 본인이라면 어디로 갈지·왜. (선택) 1/4 vs 1/2 직접 측정해 보기
단일 스레드 인메모리가 죽지 않게 살리기
죽으면 다 사라지는 인메모리 가게를 어떻게 멈춤 없이 살려 둘 것인가가 이 주차의 문제. 만료 정책 · 지속성 · 복제 가 같은 자리에 묶여 들어옵니다. fork · COW · backlog · WAL — OS 페이지 테이블과 만나는 자리예요.
- ·AOF / RDB / 둘 다 / 둘 다 아님 — 본인 시나리오의 RPO/RTO 는 어디에 박히는가
- ·fork COW 의 진짜 비용은 무엇인가, 본인 가게에서 RSS 가 어디까지 부풀 것인가
- ·만료(active 샘플링 vs passive 접근 시 정리) 정책의 trade-off — 한쪽으로만 가면 어디서 무너지는가
- ·복제 단절이 일어났을 때 backlog 크기가 얼마면 partial resync 가 살아나는가
AOF/RDB/둘 다/안 함 — 본인이 선다면 어디·왜 + RPO/RTO 근거 한 단락. (선택) Active expiration 동작 직접 확인 또는 fork COW RSS 직접 측정
단일 장애점을 벗어나면서 어디에 설 것인가 (MSA 다섯 자리)
단일 노드는 단일 장애점. 강한 일관성을 고집하면 캐시 시장을 잃습니다. MSA 의 어느 자리에 서고 어떤 trade-off 를 받아들일 것인가가 마지막 주차의 문제. 3주 누적 설계 판단을 한 번에 되짚으며 본인 좌표맵을 마무리합니다.
- ·16384 슬롯이라는 수는 어디서 왔나, 4096이나 65536으로 갔다면 무엇이 달라지는가
- ·Gossip vs Raft — 일관성과 운영 복잡도 사이에서 본인은 어디에 설 것인가
- ·Sentinel vs Cluster vs WAIT — 본인 SLA 와 어느 모델이 가장 정합인가
- ·MSA 다섯 자리(캐시 · 세션 · 큐 · 분산락 · Pub/Sub) 중 본인은 어디에 Redis 를 박을 것인가, 어디는 안 박을 것인가
- ·언제 Redis 를 쓰지 않을 것인가 — 의사결정 플레이북의 마지막 한 줄
3노드 Cluster 네트워크 분리 시 어디가 무너지는가 정리 + 4주 누적한 설계 판단 6개를 한 번에 되짚기 + CS 좌표맵 v1 캡처
라이브 120분, 한 문제를 두고 여섯 자리를 걷습니다.
답을 외우는 게 아니라 답에 도달하는 흐름을 손에 익히는 자리예요. 같은 문제 하나를 두고 120분 동안 여섯 번 멈춥니다 — 타자 치는 자리는 없습니다.
Memcached가 못 푼 문제 자리에 서기 — 1주차를 분 단위로 보면
4주 중 첫 주. Antirez가 2009년 LLOOGG의 실시간 로그를 RDBMS로 못 버틴 그 자리에 서서 flat KV의 한계 · 단일 스레드라는 결정 · 5개 cardinal types의 conviction을 직접 걸어 봅니다. 책 1·2·3장이 anchor이고, 라이브 전에 4장(redis.conf 60여 옵션)도 한 번 펼쳐 둬요. 2~4주차도 같은 골격으로 굴러갑니다.
2주차(깊이 · Skiplist) · 3주차(생존 · 만료/지속성/복제) · 4주차(확장 · MSA 다섯 자리)도 같은 흐름으로 굴러갑니다.
AI는 코드를 빨리 짜는 도구가 아니라,
본인 가설을 가장 먼저 비평해 주는 페어입니다.
학습자는 먼저 본인 가설을 적고 AI에게 “이 가설로 가면 어디가 막힐 것 같아”를 묻습니다. AI가 가설을 한 번 두드린 뒤, 그 가설을 들고 라이브로 가서 Redis의 실제 답과 맞춰 봅니다. (더 파보고 싶으면 라이브에서 같이 읽은 함수 주변을 Redis 소스에서 더 읽거나 본인 언어로 옮겨 보면 됩니다 — 따로 주는 자료 없이 Redis 코드 자체가 자료예요.) 학습자의 시간은 타자에 쓰는 게 아니라 판단을 내리는 자리에 씁니다 — 그게 그릿 AI 철학이에요. “AI에 더 의존하고, 더 좋은 퀄리티를 뽑아내는 것.”
이 책 한 권이 4주의 anchor 입니다.
라이브에 들어오기 전 한 주의 문제 자리를 책 위에서 먼저 보면 손이 잘 닿습니다. 매주의 무게중심 챕터는 이렇게 잡힙니다.
라이브의 메인은 매주 한두 챕터의 알맹이입니다. 나머지 챕터는 사전에 한 번 훑어 두고, 주중에 매일 5분 카드로 다시 가져가면 됩니다.
매주 이 흐름이에요. 4주 동안 28 ~ 44시간이 듭니다.
주당 6 ~ 9시간 × 4주 + 라이브 시작 전 사전 준비 2 ~ 4시간 = 총 26 ~ 40시간. 사전 → 라이브 → 사후 3단계가 4주 반복됩니다. 학습 지도 카드와 당신의 파이프라인이 함께 자라요.
주중 사전 (3 ~ 5시간)
- ·책 해당 파트 읽기 (~50쪽)
- ·*사전 가설 폼* 채우기 — 이번 주 wrestle 4~5개에 본인 답 가설을 책 읽으며 적어 라이브 전에 제출 (라이브 가설 슬롯에서 동료와 공유·비교). 사전 준비는 읽기 + 가설 적기까지 — 코드는 안 짜와도 됩니다.
목요일 저녁 8시, 2시간 — 전부 대화·도해·토론
- ·라이브 120분 = 6블록 — 직면 → 가설 비교 → Redis 답 같이 읽기 → 무너진 길 → 좌표 → 회고. 타자 치는 시간은 없습니다.
- ·시스템 디자인 lens 9패턴 — A 도해 / C 비교 / I 불변식 / F 실패모드 / B 측정 / D 결정 / L 강의 / T 토론 / R 코드 워크스루
- ·주차마다 패턴 조합이 다릅니다 (W1 = L+T+R+C+D · W2 = C+B+I+F+D · W4 = A+C+F+R+T 등)
- ·"답 다시 읽기" 슬롯에서 Redis의 핵심 코드를 룸이 같이 펼쳐 읽습니다 — 결정이 박힌 줄마다 멈춰 "왜 여기서 이렇게 했나 / 우리 가설대로면 어디가 달랐나"를 짚어요. 직접 짜는 건 라이브엔 없고, 하고 싶으면 사후 선택 과제로.
- ·발화 분포 — 퍼실 30% / 참가자 70%. 도해·코드 워크스루는 퍼실, 토론·결정은 참가자 주도
주중 사후 (1 ~ 2시간)
- ·학습 지도 카드 PR 제출 (주 1장 — 그 주 본 결정을 본인 좌표맵에 어떻게 박을지 정리)
- ·당신의 파이프라인 초안 → 보강본 갱신 (공식 자료와 당신 지도가 다른 부분 반영)
- ·Discord에서 동료의 PR에 코멘트 남기기
- ·*(선택)* 더 파보고 싶으면 — 라이브에서 같이 읽은 함수 주변을 Redis 소스에서 더 읽거나, 본인 언어로 옮겨 보기. 따로 주는 자료는 없어요 — Redis 코드 자체가 자료입니다. 안 해도 완주에 지장 없습니다.
4주 후 손에 들어오는 것은,
Redis 깊은 지식 + 시스템 디자인 판단력 — 두 가지뿐입니다.
그릿 모먼츠 동문은 로그인 시 자동 50% — 69,500원
- ① 인코딩 임계치 — 같은 자료를 listpack에 둘 것인가, hashtable로 넘길 것인가. 그 분기점을 어디서 끊을 것인가.
- ② Skiplist 위 확률 1/4 vs 1/2 — 정렬된 자료구조의 메모리·검색 trade-off. Antirez는 왜 1/4를 골랐는가, 본인이라면 어디로 갈 것인가.
- ③ 지속성 정책 — AOF·RDB·둘 다·둘 다 아님. 본인 시스템의 RPO·RTO는 어디에 박히는가.
- ④ 분산 모델 — Sentinel·Cluster·WAIT·Streams. 단일 노드를 벗어나면서 *어디에 설지*, 어떤 trade-off를 받아들일지.
1기는 2026년 5월 28일 (목) 저녁 8시에 시작하며, 합류하신 분들께 일정 상세를 따로 안내드립니다.
1주차 라이브 시작 전까지는 100% 환불됩니다. 1주차 라이브가 시작된 이후에는 환불이 불가합니다 — 4주가 한 흐름으로 묶인 스터디라 중간 정산이 안 돼요. 합류 전에 확신이 안 서면 결제 전 커피챗에서 맞는 자리인지 같이 봐 드립니다.
전자책만 따로 사고 싶으시면, 출간 후 「코기토 서재」에서 별도 안내드릴게요. 이 페이지는 스터디 합류 페이지로, 책은 스터디를 구성하는 한 부분이에요.
Redis 한 권을, 어디서부터 어디까지 다루느냐.
Antirez의 LLOOGG 시절 편지부터 Cluster 16384 slot 결정까지. 사상·내부·운영을 한 흐름으로 묶어 읽도록 짰습니다.
Antirez가 광고 분석 회사 LLOOGG에서 MySQL 한계에 부딪혀 키-값 저장소를 직접 만든 이야기, BSD → SSPL → AGPL 라이선스 변천, 그리고 7개 파트 전체 지도. 본체 들어가기 전에 왜·어디서 왔나를 깔아둡니다.
3부는 자료구조 (SDS·Skiplist·Quicklist·ZSET이 src/*.c 어디에 어떻게 짜여 있나). 4부는 지속성 (RDB vs AOF, fsync 정책의 트레이드오프). 5부는 분산 (Replication·Sentinel·Cluster의 일관성 모델).
5개 운영 시나리오 매뉴얼 (분산락·캐시 일관성·ZSET 폭주·TTL 폭탄·Pub/Sub → Streams). 각 시나리오에 어떤 Redis 컴포넌트·결정·트레이드오프가 박히는지. 학술 사실을 판단으로 바꿔보는 파트.
자주 묻는 질문.
라이브에서 코드를 직접 짜나요?+
아니요. 라이브 2시간은 전부 대화·도해·토론입니다 — 직면, 가설 비교, *Redis가 푼 코드를 룸이 같이 펼쳐 읽으며 결정마다 멈춤*, 무너진 길, 좌표, 회고. 타자 치는 시간은 없습니다. 더 파보고 싶으면 라이브에서 같이 읽은 함수 주변을 Redis 소스에서 직접 더 읽거나 본인 언어로 옮겨 보세요 (선택, 완주에 지장 없음).
C를 안 써봤어도 따라갈 수 있나요?+
네. 라이브에선 코드를 짜지 않으니 어떤 언어를 써왔든 상관없어요. C를 모르면 *오히려* 좋은 연습이 됩니다 — 모르는 언어로 쓰인 코드에서도 "여기서 무슨 결정을 했나"를 읽어내는 게 시스템 디자인 근육이니까요.
면접 대비용으로 사도 되나요?+
면접용 교재가 아닙니다. 4주 후 시스템 디자인 회의에서 *"내가 이 문제 자리에 있었다면 어떻게 풀 것인가"*로 의견을 낼 수 있게 되는 자리입니다. 면접 도움은 부수효과로 따라오지만, 표면적 사용법·면접 빈출 정리를 기대하셨다면 잘못 사신 거예요.
그릿 모먼츠 동문 할인은 어떻게 적용되나요?+
그릿 모먼츠를 완주하셨다면 *자동 50% 할인*입니다. 별도 코드 발급 없이 로그인하시면 결제 화면에 자동 적용됩니다. 커피챗도 면제예요 (이미 같은 결로 운영되는 분들이라).
쿠폰 코드가 있는데 어디서 입력하나요?+
신청 섹션 하단의 "또는, 바로 결제하기" 블록에 쿠폰 코드 입력칸이 있습니다. 코드 입력 → 적용 → 결제 화면에 할인된 금액으로 진행됩니다.
환불 되나요?+
*1주차 라이브 시작 전*까지는 100% 환불됩니다. 1주차 시작 이후에는 환불이 불가합니다 — 4주가 한 흐름으로 묶인 스터디라 중간에 끊어 정산이 안 돼요. 확신이 안 서면 결제 전 커피챗에서 맞는 자리인지 같이 봐 드립니다.
카드 할부 가능한가요?+
네, 가능합니다. 이니시스 카드사 기준 2~24개월 할부가 적용됩니다 (결제 시 직접 선택). 무이자 여부는 카드사 정책에 따라 다르므로 결제 전 카드사에 확인하시는 걸 권합니다.
책만 따로 살 수 있나요?+
네, 전자책 단품은 별도 단독 판매로 출시됩니다 (출간 후 「코기토 서재」에서 안내). 다만 이 페이지는 *스터디 합류* 페이지로, 책은 4주의 anchor예요 — 라이브에 들어오기 전 한 주의 문제 자리를 책 위에서 먼저 보는 구조가 본체입니다.
5월 28일 (목) 저녁 8시, 1기에 자리를 잡아 두세요.
정원 8명 한정. 2기 일정 미정 — 이번 자리만 확보 가능.
가격·환불·동문 50% 할인은 위 「가격 · 환불」 섹션에서 확인하실 수 있어요.
먼저 30분 대화로, 맞는 자리인지 같이 봅니다.
본인이 지금 막혀 있는 자리, 4주 동안 무엇을 손에 익히고 싶은지 듣고, 이 스터디가 본인에게 맞는 자리인지 같이 봐 드립니다. 합류 결정하시면 그 자리에서 결제 안내까지 드려요.
오픈채팅으로 커피챗 신청 →결제 옵션 불러오는 중…
4주 후 손에 남는 것은 PDF가 아니라,
새 시스템 앞에서 “내가 이 자리에 있었다면”으로 사고하는 본인입니다.
정원 8명 · 1기 시작 5월 28일 (목) 저녁 8시 · 2기 일정 미정.