제로에서 클라우드까지 - 독학하는 DevOps 여정의 실제 모습
요약
DevOps로의 전환을 꿈꾸는 입문자를 위한 실질적인 학습 경로를 제시합니다. 단순한 도구 습득을 넘어 DevOps의 철학적 이해와 Linux, 네트워킹, AWS(IAM) 등 기초 역량의 중요성을 강조합니다.
핵심 포인트
- DevOps는 도구가 아닌 문화, 관행, 도구의 조합임
- 도구 중심 학습보다 근본적인 철학과 문제 해결 관점이 중요
- Linux 기초(터미널, 파일 시스템, 쉘 스크립트)는 필수 토대
- 네트워킹 기초(DNS, HTTP, VPC)에 대한 직관적 이해 필요
- AWS 학습 시 보안과 권한 관리를 위한 IAM의 깊이 있는 이해 권장
저는 정기적으로 이 질문의 변형된 형태를 받곤 합니다. 보통 클라우드가 아닌 역할에서 일하며 전환을 원하는 분들이나, DevOps를 목표로 정했지만 어디서부터 시작해야 할지 모르는 신입분들이 질문을 던집니다.
질문은 이렇습니다: 실제 경로는 어떤 모습인가요? 이상화된 커리큘럼 버전이 아니라, 막다른 길과 혼란, 그리고 정말로 자신이 진전을 보이고 있는지 알 수 없는 순간들이 포함된 진짜 버전 말입니다.
저는 여러분에게 솔직한 답변을 드리고자 합니다. 왜냐하면 대부분의 학습 콘텐츠가 제시하는 미화된 버전은 오히려 득보다 실이 많다고 생각하기 때문입니다.
vsa
가장 먼저 이해해야 할 점은 DevOps는 도구(tool)가 아니라는 것입니다. 그것은 문화(culture), 관행(practices), 그리고 도구(tools)의 조합입니다. 그리고 도구는 배우기 가장 쉬운 부분이며, 누군가를 DevOps 역할에서 유능하게 만드는 데 있어 가장 덜 중요한 부분입니다.
이 점이 학습 방식에 중요한 이유는 많은 DevOps 학습 콘텐츠가 도구 중심(tool-focused)이기 때문입니다. Docker를 배우세요. Kubernetes를 배우세요. Terraform을 배우세요. Jenkins를 배우세요. 이것들은 모두 가치가 있습니다. 하지만 근본적인 철학을 이해하지 못한 채 도구만을 배운 사람 — 즉, 왜 애플리케이션을 컨테이너화(containerise)해야 하는지, CI/CD 파이프라인이 실제로 어떤 문제를 해결하는지, '코드로서의 인프라 (infrastructure as code)'가 단순한 기술이 아닌 하나의 관행으로서 무엇을 의미하는지 모르는 사람 — 은 실제 DevOps 역할에서 진단하기 어려운 방식으로 어려움을 겪게 될 것입니다.
제가 제안하는 시작 단계의 멘탈 모델(mental model)은 다음과 같습니다: DevOps는 코드를 작성하는 것과 그 코드가 프로덕션(production) 환경에서 사용자에게 안정적으로 서비스되는 것 사이의 간극을 메우기 위해 존재합니다. DevOps 생태계의 모든 도구는 그 간극의 특정 측면을 해결하기 위해 존재합니다. 이러한 관점을 통해 도구를 배울 때 — 이 도구가 어떤 간극을 메우는지, 이 도구가 존재하기 전에 팀들이 어떤 문제를 겪었는지 — 여러분은 새로운 도구와 새로운 환경으로 전이될 수 있는 수준으로 이를 이해하게 됩니다.
성공적으로 이 전환을 해내는 사람들을 지켜보며 제가 확인한 실질적인 학습 경로는 다음과 같습니다:
Linux(리눅스)로 시작하세요. 아주 깊게 파고들 필요는 없습니다. 시스템 프로그래머가 될 필요는 없으니까요. 하지만 터미널(terminal) 환경이 익숙해야 하고, 파일 시스템(file system)을 이해하며, 기본적인 쉘 스크립트(shell script)를 작성할 수 있어야 하고, 프로세스(process)를 관리하고 로그(log)를 읽을 수 있어야 합니다. 이것이 다른 모든 것의 토대가 되며, 이를 건너뛰면 지속적으로 나타나는 지식의 공백이 생기게 됩니다.
그다음 네트워킹(networking)의 기초를 배우세요. DNS가 어떻게 작동하는지, 로드 밸런서(load balancer)가 무엇을 하는지, 프로토콜(protocol) 수준에서 HTTP가 어떻게 작동하는지 등의 기초를 익히세요. VPC가 무엇인지, 그리고 왜 존재하는지도 알아야 합니다. 다시 말하지만, 아주 깊게는 아니더라도 클라우드 네트워킹(cloud networking) 개념이 튜토리얼에서 복사해 오는 추상적인 설정이 아니라 직관적으로 이해될 수 있을 정도면 충분합니다.
그다음은 AWS입니다. 다른 모든 것의 기반이 되는 핵심 서비스부터 시작하세요. EC2, VPC, S3, IAM입니다. 무엇보다 IAM을 깊이 있게 이해하세요. 권한(permission)과 보안(security)은 가장 중대한 실수가 발생하는 영역이며, 처음부터 IAM을 잘 이해하는 것은 매우 중요한 습관을 만들어줍니다.
그다음은 컨테이너(container)입니다. 먼저 Docker(도커)를 배우고, 그다음 Kubernetes(쿠버네티스)로 넘어가세요. Docker로 실제 무언가를 만들어 보세요. 망가뜨려 보고, 다시 고쳐보세요. Dockerfile이 실제로 무엇을 하고 있는지 이해해야 합니다. 그런 다음 Kubernetes로 넘어가 왜 오케스트레이터(orchestrator)가 필요한지, 그리고 Docker만으로는 해결할 수 없는 어떤 문제들을 해결하는지 이해하세요.
그다음은 CI/CD입니다. 실제 파이프라인(pipeline)을 구축해 보세요. 튜토리얼용 파이프라인이 아니라, 여러분이 실제로 관심을 가진 무언가를 빌드하고, 테스트를 실행하며, 어딘가에 배포하는 실제 파이프라인을 만들어야 합니다.
콘텐츠에서 보통 생략하는 여정의 솔직한 부분은 이렇습니다. 보통 중간 어디쯤에서, 혼란을 느낄 만큼은 알지만 그 혼란을 빠르게 해결할 만큼은 알지 못하는 시기가 반드시 찾아옵니다. 이것은 정상이며 지나가는 과정입니다. 이 과정을 통과하는 사람들은 혼란을 자신이 능력이 없다는 신호가 아니라, 하나의 정보로 취급하는 사람들입니다.
또 다른 솔직한 부분은, 구조화된 환경에서 무언가를 구축하는 것입니다. 그것이 VSA의 AWS + DevOps 프로그램(https://www.vectorskillacademy.com/)과 같은 좋은 강의이든, 실제 제약 조건이 있는 개인 프로젝트이든 — 배운 것을 적용하지 않고 튜토리얼만 따라가는 것에 비해 학습 속도를 극적으로 가속화합니다. 실제로 작동하는 무언가에 대해 책임을 지는 순간이 바로 학습이 실질적으로 이루어지는 순간입니다.
제로에서 클라우드(Cloud)까지의 경로는 짧지 않습니다. 하지만 그것은 진정한 경로이며, 사람들은 매일 그 길을 성공적으로 걸어가고 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기