개요
Docker를 처음 알게된 건 큐시즘 세션을 통해서였다.
EC2에 jar 파일을 실행하는 방식을 고수해오던 나에게 컨테이너라는 개념은 생소했고, 이해하기가 쉽지 않았다.
특히나 컨테이너, 볼륨, 컴포즈 등 처음 듣는 단어들이 많았고, 그 때문에 혼란을 겪었던 것 같다.
Docker는 내게 두려운 존재였다.

Docker의 존재만 알고 애써 외면해왔는데, 작년 12월에 진행했던 프로젝트에서 무중단 서비스에 대한 요구사항을 받게 되었다...!!
무중단 서비스를 구현함과 동시에 클라우드 환경에서 베어메탈 서버로 마이그레이션 해야할 가능성도 염두해두어야 했다.
맞다. Docker를 사용해야 한다.
맨 땅에 헤딩하며 진행했던 자세한 과정은 다음 포스팅에 정리해두었다.
https://sinabroit53.tistory.com/44
[ToHero 백엔드 개발일지] Blue-Green 무중단 배포 with Docker
개요큐시즘에서 만난 좋은 인연 중 한 명인 기획자 형이 같이 서비스 하나 개발해보자고 좋은 제안을 주었다. 근 1년 간 준비했던 우테코 7기에 떨어지고 계획했던 일정들이 날라가면서 공허함
sinabroit53.tistory.com
Docker에 대한 명확한 바탕 지식 없이 사용하려고 하니, 기능 구현을 할 수 있어도 장애 상황이 발생했을 때 원인을 파악하기가 쉽지 않았다. 그래서 항상 장애가 발생하면 에러 로그를 긁어 GPT에게 전달하기 일쑤였다.
Docker를 사용하다보면 어느정도 감이 잡힌다. 하지만 기능 구현을 위한 이해만 했을 뿐, 핵심의 부재로 인한 텅 빈 느낌을 항상 받았다.
컨테이너 기술에 대한 이해가 필요하다고 느끼고 있던 찰나, 운이 좋게도 Docker와 Kubenetes 기술 도서를 미리 읽어볼 수 있는 기회를 제공 받았다.
길벗 출판사의 [그림으로 이해하는 도커와 쿠버네티스]와 [그림과 실습으로 배우는 쿠버네티스 입문] 책을 제공받았고, 이번 포스팅에서는 2권 중 [그림으로 이해하는 도커와 쿠버네티스] 도서를 직접 읽으면서 느낀 점을 정리해보려고 한다.

본문
이 책은 Docker와 Kubenetes에 대한 전반적인 지식을 함양시켜준다.
Docker와 Kubenetes의 사용법만 단편적으로 알고 있던 (그마저도 명령어를 쓸 때마다 찾아보던) 나에게 이 책은 컨테이너 생태계의 전반적인 지도를 그려주었다.


이 책의 전반적인 구성은 다음과 같다.
1. Docker
2. Kubenetes
3. 컨테이너 런타임 환경
각 파트마다 간단하게 동작 전체 과정을 코드와 함께 보여준다.
그래서 독자로 하여금 직접 따라해 보기 쉽게 한다.
많은 개발자들이 새로운 개념을 배울 때 직접 무언가 만들어보면서 배우는 것을 선호한다.
나 또한 그러하고, 실습을 통해 전체적인 그림을 그린 후에 개념을 익히면 이해가 더 쉽다.
이 도서에서는 Docker와 Kubenetes를 학습하기 전에 전체 동작 과정을 이해할 수 있게 코드와 실행결과를 함께 제공한다.
Docker에서는 Build, Ship, Run의 전체적인 흐름을 실습하도록 제공하고, Kubenetes에서는 Nginx 컨테이너를 매니페스트 파일을 통해 실행하고 삭제해볼 수 있도록 제공한다.
나도 실습을 따라해보면서 컨테이너 환경에 익숙해질 수 있어 좋았다.
그리고 이 책에서는 코드와 공식문서를 주석으로 제공한다.
자세한 설명이 필요한 부분이나 모호한 부분에 대해서 주석을 통해 공식문서, GitHub 링크를 제공한다.

