Skip to content

데브옵스 학습 로드맵 ​

코드를 만드는 일과 서비스를 운영하는 일 사이를 잇는 분야입니다. 서버를 다루고, 배포를 자동화하고, 운영 중인 시스템의 상태를 확인하기까지의 기본기를 순서대로 익힙니다.

milanm/DevOps-Roadmap의 단계 구성을 참고했습니다.

전체 학습 순서 ​

단계주제목표
01Git과 버전 관리변경 이력을 남기고 다른 사람과 협업하기
02프로그래밍 언어 한 가지반복 작업을 코드로 자동화하기
03리눅스와 셸 스크립트서버에 접속해 직접 조작하기
04네트워크와 보안 기초요청이 서버에 닿기까지의 경로 이해하기
05서버와 트래픽 처리웹 서버, 프록시, 로드 밸런서 구성하기
06컨테이너실행 환경을 이미지로 고정하기
07컨테이너 오케스트레이션여러 컨테이너를 선언적으로 운영하기
08코드형 인프라인프라와 설정을 코드로 관리하기
09CI/CD빌드·테스트·배포 자동화하기
10모니터링과 관측장애를 먼저 감지하고 원인 찾기
11클라우드 제공자 한 곳관리형 서비스 위에서 인프라 구성하기
12개발 프로세스와 협업팀의 개발·배포 흐름에 맞춰 일하기
보너스데브섹옵스보안 점검을 파이프라인 안으로 넣기

01. Git과 버전 관리 ​

  • 저장소 초기화, 커밋, 브랜치, 병합
  • 원격 저장소: clone, fetch, pull, push
  • 충돌 해결과 되돌리기: revert와 reset의 차이
  • 풀 리퀘스트 기반 협업과 코드 리뷰
  • 브랜치 전략: 트렁크 기반 개발과 GitHub Flow
  • 태그와 릴리스, 커밋 메시지 규칙
  • GitHub, GitLab 등 호스팅 서비스의 차이

02. 프로그래밍 언어 한 가지 ​

  • Python, Go, JavaScript 중 하나를 선택
  • 기본 문법: 조건문, 반복문, 함수, 자료 구조
  • 파일 읽기·쓰기와 JSON·YAML 다루기
  • HTTP 요청 보내기와 응답 처리
  • 명령행 인자와 환경 변수 읽기
  • 종료 코드와 오류 처리
  • 반복 작업을 스크립트로 옮겨 보기

운영 도구 대부분이 이 언어들로 작성되어 있습니다. 설정 파일을 읽는 수준을 넘어 직접 고칠 수 있어야 합니다.

03. 리눅스와 셸 스크립트 ​

  • 배포판의 차이: Ubuntu, Debian, RHEL 계열
  • 파일과 디렉터리: ls, cd, cp, mv, find
  • 텍스트 처리: cat, grep, sed, awk, 파이프와 리다이렉션
  • 권한과 소유자: chmod, chown, 사용자와 그룹
  • 프로세스와 자원: ps, top, kill, df, free
  • 패키지 관리와 systemd 서비스 등록
  • SSH 접속과 키 인증, scp와 rsync
  • Bash 스크립트: 변수, 조건문, 반복문, 종료 코드
  • cron으로 주기 작업 등록하기

04. 네트워크와 보안 기초 ​

  • OSI 7계층과 TCP/IP, TCP와 UDP의 차이
  • IP 주소, 서브넷, 포트, NAT
  • DNS 레코드와 질의 과정, TTL
  • HTTP와 HTTPS, TLS 인증서와 갱신
  • 방화벽과 보안 그룹, 인바운드·아웃바운드 규칙
  • VPN과 사설망 구성
  • 진단 도구: ping, traceroute, dig, netstat, tcpdump

"접속이 안 된다"는 문제의 원인은 대부분 이 범위 안에 있습니다. 어느 구간에서 끊겼는지 좁혀 가는 순서를 몸에 익혀 둡니다.

05. 서버와 트래픽 처리 ​

  • 웹 서버: Nginx, Apache, IIS
  • 정적 파일 제공과 가상 호스트 설정
  • 정방향 프록시와 역방향 프록시의 차이
  • 로드 밸런싱 방식: 라운드 로빈, 최소 연결, 헬스 체크
  • 캐시 서버와 CDN 엣지
  • TLS 종료 지점과 인증서 배치
  • 접근 로그와 오류 로그 읽기

06. 컨테이너 ​

  • 가상 머신과 컨테이너의 차이
  • 이미지와 레이어, 레지스트리
  • Dockerfile 작성과 멀티 스테이지 빌드
  • 이미지 경량화와 빌드 캐시 활용
  • 컨테이너 네트워크와 포트 매핑
  • 볼륨과 데이터 영속성
  • Docker Compose로 여러 서비스 묶어 실행하기
  • OCI 표준과 containerd, Podman

07. 컨테이너 오케스트레이션 ​

  • 쿠버네티스 구조: 컨트롤 플레인과 워커 노드
  • 워크로드: Pod, ReplicaSet, Deployment, StatefulSet, DaemonSet
  • 일회성 작업: Job과 CronJob
  • 네트워크: Service, Ingress, Ingress Controller
  • 설정과 비밀: ConfigMap, Secret
  • 저장소: PersistentVolume과 PersistentVolumeClaim
  • 자원 요청과 제한, 오토스케일링
  • 헬스 체크: liveness, readiness, startup 프로브
  • kubectl 기본 사용과 Helm 차트
  • cert-manager, external-dns 같은 클러스터 부가 서비스
  • 서비스 메시의 역할과 도입 판단 기준

