목록으로 가기

DevOps 엔지니어가 되려면 뭘 공부해야 하나 — 단계별 로드맵

Linux, 네트워크, Docker, Kubernetes, CI/CD, IaC, 모니터링까지. DevOps 엔지니어가 되기 위한 공부 순서를 정리했습니다.

DevOps 엔지니어가 되려면 뭘 공부해야 하나 — 단계별 로드맵 ko posts roadmap Linux, 네트워크, Docker, Kubernetes, CI/CD, IaC, 모니터링까지. DevOps 엔지니어가 되기 위한 공부 순서를 정리했습니다.

개요

DevOps는 다루는 영역이 Linux부터 클라우드, 오케스트레이션까지 걸쳐 있습니다. 이 글은 많이 쓰이는 순서를 기준으로, 단계별로 무엇을 익혀야 하는지 정리합니다.

1. 기반 — Linux, 네트워크, Git, Shell

정리 보기

DevOps의 출발점은 서버 환경을 이해하는 것입니다.

Linux

  • 프로세스, CPU, 메모리, 디스크 관리
  • 파일 권한, 소유자
  • systemd 서비스 관리
  • 로그 확인 (journalctl, tail, grep)

네트워크

  • IP, 서브넷, DNS 동작 원리
  • HTTP, TCP/UDP, 포트 개념
  • 방화벽 (iptables, security group)
  • 프록시, 로드밸런서 기본

Git

  • 브랜치 전략 (Git Flow, trunk-based)
  • merge / rebase 차이
  • 충돌 해결
  • 태그와 릴리즈

Shell Script

  • 반복 작업 자동화
  • 조건문, 반복문, 함수
  • set -e, 에러 핸들링
  • 운영 작업을 묶는 스크립트 작성

2. 컨테이너와 CI/CD

정리 보기

서버에 직접 배포하는 방식에서 컨테이너 기반 배포로 넘어가는 단계입니다.

Docker

  • 이미지 빌드와 Dockerfile 작성
  • 레이어 캐시, multi-stage build
  • Docker Compose로 로컬 개발 환경 구성
  • 레지스트리(Docker Hub, ECR 등)에 이미지 push

CI/CD (Continuous Integration / Continuous Delivery)

  • GitHub Actions, GitLab CI, Jenkins 중 하나 선택
  • 파이프라인 구성: 빌드 → 테스트 → 배포
  • 환경 변수, secrets 관리
  • 브랜치별 배포 전략 (dev, staging, production)

Python 스크립팅

  • 배포 자동화 스크립트 작성
  • API 호출 (requests, boto3)
  • 로그 파싱, 데이터 가공
  • 간단한 CLI 도구 만들기

3. 클라우드와 IaC (Infrastructure as Code)

정리 보기

직접 서버를 관리하는 것에서 클라우드 인프라를 코드로 관리하는 단계로 넘어갑니다.

클라우드 (AWS 기준)

  • EC2 (가상 서버), VPC (가상 네트워크), 서브넷, 보안그룹
  • S3 (객체 스토리지), IAM (권한 관리), RDS (관리형 DB)
  • ELB — ALB (L7, HTTP/HTTPS) / NLB (L4, TCP · UDP · TLS), Route 53 (DNS)
  • CloudWatch 기본 모니터링

Terraform

  • HCL (HashiCorp Configuration Language) 문법, provider, resource
  • state 관리와 remote backend
  • module로 재사용 가능한 구조 만들기
  • plan → apply → destroy 흐름

Ansible

  • 서버 설정 자동화 (패키지 설치, 파일 배포, 서비스 관리)
  • playbook, role 구조
  • 여러 서버에 동시 적용
  • Terraform으로 인프라 만들고, Ansible로 설정하는 조합

4. 오케스트레이션과 모니터링

정리 보기

컨테이너를 대규모로 운영하고, 시스템 상태를 관측할 수 있는 단계입니다.

Kubernetes

  • Pod, Service, Deployment, ReplicaSet
  • ConfigMap, Secret
  • Ingress, 네트워크 정책
  • 리소스 관리 (requests, limits)
  • kubectl 사용법과 디버깅

Helm

  • Chart 구조 이해
  • values.yaml로 환경별 설정 분리
  • 공개 Chart 사용과 커스터마이징

모니터링

  • Prometheus: 메트릭 수집, PromQL
  • Grafana: 대시보드 구성, 알림 설정
  • 메트릭 설계: 무엇을 측정할 것인가

로그

  • ELK Stack (Elasticsearch: 검색 엔진, Logstash: 로그 수집/변환, Kibana: 시각화) 또는 Loki
  • 중앙 집중 로그 수집
  • 로그 기반 알림

5. 심화 — Go, 보안, SRE, GitOps

정리 보기

기본기를 넘어 더 깊이 들어가는 단계입니다.

Go

  • Docker, Kubernetes, Terraform이 Go로 만들어져 있습니다. Prometheus는 공식 FAQ 기준으로 대부분의 컴포넌트가 Go이고, 일부는 Java·Python·Ruby로 작성돼 있습니다
  • CLI 도구 만들기
  • K8s Operator, 커스텀 exporter 개발
  • 바이너리 하나로 배포되는 장점 (Prometheus 서버도 외부 의존성 없는 단일 바이너리로 동작합니다)

보안

  • Secrets 관리 (Vault, AWS Secrets Manager)
  • 네트워크 정책, RBAC (Role-Based Access Control, 역할 기반 접근 제어)
  • 컨테이너 이미지 취약점 스캔
  • 공급망 보안 (supply chain security)

SRE (Site Reliability Engineering) 관점

  • SLO (Service Level Objective, 서비스 목표 수준) / SLI (Service Level Indicator, 서비스 수준 지표) 정의와 에러 버짓
  • Incident 대응 프로세스
  • 포스트모템 작성
  • Chaos Engineering (장애 주입 테스트)

GitOps

  • ArgoCD 또는 Flux
  • Git을 single source of truth로 사용
  • 선언적 배포와 자동 동기화
  • 롤백 전략

공부 방법

단계별로 만들어볼 수 있는 프로젝트 예시입니다.

단계 프로젝트 예시
1단계 서버 상태 점검 Shell Script 작성
2단계 개인 앱을 Docker화하고 GitHub Actions로 자동 배포
3단계 Terraform으로 AWS에 VPC + EC2 + RDS 환경 구성
4단계 K8s에 앱 배포 + Prometheus/Grafana 모니터링
5단계 ArgoCD로 GitOps 파이프라인 구성