대게 많은 개발자들이 그러하듯이 나도 새로운 기술을 배울 때 공식 문서를 통해 학습한 적 있다.
하지만 그럴 때마다 항상 느낀 부분은 공식문서의 빈약한 설명과 방대한 양이었다.
문서의 양이 너무 많고 지엽적인 부분이 많아서 어느 부분을 읽어야 되는지 모호한 적이 많았다.
그럴 때마다 느꼈던 점은 전체적인 흐름을 설명하는 부분이 있으면 참 좋겠다 였다.
그런 점에서 이 책이 길라잡이가 될 수 있을 것이라 생각했다.
공식 문서를 통해 공부하고 싶지만 부담스러운 사람들은 이 책을 통해 전체적인 가이드를 제공받음과 동시에,
주석을 통해 GitHub 오픈소스 코드와 공식문서로 들어가면서 깊이 있는 학습을 할 수 있을 것 같다.
학습을 하면서 도움이 되었던 또다른 부분은 바로 '그림'이다.
이 책의 제목에서 드러나는 것처럼 각 장과 절마다 이해를 돕기 위한 그림이 제공되고 있다.


포스팅 초반부에 '이 책은 컨테이너 생태계의 전반적인 지도를 그려주었다' 라고 한 적이 있다.
내가 책을 읽으면서 그렇게 느낄 수 있었던 점에는 이 도서가 제공하는 '그림'들이 큰 역할을 한 것 같다.
종종 추상적인 개념을 학습할 때마다 뜬구름 잡는 느낌이 들고, 크게 와닿지 않는다는 느낌을 받곤 하는데, 나에게는 큐시즘에서 들었던 Docker 세션이 그랬다.
특히나 컨테이너 기술은 추상적인 개념에 기반하고 있어 쉽게 이해하기가 쉽지 않다.
컴퓨터공학 기술이 거의 다 추상적이지만, 컨테이너 기술은 특히나 배포의 편리성과 운영의 효율성에 기반해있기 때문에 다른 기술들 보다 더 추상적이다.
그래서 이 책을 펼칠 때만 해도 여전히 두려움을 가지고 있었다.
실제로 책을 읽으면서도 한 번에 이해되지 않는 문장들이 있어 당황했다.
하지만 바로 그림과 코드에 기반한 설명이 동반되면서 앞서 이해가 잘 되지 않았던 부분에 대해 상세한 설명을 해준다.
추상적인 개념을 공부할 때 중요한 것은 머리 속으로 그림을 그려나가며 덜 추상적이게 만드는 것이고 생각하는데,
이 책에서는 실제로 다양한 그림을 기반으로 설명해주어 이해가 더욱 쉬웠던 것 같다.
내가 컨테이너 기술을 처음 접했을 때 이 같은 책이 있었더라면 Docker를 그리 두려워하지 않았을 것 같다.
생각
항상 처음이 중요하다.
처음에 받는 인상이 앞으로 마주할 부분에 지대한 영향을 끼친다고 생각한다.
나는 컨테이너 기술을 처음 접할 당시 너무 미숙했다.
물밀려 오는 방대한 용어와 개념들을 다 이해하기엔 개발 환경에 대한 이해와 경험이 부족했다.
그렇게 컨테이너에 대한 무서운 이미지가 생겼다.
컨테이너에 대한 막연한 두려움은 내가 더 큰 개발자로 성장하는데 걸림돌이었다.
생성형 AI와 함께 어찌저찌 헤처나가고 있었지만 언제 무너질지 모르는 둑을 계속 보수공사하는 느낌이었다.
그때 좋은 기회를 통해 컨테이너를 공부해볼 수 있는 책을 받았고,
덕분에 Docker와 kubenetes에 대한 전반적인 지도를 그려나갈 수 있었다.
나처럼 인프라 기술에 대해 두려움을 가지고 있는 분,
처음 인프라 기술을 공부하려고 하는 분,
당장 기술 구현을 위해 빠른 이해가 필요한 분
모두에게 이 책이 공부의 가이드가 되어 줄 수 있을 것이라 생각한다.
https://gilbut.co/c/25116831Yv
그림으로 이해하는 도커와 쿠버네티스 | 토쿠나가 코헤이 - 교보문고
그림으로 이해하는 도커와 쿠버네티스 | 왜 이렇게 동작하는가? 복잡한 원리는 그림 한 장이면 충분하다! 이해부터 실전까지, 읽는 것만으로 명확해지는 도커 & 쿠버네티스이 책은 컨테이너 기
product.kyobobook.co.kr
본 포스팅은 길벗 출판사로부터 도서를 제공받아 작성되었습니다.