금융 인프라를 운영하는 Toss 개발자의 Kubernetes
개발 · 프로그래밍 · 인프라
Pod에서 시작해 Istio · ArgoCD까지
직접 굴려 보는 Kubernetes 강의
이 강의는 Docker까지는 해봤지만 Kubernetes 앞에서 멈춘 백엔드 개발자를 위한 실습 중심 k8s 강의입니다. YAML 문법에서 시작해 Pod·Deployment·Service를 직접 띄우고, 배포 자동화와 Istio 확장 패턴까지 손으로 구성합니다.
- 확장개념에서 Istio 확장까지 한 흐름
- YAML에서 Istio까지거의 모든 시간이 실습으로 이어집니다
- Istio · ArgoCDPrometheus · Grafana 모니터링까지
금융 인프라를 운영하는 토스 현직 서버 개발자와 함께 구성한 커리큘럼
실습 환경은 macOS(Apple M3) · Docker Desktop
하나면 됩니다
이 강의가 시작된 이유
토스 개발자가 먼저 쿠버네티스를 꺼냈습니다
아래는 실제 대화 내용입니다. 바쁘던 토스 개발자가 여유가 생기자 다음 주제로 Kubernetes를 제안했어요.
그렇게 이 강의가 만들어졌습니다. 토스에서 금융 인프라를 운영하는 개발자가 "이건 다뤄야 한다"고 먼저 말한 주제예요.
지금 서 있는 자리
백엔드 개발자는 애플리케이션 코드만 작성하면 끝일까요
근무 환경에 따라 인프라를 직접 구축하기도 하고, 코드만 작성하기도 합니다. 그런데 커리어를 길게 놓고 보면 이 질문이 남습니다.
- 쿠버네티스를 써야 하는데 어디서부터 시작할지 막막하다
- Docker까지는 해봤는데 Kubernetes 단계에서 멈췄다
- 배포와 운영에 자신이 없어 인프라 얘기가 나오면 물러난다
- MSA 환경을 이해하지 못한 채 기능 개발만 반복하고 있다
코드만 작성하는 자리에 오래 머무는 것이, 커리어에서 장기적으로 맞는 선택일까요?
Why Kubernetes
Kubernetes는 무엇을 해 주는 플랫폼인가요
Kubernetes(쿠버네티스, k8s)는 컨테이너화된 애플리케이션을 자동으로 배포하고 확장하고 운영하기 위한 컨테이너 오케스트레이션 플랫폼입니다. 컨테이너를 실행하는 수준을 넘어 배포 전략, 장애 복구, 트래픽 분산, 리소스 관리를 하나의 플랫폼에서 해결합니다.
-
Self-healing
Kubernetes는 컨테이너나 노드에 문제가 생겨도 이를 감지하고 자동으로 복구합니다. -
Auto Scaling
Kubernetes는 트래픽 증가에 맞춰 애플리케이션을 자동으로 확장하고, 필요 없을 때는 줄입니다. -
Service Discovery
Kubernetes는 복잡한 네트워크 설정 없이도 서비스 간 통신과 트래픽 분산(Load Balancing)을 안정적으로 처리합니다. -
Declarative
Kubernetes는 "어떻게"가 아니라 "어떤 상태가 되길 원하는지"만 정의하면 그 상태를 유지합니다. 그 정의를 적는 문법이 YAML입니다. -
Cloud Native
Kubernetes는 특정 클라우드에 종속되지 않고 온프레미스부터 퍼블릭 클라우드까지 동일한 방식으로 운영할 수 있습니다.
공식 문서는 Kubernetes를 이렇게 설명합니다.
Kubernetes is an open source container orchestration engine for automating deployment, scaling, and management of containerized applications. The open source project is hosted by the Cloud Native Computing Foundation (CNCF).
Kubernetes는 컨테이너화된 애플리케이션의 배포, 확장, 관리를 자동화하기 위한 오픈 소스 컨테이너 오케스트레이션 엔진입니다. 이 오픈 소스 프로젝트는 Cloud Native Computing Foundation(CNCF)에서 호스팅합니다.
현대적인 백엔드 시스템은 더 이상 단일 서버, 단일 애플리케이션 구조가 아닙니다. 여러 마이크로서비스(MSA)가 서로 통신하고, 트래픽은 예측하기 어렵고, 장애는 언제든 발생합니다. 이 강의는 Kubernetes를 도구가 아니라 운영을 책임지는 infrastructure 플랫폼으로 다룹니다.
실제 강의 내용 맛보기
이런 장면을 다룹니다
설명보다 화면이 빠릅니다. 실제 강의 일부를 그대로 잘라 왔습니다.
Deployment를 활용한 Rolling Update서비스를 세워 둔 채로 버전을 바꿔 나가는 과정
Prometheus 및 Grafana를 활용한 로그 수집클러스터에서 무슨 일이 일어나는지 눈으로 확인
ArgoCD를 활용한 Public Repository 배포 자동화저장소에 올리면 클러스터가 따라오는 구조
채용 시장의 현실
실제 공고는 무엇을 요구하나요
백엔드 채용 공고를 그대로 가져왔습니다. 요구 기술 목록에 Kubernetes가 들어 있습니다.
이 강의의 특징
왜 이 Kubernetes 강의인가요
금융 인프라를 운영하는 토스 개발자와 함께 만들었습니다
현직 개발자와 함께 구성된 강의는 흔치 않습니다. 토스에서 실제로 Kubernetes를 쓰는 8년차 서버 개발자와 함께, 기본 틀부터 서비스 구성까지 실무 기준으로 짰습니다.
거의 모든 시간이 실습으로 이어집니다
인프라는 이론으로 다루기 좋은 주제지만, 직접 구성해 보는 것과는 차이가 큽니다. 이 강의는 개념 설명 뒤에 곧바로 클러스터를 띄우고 오브젝트를 만드는 실습이 붙습니다.
주니어에게는 차별점, 시니어에게는 기본기
"AWS로 인프라를 구성해 봤어요"에서 멈추면 설명할 수 있는 범위가 좁습니다. 현대적인 인프라 구축에서 Kubernetes는 빼고 말하기 어렵고, 이 내용을 아는 주니어와 모르는 시니어의 자리는 다릅니다.
로컬에서 시작해 Production 레벨까지 갑니다
Docker Desktop 버튼 하나로 만드는 로컬 클러스터에서 출발해, 서버를 직접 구동하며 인프라를 구성하는 단계까지 이어집니다. 배포 자동화와 Istio 확장 패턴이 마지막에 붙습니다.
이런 분께 추천해요
이 Kubernetes 강의는 누구를 위한 강의인가요
- 쿠버네티스를 써야 하는데 어디서부터 시작할지 막막한 개발자
- Docker까지는 해봤지만 Kubernetes 단계에서 멈춘 실무자
- 인프라 지식이 부족해 배포·운영에 자신이 없는 백엔드 개발자
- MSA 환경 이해 없이 기능 개발만 반복하고 있는 주니어 개발자
- 이직·면접 대비로 Kubernetes 실무 감각이 필요한 개발자
반대로 Pod와 Deployment의 차이, Service가 트래픽을 어떻게 넘기는지, Rolling Update가 무엇을 보장하는지를 지금 바로 설명할 수 있다면 이 강의는 필요하지 않습니다.
커리큘럼
Kubernetes 강의 커리큘럼
Kubernetes를 처음 배우는 개발자를 위한 순서로 구성돼 있습니다. Docker와의 관계에서 시작해 YAML, 핵심 오브젝트, 서비스 관리 패턴, 배포 자동화, Istio 확장까지 Part 1에서 4로 이어집니다.
섹션 1. 강의 소개
- 강의 소개
- Source Code
- 자주 사용되는 대표적인 쿠버네티스 명령어들
섹션 2. Part1. Kubernetes 개요 및 Docker와의 호환성
- 강의 환경 검증과 Docker 기본 개념 및 Kubernetes와의 연관 관계
- Docker Desktop을 활용하여 버튼 하나로 구성하는 Kubernetes 환경
- Kubernetes는 무엇이고, 왜 Docker만으로는 부족할까
섹션 3. Part1. Kubernetes의 근간이 되는 최소 및 핵심 지식
- Kubernetes의 기본 문법을 위한 YAML
- Kubernetes의 핵심이자 가장 기본적인 오브젝트 Pod
- Kubernetes의 핵심 Self-healing을 위한 Deployment
- Kubernetes의 도메인 접근을 위한 Service 핵심 오브젝트
- Kubernetes Production Level처럼 서버 직접 구동하며 인프라 구성하기
섹션 4. Part2. Kubernetes를 통한 서비스 관리 패턴
- 서비스를 세워 둔 채 관리하는 패턴을 실습으로 다룹니다.
섹션 5. Part3. Kubernetes 고급 패턴과 Public Repository를 통한 배포 자동화 실습
- 고급 패턴과 ArgoCD 기반 배포 자동화를 실습합니다.
섹션 6. Part4. Istio를 활용한 Kubernetes 확장 패턴
- Istio를 얹어 Kubernetes를 확장하는 패턴을 다룹니다.
다루는 기술 · 실습 환경
무엇으로 실습하나요
- Kubernetes
- k8s
- Pod · Deployment · Service
- YAML
- Istio
- ArgoCD
- Prometheus · Grafana
- Docker
- infrastructure
- MSA
- macOS (Apple M3)
Apple M3 Air 환경에서 Docker Desktop으로 진행합니다. Docker version 28.0.0 기준이며, 로컬에서 클러스터를 띄워 그대로 따라올 수 있습니다.
누가 만들었나요
이 강의를 함께 준비한 토스 개발자
토스 · 8년차 서버 개발자
Toss 개발자
8년차 백엔드 서버 개발자로 토스에서 금융 인프라를 운영하고 있습니다. 지방 대학에서 컴퓨터 공학을 전공했고 Java와 Spring을 메인 스택으로 쓰며 저수준 언어에도 관심이 많습니다. Hong과는 컨퍼런스에서 인연이 닿아 공동으로 강의를 촬영하고 있습니다.
- [現] 토스 서버 개발자
- [前] KT 서버 엔지니어
- [前] 넥슨 플랫폼 서버 개발자
자주 묻는 질문
Kubernetes 강의 자주 묻는 질문
Kubernetes(쿠버네티스)는 무엇인가요?
Kubernetes는 컨테이너화된 애플리케이션의 배포·확장·관리를 자동화하는 오픈소스 컨테이너 오케스트레이션 엔진입니다. 줄여서 k8s라고 씁니다. 컨테이너를 실행하는 것을 넘어 장애가 나면 스스로 복구하고, 트래픽에 맞춰 늘리고 줄이며, 서비스 간 통신과 부하 분산까지 한 플랫폼에서 처리합니다.
Docker만으로는 왜 부족한가요?
Docker는 컨테이너를 만들고 실행하는 도구입니다. 컨테이너가 여러 대의 노드에 흩어지고 수가 늘어나면 "누가 죽었을 때 다시 띄울지, 트래픽을 어디로 보낼지, 버전을 어떻게 갈아끼울지"를 사람이 감당하기 어려워집니다. Kubernetes는 그 운영을 선언형으로 대신합니다. 섹션 2에서 Docker와의 관계를 먼저 정리하고 넘어갑니다.
Pod · Deployment · Service는 각각 무엇인가요?
Pod는 컨테이너가 실제로 뜨는 가장 기본 단위이고, Deployment는 그 Pod를 몇 개 유지할지 선언해 두면 죽었을 때 다시 띄워 주는 오브젝트(Self-healing)입니다. Service는 계속 바뀌는 Pod들 앞에 고정된 접근 지점을 두어 트래픽을 넘겨 줍니다. 섹션 3에서 이 셋을 순서대로 직접 만들어 봅니다.
Kubernetes 입문자도 따라갈 수 있나요?
네. 난이도 입문 강의로, Docker와의 관계와 환경 검증에서 시작해 YAML 문법, Pod, Deployment, Service 순서로 올라갑니다. Docker를 써 본 경험이 있으면 수월하고, 뒤쪽의 배포 자동화와 Istio 확장은 실무 경력자에게도 새로운 내용입니다.
실습 환경은 어떻게 구성하나요?
Apple M3 Air에서 Docker Desktop(Docker version 28.0.0 기준)으로 진행합니다. 섹션 2에서 Docker Desktop 버튼 하나로 로컬 Kubernetes 환경을 만드는 방법을 다루므로, 클라우드 결제 없이 로컬에서 클러스터를 띄워 따라올 수 있습니다.
Istio나 ArgoCD 같은 도구도 다루나요?
네. 섹션 5에서 ArgoCD를 활용한 Public Repository 배포 자동화를, 섹션 6에서 Istio를 활용한 확장 패턴을 다룹니다. Prometheus와 Grafana를 활용한 로그 수집도 실습에 포함됩니다.
MSA 환경이 아니어도 도움이 되나요?
도움이 됩니다. MSA는 Kubernetes가 자주 쓰이는 대표적인 환경이지, 전제 조건은 아닙니다. 서비스가 하나여도 무중단 배포(Rolling Update), 장애 시 자동 복구, 리소스 관리 같은 문제는 똑같이 생깁니다. 다만 여러 서비스가 통신하는 구조를 다루게 되면 이 강의의 내용이 곧바로 필요해집니다.
공식 문서로 혼자 공부해도 되지 않나요?
공식 문서는 오브젝트 하나하나가 무엇인지 정확히 설명합니다. 다만 로컬 클러스터를 띄우고, 실제로 배포를 굴려 보고, 무엇이 깨지는지 확인하는 과정은 문서가 대신해 주지 않습니다. 이 강의는 그 과정을 순서대로 따라가며 손에 익히는 데 시간을 씁니다.
Kubernetes 강의 커리큘럼은 어떤 순서인가요?
Part 1은 Kubernetes 개요와 Docker와의 호환성, 그리고 YAML·Pod·Deployment·Service 같은 핵심 지식입니다. Part 2는 서비스 관리 패턴, Part 3은 고급 패턴과 배포 자동화, Part 4는 Istio를 활용한 확장 패턴입니다. 수강기한은 무제한입니다.
Pod 하나 띄우는 것부터, 클러스터를 굴리는 것까지
YAML 한 줄에서 시작해 배포 자동화와 Istio까지 전부 실습으로 확인합니다.
함께 성장해요
개발자 오픈 채팅방
커리어와 현업 상황, 기술을 나누는 개발자 오픈 채팅방을 운영하고 있어요. 강의를 들으며 궁금한 점이나 실무 고민을 편하게 나눠 보세요.