08. 코드형 인프라 ​

  • 수동 구성의 문제와 선언적 관리의 이점
  • 인프라 프로비저닝: Terraform, OpenTofu, Pulumi
  • 상태 파일의 역할과 원격 저장, 잠금
  • 모듈화와 환경별 변수 분리
  • 구성 관리: Ansible, Chef, Puppet
  • 멱등성과 반복 실행 안전성
  • 로컬 환경 재현: Vagrant
  • 계획 확인 후 적용하는 절차와 변경 검토

09. CI/CD ​

  • 지속적 통합과 지속적 배포의 범위
  • 파이프라인 단계: 빌드, 테스트, 패키징, 배포
  • 트리거: 푸시, 풀 리퀘스트, 태그, 스케줄
  • 도구: GitHub Actions, GitLab CI, Jenkins, CircleCI, Azure Pipelines
  • 캐시와 병렬 실행으로 파이프라인 시간 줄이기
  • 아티팩트 저장과 버전 관리, 컨테이너 레지스트리 푸시
  • 비밀 값 주입과 파이프라인 권한 분리
  • 배포 전략: 블루-그린, 카나리, 롤링 업데이트
  • 롤백 절차와 배포 승인 단계

10. 모니터링과 관측 ​

  • 지표, 로그, 추적의 역할 구분
  • 지표 수집과 시각화: Prometheus, Grafana
  • 로그 수집: Elastic Stack, Loki
  • 분산 추적과 OpenTelemetry
  • 클라우드 제공자의 모니터링 서비스
  • 상용 도구: Datadog, Splunk, Dynatrace
  • 대시보드 구성과 알림 임계치 설정
  • SLI·SLO와 오류 예산
  • 알림 피로를 줄이는 기준과 온콜 운영
  • 장애 대응 절차와 사후 회고

11. 클라우드 제공자 한 곳 ​

  • AWS, Azure, Google Cloud 중 하나를 선택
  • 계정과 권한 관리, 최소 권한 원칙
  • 가상 네트워크와 서브넷, 보안 그룹
  • 가상 서버와 이미지, 오토스케일링 그룹
  • 관리형 데이터베이스와 객체 스토리지
  • 관리형 쿠버네티스 서비스
  • 서버리스: 함수와 이벤트 기반 실행
  • 비용 구조와 요금 알림 설정

한 곳을 깊게 익히면 다른 제공자는 이름만 바꿔 읽을 수 있습니다.

12. 개발 프로세스와 협업 ​

  • 애자일과 스크럼, 칸반의 차이
  • 이슈 추적과 작업 흐름: Jira, Azure Boards
  • SDLC 단계와 환경 분리: 개발, 스테이징, 운영
  • 코드 리뷰 기준과 머지 정책
  • 테스트 자동화의 범위와 품질 게이트
  • 문서화와 런북, 장애 대응 절차 공유
  • 변경 관리와 릴리스 노트

보너스. 데브섹옵스 ​

  • 보안을 배포 흐름 안으로 옮기는 이유
  • 정적 분석(SAST)과 동적 분석(DAST)
  • 의존성 취약점 점검과 SBOM
  • 컨테이너 이미지 스캔: Trivy
  • 런타임 위협 탐지: Falco
  • 비밀 관리: HashiCorp Vault, 클라우드 시크릿 서비스
  • 코드에 포함된 비밀 값 탐지와 차단
  • 정책 기반 통제와 OWASP DevSecOps 가이드라인
  • 공급망 보안과 SLSA

자주 쓰이는 도구 ​

분류도구
작업 관리Jira, Asana, Trello, Azure Boards
소스 관리Git, GitHub, GitLab, Bitbucket
CI/CDGitHub Actions, GitLab CI, Jenkins, CircleCI, Argo CD
코드 분석SonarQube, Veracode
아티팩트 관리Artifactory, 컨테이너 레지스트리, npm, NuGet
구성 관리Terraform, Ansible, Puppet, Chef
컨테이너Docker, Kubernetes, OpenShift
모니터링Prometheus, Grafana, Elastic Stack, Datadog

도구는 목적을 이해한 뒤에 고릅니다. 같은 분류 안의 도구는 대체로 비슷한 문제를 다른 방식으로 풉니다.

기본기를 익힌 다음 ​

필요해지는 시점에 주제를 골라 확장합니다.

  • GitOps: 저장소를 단일 기준으로 삼는 배포, Argo CD와 Flux
  • 신뢰성 공학: 오류 예산 운영, 용량 계획, 카오스 엔지니어링
  • 플랫폼 엔지니어링: 내부 개발자 플랫폼과 셀프 서비스 환경
  • 비용 최적화: 자원 사용률 분석, 스팟 인스턴스, FinOps
  • 멀티 클러스터: 지역 분산, 재해 복구와 복구 목표 설정

도구를 늘리기보다, 지금 운영 중인 것 하나를 끝까지 설명할 수 있는지부터 확인해 보세요.

Last updated: