이 게시글에서는 "개발자를 위한 쉬운 도커 후기" 강의를 수강하면서 얻은 것들을 기록하려고 한다. 나중에 성장한 후에 현재의 나를 되돌아볼 수 있도록, 다른 글과는 다르게 두서없이 지금의 생각을 그대로 담아 작성할 예정이다.
평소 작성한 게시글을 통해 알 수 있듯이, 백엔드 개발자를 지망하면서도 인프라에 대한 관심이 높은 편이다. 이는 나의 생각 때문인데, 나는 완성된 소프트웨어가 사용자에게 제공될 때 비로소 그 가치를 발휘한다고 생각하기 때문이다. 소프트웨어는 어떤 형태로든 사용자에게 전달될 때 부가가치가 창출되며, 이는 지속적인 발전의 토대가 된다고 본다. 이러한 관점은 소프트웨어뿐만 아니라 공학 전반에 걸쳐 적용될 수 있다.
나는 백엔드 개발자로서 API나 라이브러리 형태로 소프트웨어를 제공함으로써, 자신이 만든 소프트웨어가 가치를 지닌다고 여긴다. 이러한 이유로 인프라에 대한 관심이 커지게 되었다.
요즘 내 생각에서 개발에서 중요한 요소는 유연성과 편리성이다. 소프트웨어는 유연해야 하며, 과거에는 이러한 유연성을 유지하기 위해 불편함을 감수해야 했다. 그러나 오늘날에는 'MZ 세대'에 맞는 개발 방식이 요구된다. 현재 개발자들은 불편함을 감수하는 경향이 줄어들고 있으며, 개발자의 비용 또한 상승하고 있다.
이러한 배경에서 Docker와 같은 컨테이너 기술은 현대 개발자들에게 매우 중요한 도구가 되었다고 생각한다. Docker는 불변성을 지니며, 사용자가 선언만 하면 프로그램의 프로세스가 자동으로 생성되는 구조로, 매우 편리하고 강력한 도구이다. 그러나 단순히 이러한 도구를 사용하기만 한다면, 기술에 종속되어 자신의 본래 목적을 잃게 될 위험이 있다.
나는 평소에 개발 과정에서 Docker를 자주 사용하지만, 그 숙련도가 높지 않다고 느꼈고, Docker의 핵심적인 원리에 대해서도 깊이 이해하지 못하고 있었다. 그 결과, 단순히 Docker를 편리한 도구로만 여기고, 그 이상의 깊이를 탐구하려는 노력이 부족했다. 이는 장기적으로 볼 때 문제가 될 수 있다고 판단하여, 이를 개선하기 위해 이번 강의를 수강하게 되었다.
사실 강의를 듣게 된 이유에서 나중에 성장하고 현재 생각을 돌아보기 위해서 주절주절 많이 적었지만, 이 강의는 "개발자를 위한 쉬운 도커"라는 제목에 걸맞게, 컨테이너를 처음 접하는 사람도 쉽게 이해할 수 있도록 기초 개념부터 차근차근 설명해 주고 있다.
특히, 강의 내용 중 가상화 기술과 Docker 네트워크에 대한 설명이 매우 유익했다. Docker를 학습하면서 하이퍼바이저 가상화와 컨테이너 가상화의 차이에 대해서는 어느 정도 알고 있었으나, Docker와 Docker 네트워크의 작동 원리에 대해서는 명확히 이해하지 못하고 있었다. 강의에서 제공된 그림과 설명을 통해 그 원리를 명확하게 파악할 수 있었다.
또한, 실무에 Docker를 적용하는 방법에 대한 강의도 매우 유용했다. 이를 바탕으로 프로젝트에 적용하기 위해 [공부정리] Docker 실전 활용 팁에 간단히 기록하였고, [공부정리] Docker Build 성능 개선을 통해 실제로 성능을 개선할 수 있었다.
강의를 진행한 데브위키님에 대해서도 긍정적인 인상을 받았다. 목소리가 매우 듣기 좋았고, 음질도 깔끔했다. 강의 자료는 매우 체계적으로 준비되어 있었으며, 질문에 대한 답변도 명확하게 제공되었다. 강의 종료 후 피드백을 통해 문제를 개선하려는 노력 또한 인상적이었다. 데브위키님은 매우 철저한 강사라는 인상을 받았다.
다음에 데브위키님의 쿠버네티스 강의가 개강된다면, 꼭 수강하고 싶다.