초당 500,000+건 트래픽을 처리하는 카카오 면접관의 Redis
개발 · 프로그래밍 · 백엔드
초당 500,000+건 트래픽을 처리하는
카카오 면접관의 Redis 강의
Redis를 쓰긴 하는데, 왜 그렇게 설계해야 하는지는 설명하기 어렵죠. 이 강의는 명령어 암기가 아니라, 실제 트래픽 환경에서 어떤 구조를 고르고 그 Trade-off를 어떻게 읽어야 하는지를 다룹니다. 면접과 실무 양쪽에서 스스로 설명할 수 있는 기준을 만들어 드려요.
- 500,000+면접관이 다루는 초당 트래픽 규모
- 개념과 실습이 번갈아자료구조 하나를 배우면 바로 손으로 돌려 봅니다
- 5가지 자료구조String · List · Set · Hash · Sorted Set
이 강의는 Redis 기본 자료구조 다섯 가지와 싱글부터 클러스터까지의 환경 구성을 실습으로 익히는 입문자용 Redis 강의입니다. 현업 카카오 면접관이 정리한 커리큘럼 · macOS · Docker · Node.js 실습
이 강의가 시작된 이유
현직 카카오 면접관이 먼저 제안했습니다
아래는 실제 대화 내용입니다. "혼자 만든 Redis 강의로는 부족하다"며, 면접관이 직접 정리해 전달하겠다고 나섰어요.
그렇게 이 강의가 만들어졌습니다. 면접관이 "직접 정리해서라도 알려주고 싶다"고 한 바로 그 내용이에요.
“
Redis 모르는 사람은,
면접에서 저는 절대 안 뽑습니다.
현직 카카오 서버 개발자 · 면접관12년차 · 초당 500,000+건 트래픽 환경
이런 순간, 있으셨죠
Redis, 쓸 줄은 아는데 설명은 막힙니다
Redis(레디스)는 데이터를 메모리에 두는 인메모리 데이터 저장소(in-memory data store)로, 캐시·세션·큐·순위표처럼 백엔드(backend)의 속도와 안정성을 좌우하는 자리에 쓰입니다. 명령어는 손에 익었는데 "왜 이 구조인가"를 물으면 말문이 막힙니다. 문제는 명령어가 아니라 그 뒤의 판단이에요.
- Redis를 쓰고는 있지만, 왜 그렇게 설계했는지 설명하기 어렵다
- 면접에서 Redis 질문이 나오면 늘 얕은 답변에 그친다
- 캐시를 단순 기능으로만 쓰고, 구조나 Trade-off는 고민해 본 적이 없다
- 싱글·레플리카·센티널·클러스터, 언제 뭘 골라야 하는지 기준이 없다
- 실무에서 Redis 장애나 성능 이슈를 겪었거나, 겪을까 늘 불안하다
같은 질문, 다른 답변
"Redis 환경 구성 패턴을 설명해 주세요"
면접관이 자주 던지는 이 질문 하나로 지원자의 깊이가 갈립니다.
면접관: Redis 환경 구성 패턴을 설명해 주세요.
"아… 네 잠시만요. 제가 알기로는 싱글, 레플리카, 센티널, 샤딩 클러스터 네 가지로 구성되어 있습니다."
외운 목록을 나열하고 끝. 왜 그 구조가 나왔는지, 각각 무엇을 해결하는지는 이어지지 않습니다.
면접관: Redis 환경 구성 패턴을 설명해 주세요.
"싱글은 단일 인스턴스라 메모리 한계와 고가용성을 보장하기 어렵습니다. 그래서 레플리카 구조가 나왔지만, 마스터 재선정이 수동이라는 문제가 남습니다. 이를 자동화하려고 센티널이 등장했고, 규모가 더 커지면 데이터를 나눠 담는 샤딩 클러스터로 갑니다…"
구조가 왜 등장했는지, 무엇을 해결하고 어떤 Trade-off가 남는지를 하나의 흐름으로 설명합니다. 암기가 아니라 이해예요.
저 AFTER 답변, 여러분도 할 수 있습니다
구조가 왜 등장했는지부터 짚으면, 외운 목록이 아니라 흐름으로 답하게 됩니다.
지금 시작하기환경 구성 패턴
싱글 · 레플리카 · 센티널 · 클러스터는 무엇이 다른가요
Redis 환경 구성은 크게 네 가지입니다. 뒤로 갈수록 앞 구조가 남긴 문제를 하나씩 해결합니다. 이 순서를 이해하면 면접에서 나열이 아니라 흐름으로 답할 수 있습니다.
-
싱글
인스턴스 하나로 운영합니다. 구성이 단순한 대신 메모리 한계가 있고, 장애가 나면 고가용성을 보장하기 어렵습니다. -
레플리카
마스터를 복제해 읽기를 나눕니다. 다만 마스터가 죽었을 때 재선정이 수동이라는 문제가 남습니다. -
센티널
그 수동 재선정을 자동화합니다. 마스터 장애를 감지해 레플리카를 새 마스터로 승격합니다. -
클러스터
데이터를 해시 슬롯 단위로 여러 노드에 나눠 담는 샤딩 구조입니다. 단일 노드의 메모리 한계를 넘어야 할 때 갑니다.
수강 후 얻는 것
이 강의가 남기는 다섯 가지
- Redis를 "쓴다"가 아니라 "왜 그렇게 써야 하는지"를 설명할 수 있는 시야
- 면접 질문에 암기가 아닌 구조와 Trade-off로 답하는 실전 답변력
- 싱글·레플리카·센티널·클러스터를 상황별로 선택하는 기준
- 실무에서 잘못된 Redis 사용을 미리 피하는 사고 방식
- 캐시로만 쓰던 Redis를 세션·큐·랭킹까지 걸친 서비스 핵심 컴포넌트로 설계하는 판단
자료구조 지도
Redis 자료구조는 언제 무엇을 쓰나요
Redis의 기본 자료구조는 String, List, Set, Hash, Sorted Set 다섯 가지입니다. 값의 자료형에 따라 할 수 있는 일이 달라집니다. 이 강의는 자료구조마다 개념을 짚은 뒤 곧바로 실습으로 이어집니다.
-
String
가장 기본이 되는 타입. 실제 Redis 사용 패턴의 80%가 여기에 해당합니다. -
List
순서가 있는 값의 나열. BLPOP으로 대기하는 Blocking 방식의 우선순위 큐를 만듭니다. -
Set
중복을 허용하지 않는 집합. 중복 제거와 포함 여부 판정에 씁니다. -
Hash
필드-값 묶음. 상황에 따라 String보다 메모리를 효율적으로 쓸 수 있습니다. -
Sorted Set
점수로 정렬되는 집합. 게임 랭킹과 리더보드가 대표 사례입니다.
커리큘럼
Redis 강의 커리큘럼
이론과 실습이 짝을 이룹니다. 자료구조마다 개념을 짚고 곧바로 실습으로 손에 익혀요.
섹션 1. 강의 소개
- 강의 소개 · 미리보기
- Source Code
- Redis 관련 유용한 Page · 미리보기
섹션 2. Redis 입문
- 모든 회사에서 Redis는 다 쓰던데, 넌 대체 뭐야?
- Redis의 다양한 Cluster 환경 설계 기법
섹션 3. 기본 자료구조 · 명령어 · 실습
- Redis 사용 패턴의 80%는 String 타입이다
- [실습] 테스트 환경 구축 및 String
- Blocking을 활용한 우선순위 큐, Redis List
- [실습] Redis List 실습 및 BLPOP Debug
- 중복을 허용하지 않는 Redis Set
- [실습] 중복을 허용하지 않는 Redis Set
- String보다 메모리 효율적일 수 있는 Redis Hash
- [실습] Redis Hash
- 게임 랭킹·리더보드를 위한 Redis Sorted Set
- [실습] Sorted Set
섹션 4. 실무적인 관점에서의 Redis 주의사항 & Memory Persistence
- 실무에서 놓치기 쉬운 Redis 사용 주의사항과 영속화 전략을 다룹니다.
섹션 5. Redis를 전문가처럼 사용하기 위한 개념 및 실습
- 단순 활용을 넘어, 전문가의 사용 패턴과 개념을 실습과 함께 익힙니다.
섹션 6. Redis 환경설정 Master Section
- 환경 구성을 직접 다뤄 보며 설정 관점까지 마스터합니다.
다루는 기술 · 실습 환경
무엇으로 실습하나요
- Redis
- String
- List
- Set
- Hash
- Sorted Set
- JavaScript
- Node.js v23.11.0
- Docker 28.0.0
- backend
- macOS (M3)
모든 실습은 Docker로 Redis 환경을 띄워 진행합니다. 예제는 JavaScript(Node.js)로 작성해 백엔드(backend) 관점에서 다루고, macOS 기준으로 정리했으며, 자료구조마다 개념 강의 뒤에 실습이 바로 이어집니다.
채용 시장의 현실
채용 공고 세 곳, 전부 Redis를 요구합니다
백엔드 채용 공고 세 곳을 그대로 가져왔습니다. 요구 기술 목록에 Redis가 들어 있습니다.
공고에 적힌 자료구조 이름을 외우는 건 어렵지 않습니다. 어려운 건 그다음입니다. 왜 그 구조를 골랐고 무엇을 포기했는지 물었을 때, 이어서 답할 수 있느냐가 갈립니다.
누가 가르치나요
현업 서버 개발자 · 면접관이 함께 만들었습니다
이 강의는 판교 플랫폼 서버 개발자 Hong과, 카카오 본사 12년차 서버 개발자이자 면접관인 Choi가 함께 만들었습니다.
지식공유자 · 판교 플랫폼 서버 개발
Hong
판교에서 플랫폼 서버 개발을 담당하고 있습니다. 직접 공부한 방법과 실무에서 마주치는 문제·해결책을 나누려고 지식공유자 활동을 이어가고 있어요. 강의는 혼자가 아니라 현업의 여러 개발자와 함께 만듭니다.
- 인프런 지식공유자 · 백엔드 강의 다수 운영
- [前] 블록체인 · 메타버스 백엔드 개발
- [現] 판교 플랫폼 서버 개발자
Kakao · 12년차 서버 개발자 · 면접관
Choi
카카오 본사에서 서버 개발과 면접관을 함께 맡고 있는 12년차 개발자입니다. 일반적인 플랫폼보다 훨씬 큰 트래픽과 경험을 강의에 녹여, 면접에서 실제로 자주 나오는 질문을 기준으로 준비할 수 있게 도와드립니다.
- [現] 카카오 본사 서버 개발자 · 면접관
- 초당 500,000+건 규모의 트래픽 환경 경험
- 실전 면접 질문 기반의 관점·개념 정리
먼저 들은 분들의 후기
"그냥 코더가 아니라, 진짜 개발자"
"단순히 명령어를 입력하는 걸 넘어서, 인프라 환경에서 주의해야 하는 부분과 해시슬롯 관점까지. 그냥 코더가 아닌 진짜 개발자가 뭔지, Redis에서 진짜 개발자는 어떤 부분을 알아야 하는지 알려주는 강의라고 생각합니다."
— 에이미
"설 기념으로 한번 결제해서 봤는데 생각보다 많이 배웠습니다. 이게 진짜 실력 있는 개발자였군요… 많이 부끄럽네요 ㅠㅠ 감사합니다!"
— 02년생 개발자
"실습을 거의 대부분으로 진행하시고, 내용은 간결하고 현실적으로만 알려주십니다. Redis에만 딱 집중해서, 기본을 탄탄하게 잡을 수 있는 강의예요."
— warna
이런 분께 추천해요
이 Redis 강의는 누구를 위한 강의인가요
- 이직·이력서를 준비하며 백엔드 면접의 Redis 질문을 대비하는 개발자
- Redis를 캐시 용도로만 써 왔고, 세션·큐·랭킹까지 넓혀 보고 싶은 개발자
- 운영 중인 서비스의 Redis 구성을 누가 정했는지도 모른 채 물려받은 개발자
- 주니어를 리뷰하거나 기술 면접에 들어가야 해서, 설명할 수 있는 수준이 필요한 개발자
반대로, 싱글·레플리카·센티널·클러스터의 차이와 각각의 Trade-off를 지금 바로 설명할 수 있다면 이 강의는 필요하지 않습니다.
자주 묻는 질문
Redis 강의 자주 묻는 질문
Redis는 어떤 데이터베이스인가요?
Redis는 데이터를 디스크가 아니라 메모리에 두는 오픈소스 인메모리 데이터 저장소(in-memory data store)입니다. 그래서 읽기·쓰기가 매우 빠르고, 캐시·세션·순위표·큐처럼 백엔드(backend)의 속도와 안정성을 좌우하는 자리에 널리 쓰입니다. 단순 캐시를 넘어 서비스의 핵심 컴포넌트로 다루는 게 이 강의의 관점이에요.
Redis는 왜 빠른가요?
데이터를 디스크가 아닌 메모리에 두기 때문입니다. 대신 메모리는 유한하고 프로세스가 내려가면 사라지기 때문에, RDB·AOF 같은 영속화 전략과 메모리 사용 패턴을 함께 이해해야 합니다. 섹션 4에서 실무 주의사항과 함께 이 Trade-off를 다룹니다.
실습 환경은 어떻게 구성하나요?
Docker 28.0.0으로 Redis 환경을 직접 띄워 진행합니다. 예제 코드는 JavaScript(Node.js v23.11.0)로 작성하고, macOS(M3) 기준으로 정리했어요. 별도의 유료 클라우드 결제 없이 로컬에서 전부 실습할 수 있습니다.
Redis(레디스) 입문자도 이 강의로 따라갈 수 있나요?
네. 난이도 입문 강의로, String·List·Set·Hash·Sorted Set 같은 기본 자료구조부터 개념과 실습을 함께 짚습니다. 기본적인 프로그래밍 경험만 있으면 충분합니다. 기본 자료구조는 처음 보는 분도 따라올 수 있게 짚고, 후반의 환경 구성과 전문가 사용 패턴은 실무 경력자에게도 새로운 내용입니다.
싱글·레플리카·센티널·클러스터, 언제 뭘 쓰나요?
각 구조가 왜 등장했고 어떤 Trade-off가 있는지를 상황별 선택 기준으로 다룹니다. 명령어 암기가 아니라, 실제 트래픽 환경에서 어떤 구성을 골라야 하는지를 스스로 설명할 수 있게 만드는 게 목표예요.
Redis 센티널과 클러스터는 무엇이 다른가요?
목적이 다릅니다. 센티널은 고가용성을 위한 구조로, 마스터 장애를 감지해 레플리카를 새 마스터로 자동 승격합니다. 데이터는 여전히 한 벌입니다. 클러스터는 확장을 위한 구조로, 데이터를 해시 슬롯 단위로 여러 노드에 나눠 담습니다. 장애 대응이 문제면 센티널, 단일 노드의 메모리 한계가 문제면 클러스터입니다.
Redis를 이미 실무에서 쓰고 있는데도 들을 이유가 있나요?
명령어를 쓰는 것과, 왜 그 구조를 골랐는지 설명하는 건 다른 일입니다. 위 BEFORE/AFTER의 질문에 지금 바로 답할 수 있다면 이 강의는 필요하지 않습니다. 답이 막힌다면 그 지점을 채우는 강의입니다.
Redis 면접 질문, 이 강의로 준비할 수 있나요?
네. 위 BEFORE/AFTER에 나온 "Redis 환경 구성 패턴을 설명해 주세요" 같은 실제 면접 질문을, 구조가 왜 등장했고 무엇을 포기했는지로 답하는 흐름으로 다룹니다. 암기한 목록이 아니라 근거를 갖춘 답변을 만드는 게 목표예요.
Redis 강의 커리큘럼은 어떤 순서인가요?
Redis 입문과 클러스터 환경 설계 개요로 시작해, 기본 자료구조를 개념 강의와 실습으로 번갈아 익히고, 실무 주의사항과 영속화, 전문가의 사용 패턴, 환경설정 순으로 이어집니다. 수강기한은 무제한입니다.
개발자 오픈 채팅방
커리어와 현업 상황, 기술을 나누는 개발자 오픈 채팅방을 운영하고 있어요. 강의를 들으며 궁금한 점이나 실무 고민을 편하게 나눠 보세요.