🔖Contents
1. 서평단 활동 소개
해당 내용은 길벗 "출판사에서 도서를 제공받았음"을 알리며, 무료로 지원받아 솔직하게 쓴 글입니다.

이번 글은 길벗 31차 개발자 리뷰어 서평단 활동을 통해 도서를 무료로 제공받아, 직접 읽고 솔직하게 정리한 후기입니다. 서평단으로 참여하면서 가장 기대했던 부분은, 도커와 쿠버네티스 기초 복습이었습니다. 이미 저는 도커와 쿠버네티스를 미리 공부하고 간단한 프로젝트로 실습한 경험이 있는 상태입니다. 하지만 실무에서 직접 경험하지 못한 상황이기 때문에 점점 사용한 기능만 사용하게 되면서 부가적인 기능들을 점점 잊혀지고 있었습니다. 그래서 다시 도커부터 쿠버네티스까지 기초를 다시 공부할 필요성을 크게 느끼고 서평단 활동을 신청하고, 감사하게도 서평단으로 선정되었습니다.
도커와 쿠버네티스는 개발자라면 한 번쯤은 꼭 접하게 되는 기술이지만, 막상 공부를 시작하면 명령어와 설정이 먼저 나오고, 그 아래에서 어떤 일이 벌어지는지는 흐릿하게 넘어가는 경우가 많습니다. 저 역시 컨테이너를 실행하고 배포하는 데에는 익숙했지만, “컨테이너 런타임이 정확히 무엇을 하는지”, “이미지 레이어는 왜 그런 구조를 갖는지”, “쿠버네티스에서 파드가 실제로 어떻게 만들어지고 실행되는지”까지는 명확하게 설명할 수 있다고 말하긴 어려웠습니다. 물론, 그 순간 공부할 때에는 함께 공부하지만 전문적으로 데브옵스를 목표로 준비하지 않으면 금방 잊혀지기 마련이었어요. 그런 점에서 이 책은, 서평단 도서로 받아 들었을 때부터 단순한 사용 설명서가 아니라, 개념과 구조를 다시 정리해 줄 수 있는 책이라는 기대를 갖게 했습니다.
책을 펼치자마자 가장 먼저 읽은 부분은 지은이 토쿠나가 코헤이 저자(글) · 서수환 번역님의 서문이었습니다. 서문에서부터 이 책이 어떤 방향을 가지고 있는지가 굉장히 분명하게 드러나 있었어요. 일반적인 입문서에서는 거의 비중 있게 다루지 않는 컨테이너 런타임 소프트웨어를 이 책의 중심 주제로 삼고 있다는 점이 특히 인상 깊었습니다. 도커와 쿠버네티스는 내부적으로 컨테이너 런타임을 사용하고, 그 위에서 모든 기능이 동작합니다. 그런데 우리는 보통 그 사실을 “알고 있다”고만 생각하고, 실제 구조나 흐름은 깊게 들여다보지 않는 경우가 많잖아요. 지은이 서문에서는 바로 그 지점을 짚어 주고 있었고, 컨테이너 런타임과 컨테이너 구조의 기본을 이해하면, 이 책에서 다루지 않는 기능이나 다른 도구를 배울 때도 훨씬 수월해진다는 설명이 굉장히 설득력 있게 다가왔습니다. 그리고 복습에서 중요하게 다루고 싶은 부분들 중에서 바로 내부 동작에 대해 제대로 다시 복습하자고 생각했는데 취지에 정말 적합한 책이었어요.
“AI가 코드를 짜 주는 시대인데 기본기가 필요할까?”라는 질문에 대해, 이 책은 오히려 그래서 더 필요하다는 방향으로 답을 제시하고 있는 느낌이었어요. 도구는 바뀌어도, 기반이 되는 개념과 구조는 오래 남는다는 점에서, 이 책이 추구하는 학습 방향이 개인적으로도 많이 공감됐습니다. 저 또한 항상 도커 컴포즈 파일을 작성할 때마다 ChatGPT한테 질문을 던지는 자신에게 스스로 반성하는 계기였습니다.
2. 책 내용 소개
2.1 도커 파트
이 책에서 도커 파트를 읽으면서 가장 크게 느낀 점은, 도커를 단순한 명령어 모음이 아니라 하나의 흐름으로 이해하게 만든다는 점이었습니다. 도커를 처음 접할 때 가장 혼란스러운 부분이 “이 명령어를 언제 쓰는지”, “이미지와 컨테이너의 관계가 정확히 뭐였는지” 같은 지점인데, 이 책은 그런 혼란이 생기기 전에 Build–Ship–Run이라는 구조로 도커의 전체적인 동작을 설명을 합니다. 덕분에 도커 명령어 하나하나가 따로 떨어져 있는 지식이 아니라, 풍부한 그림과 함께 제공되는 전체 과정 속에서 자연스럽게 자리를 잡게 됩니다.
컨테이너 이미지를 작성하는 단계에서는, 단순히 도커파일 문법을 나열하기보다 이미지가 왜 이런 방식으로 만들어지는지를 먼저 이해하게 합니다. 특히 도커에서 제공하는 중요한 기능 중 한 가지인 멀티 스테이지 빌드를 설명하는 흐름이 인상적이었는데, “이미지 크기를 줄이기 위한 팁” 정도로 끝나는 게 아니라, 컨테이너 이미지가 레이어 단위로 쌓이고 재사용된다는 구조적 특징과 연결해서 설명해 주기 때문에, 이후에 도커파일을 직접 작성할 때도 판단 기준도 정하는데 큰 도움이 됐습니다. 그리고 컨테이너 실행과 관련된 부분도 정말 도움이 많이 됐습니다. 호스트와 컨테이너 간의 파일 공유, 데이터 유지 방식, 포트 공개 같은 내용은 실제로 많이 사용하는 기능이지만, 처음 배울 때는 개념이 헷갈리기 쉬운 부분이잖아요. 이 책은 이런 기능들을 옵션 설명으로 끝내지 않고, 컨테이너와 호스트가 어떤 관계로 연결되는지를 그림과 함께 차근차근 설명해 줍니다. 그래서 단순히 “이렇게 쓰면 된다”가 아니라, “그래서 이렇게 동작하는구나”라는 이해로 이어졌습니다.
제가 자주 사용하는 도커 컴포즈를 다루는 파트에서도 많은 도움이 됐습니다. 항상 단순히 사용한 도커 컴포즈가 아니라, 여러 컨테이너를 한 번에 관리해야 하는 상황에서, 컴포즈가 왜 필요한지, 단일 컨테이너 실행 방식과 어떤 점이 다른지를 명확하게 대비해 줍니다. 그리고 이 책의 도커 파트에서 가장 좋았던 부분은 컨테이너 레이어 구조를 깊이 있게 다룬다는 점이었습니다. 컨테이너 이미지가 어떤 레이어로 구성되어 있고, 빌드 과정과 실행 과정에서 각각 어떤 레이어가 사용되는지를 실제 흐름에 맞춰 설명해 주기 때문에, 지금까지 막연하게 알고 있던 개념들이 하나씩 정리되는 느낌이었습니다. 이 파트를 읽고 나니, 이미지 최적화나 빌드 속도 같은 주제도 단순한 테크닉이 아니라 구조적인 문제로 바라보게 되었습니다.
그리고 도커 복습할 때 중요하게 공부하고자 한 부분들 중 한 가지인 도커 아키텍처와 OCI 런타임을 연결해서 설명하는 부분도 이 책만의 강점이라고 느꼈습니다. 명령어처럼 눈으로 보이지 않는 내부 동작을 풍부한 그림을 통해 친절하게 정리되어 있습니다. 특히 내용에서 도커가 모든 것을 직접 처리하는 것처럼 보이지만, 실제로는 표준 규격과 런타임 위에서 동작한다는 점을 명확하게 짚어 주기 때문에, 도커를 사용하는 입장에서 한 단계 더 넓은 시야를 가질 수 있었습니다. “도커를 안다”는 말의 의미가, 단순히 명령어를 외운 상태에서 벗어나게 되는 지점이 바로 이 파트라고 생각합니다.
2.2 쿠버네티스 파트
쿠버네티스 파트는 도커 파트에서 쌓아 둔 개념을 무리 없이 확장해 주는 역할을 하고 있었습니다. 이 책은 쿠버네티스를 갑자기 복잡한 시스템으로 던져 주지 않고, “왜 쿠버네티스가 필요해졌는지”라는 질문부터 시작합니다. 파일 기반의 선언적 관리, 다양한 배포 형식 지원, 확장성이 뛰어난 아키텍처 같은 특징들을 먼저 짚어 주면서, 쿠버네티스가 해결하려는 문제를 자연스럽게 이해하게 합니다. 바로 이어지는 쿠버네티스 클러스터와 kubectl을 설명하는 흐름도 입문자에게 부담스럽지 않게 구성되어 있습니다. 명령어 위주로 빠르게 넘어가는 방식이 아니라, 클러스터라는 개념 자체를 먼저 이해하게 만든 뒤, 그 안에서 kubectl이 어떤 역할을 하는지를 설명합니다. 덕분에 이후에 나오는 파드, 디플로이먼트 같은 개념들도 갑자기 튀어나오는 용어처럼 느껴지지 않았습니다.
쿠버네티스를 공부할 때 반드시 잘 이해하고 넘어가야 하는 파드를 기본 배포 단위로 설명하는 부분은 특히 인상 깊었습니다. 컨테이너와 파드의 관계를 명확하게 구분해 주고, 왜 쿠버네티스에서는 컨테이너 하나가 아니라 파드를 기준으로 관리하는지를 구조적으로 설명해 줍니다. 레이블과 애너테이션 역시 “붙이면 좋다” 수준이 아니라, 쿠버네티스가 리소스를 식별하고 관리하는 핵심 메커니즘이라는 점이 잘 드러나 있어서, 이후 디플로이먼트나 서비스 개념을 이해하는 데 큰 도움이 됐습니다. 애플리케이션 배포 파트에서는 디플로이먼트, 스테이트풀셋, 데몬셋, 잡과 크론잡까지 각각의 용도를 명확하게 대비해 주는 점이 좋았습니다. 쿠버네티스가 익숙하지 않은 상태에서 자주 헷갈리는 부분이 “이 상황에서 어떤 리소스를 써야 하지?”인데, 이 책은 각 리소스가 등장한 배경과 목적을 중심으로 설명해 주기 때문에, 단순 암기가 아니라 선택 기준이 자연스럽게 머릿속에 남습니다.
설정과 볼륨, 서비스 공개를 다루는 파트 역시 실무 친화적인 구성입니다. 컨피그맵과 시크릿을 통한 설정 관리, 퍼시스턴트 볼륨과 임시 볼륨의 차이, 내부 서비스와 외부 서비스 공개 방식까지 이어지는 흐름이 하나의 큰 그림 안에서 정리되어 있어서, 쿠버네티스를 처음 접하는 사람도 “전체 구조가 이런 식이구나”를 잡을 수 있었습니다. 무엇보다도 이 책의 쿠버네티스 파트에서 가장 인상 깊었던 건, CRI 컨테이너 런타임과 노드 컴포넌트의 관계를 자세히 설명한다는 점이었습니다. kubelet, CNI 플러그인, kube-proxy가 각각 어떤 역할을 맡고 있고, 파드가 실제로 어떤 과정을 거쳐 실행되는지를 연결해서 설명해 주기 때문에, 쿠버네티스가 추상적인 관리 도구가 아니라 실제 실행 흐름을 가진 시스템이라는 점이 분명하게 드러납니다.
쿠버네티스를 “어렵다”고 느끼는 이유 중 하나가 내부 동작이 잘 보이지 않기 때문인데, 이 책은 그 내부를 최대한 투명하게 보여 주려고 합니다. 그래서 쿠버네티스를 처음 배우는 사람에게는 개념 정리서로, 이미 사용해 본 사람에게는 빠졌던 부분을 보완해 주는 복습서로 충분히 가치가 있는 구성이라고 느꼈습니다.
3. 학습에 도움되는 참고 사항
도커와 쿠버네티스 공부를 하기 전에 네트워크에 대한 기초 지식이 반드시 필요합니다. 리눅스까지 기초 지식이 있다면 더욱 좋습니다. 다른 도커와 쿠버네티스 책이든, 강의든 반드시 최소한의 선수 지식을 갖춘 상태에서 읽어야만 하는 영역이라는 것을 참고하기를 바랍니다. 이 책은 입문자들이 부담없이 도커와 쿠버네티스 기본을 견고하게 다지는 첫걸음으로 추천합니다. 또한 저처럼 도커와 쿠버네티스를 최소한으로 사용하는 기능만 사용하고 있는 분들에게도 복습하는데 정말 큰 도움이 되는 책입니다. 책의 예제 소스는 모두 깃허브로 제공하기 때문에 공부하는 데 큰 도움이 될 것 입니다.
그림으로 이해하는 도커와 쿠버네티스 | 토쿠나가 코헤이 - 교보문고
그림으로 이해하는 도커와 쿠버네티스 | 왜 이렇게 동작하는가? 복잡한 원리는 그림 한 장이면 충분하다! 이해부터 실전까지, 읽는 것만으로 명확해지는 도커 & 쿠버네티스이 책은 컨테이너 기
product.kyobobook.co.kr
GitHub - gilbutITbook/080434: 그림으로 이해하는 도커와 쿠버네티스 소스 코드
그림으로 이해하는 도커와 쿠버네티스 소스 코드. Contribute to gilbutITbook/080434 development by creating an account on GitHub.
github.com
'💭Retrospective' 카테고리의 다른 글
| 모임 참가 신청 API: 모임 최대 참가자 수 동시성 문제 해결하기 (0) | 2026.01.10 |
|---|---|
| 이미지 로딩 속도와 크기 70% 단축: WebP 변환부터 Redis 프리업로드로 URL을 보증하기 (0) | 2026.01.10 |
| 서평단: Do it! HTML+CSS 웹 표준의 정석 탄탄한 웹 기본기를 위한 교과서 | 개정판 3 판 후기 (0) | 2025.12.17 |
| 모임 목록 조회 API 트러블슈팅: 커서 기반 페이징과 N+1을 설계 구조로 해결하기 (0) | 2025.12.16 |
| 마틴 파울러가 소개하는 소프트웨어 아키텍처 (1) | 2025.11.25 |