상세 컨텐츠

본문 제목

DevOps 입문자가 먼저 배워야 할 Linux, Shell, Git 정리

AI DevOps

by thisnorm 2026. 4. 22. 16:01

본문

Linux - Shell - Git - AI 협업

DevOps는 특정 도구 하나를 뜻하는 말이 아니다. 개발, 빌드, 배포, 운영이 하나의 흐름으로 이어지는 방식을 의미한다. 이 흐름을 제대로 이해하려면 Docker나 Kubernetes보다 먼저 Linux, Shell, CLI, Git 감각을 익히는 편이 훨씬 자연스럽다.

최근에는 여기에 AI까지 결합되면서 Agentic DevOps라는 흐름도 등장하고 있다. AI 에이전트가 명령 초안, 코드 생성, 파이프라인 보조를 수행할 수 있지만, 최종 검증과 판단은 여전히 사람이 해야 한다.

DevOps

  • DevOps는 흐름이다.
  • 개발 -> 빌드 -> 배포 -> 운영이 하나의 순환 구조로 이어진다.

Agentic DevOps

AI 에이전트가 파이프라인 단계를 보조하는 방식이다. 예를 들어 배포 스크립트 초안 작성, 로그 분석, 장애 대응 가이드 생성 같은 작업을 자동화할 수 있다.

하지만 중요한 원칙은 분명하다.

  • AI는 초안을 만든다.
  • 사람은 검증하고 승인한다.

즉, AI 초안 + 인간 검증이 기본 원칙이다.

Docker보다 CLI와 Git이 먼저인 이유

Docker와 Kubernetes도 결국 터미널 위에서 명령을 실행하고, Git 저장소를 기준으로 변경 이력을 관리한다. CLI와 Git 감각이 없으면 컨테이너 환경을 다루더라도 표면만 사용하는 수준에 머물기 쉽다.

Docker 명령은 터미널에서 실행된다

  • docker build, docker run 같은 작업은 모두 CLI 명령이다.
  • 터미널에 익숙하지 않으면 에러 메시지를 읽고 대응하기 어렵다.

Kubernetes는 Linux 위에서 동작한다

  • 파드 안의 컨테이너도 결국 Linux 프로세스다.
  • 파일 경로, 권한, 네트워크, 프로세스 개념이 그대로 적용된다.

CI/CD 파이프라인의 기준은 Git이다

  • 코드 변경과 배포의 출발점은 대부분 Git push다.
  • 브랜치 전략, PR, 리뷰 흐름을 알아야 파이프라인도 이해할 수 있다.

Linux를 먼저 배우는 이유

현대 DevOps 도구 대부분은 Linux 관점에서 이해하는 것이 가장 자연스럽다. 클라우드 서버, 컨테이너 이미지, CI/CD 런너 대부분이 Linux 기반이기 때문이다.

서버 표준

  • 전 세계 웹 서버 다수는 Linux 환경에서 운영된다.
  • AWS, GCP, Azure의 기본 VM 이미지도 Linux를 중심으로 제공된다.

Docker 기반

  • Docker 컨테이너는 Linux 커널의 네임스페이스와 cgroup 기술 위에서 동작한다.
  • Linux를 알면 컨테이너의 동작 원리가 보인다.

Kubernetes 운영

  • 파드 내부 디버깅
  • 볼륨 마운트 문제 해결
  • 권한 오류 분석

이 모든 과정에서 Linux 파일 시스템과 프로세스 이해가 필요하다.

CLI를 써야 하는 이유

GUI(그래픽 인터페이스)의 한계

  • 마우스로 메뉴를 계속 찾아야 한다.
  • 반복 작업을 자동화하기 어렵다.
  • 원격 서버 환경에서는 사용이 제한된다.
  • 작업 기록이 남기 어렵다.

CLI(커맨드 라인 인터페이스)의 장점

  • 명령 한 줄로 많은 파일과 작업을 처리할 수 있다.
  • 스크립트로 작성하면 같은 작업을 언제든 재현할 수 있다.
  • SSH로 접속한 원격 서버에서도 동일한 방식으로 사용할 수 있다.
  • 히스토리로 작업 과정이 남는다.

Linux 파일시스템 구조

Linux는 모든 것을 파일로 다룬다. 최상위 루트(/)에서 시작해 트리 구조로 디렉터리가 펼쳐진다. 경로를 이해해야 명령이 의미를 가진다.

/
|-- home
|-- etc
`-- var
    `-- log
  • /home/user : 일반 사용자의 작업 공간
  • /etc : 시스템 설정 파일 위치
  • /var/log : 로그 파일 저장 위치

사용자와 그룹

권한은 보통 세 주체를 기준으로 관리된다.

  • Owner(소유자)
  • Group(그룹)
  • Others(기타 사용자)

DevOps 실습에서 권한 오류가 발생하면 가장 먼저 소유자와 권한을 확인해야 한다.

ls -la
chown user:group app.py
chmod 644 config.env
chmod 755 deploy.sh
  • 소유자 문제는 chown
  • 권한 문제는 chmod

프로세스 개념

프로세스는 실행 중인 프로그램이다. 웹 서버, 데이터베이스, 배치 작업 모두 프로세스로 동작한다. 장애 분석의 시작도 결국 프로세스 이해에서 출발한다.

PID

  • 프로세스마다 고유한 번호(PID)가 있다.
  • 프로세스를 종료할 때 PID를 사용한다.

부모-자식 프로세스

  • Shell이 명령을 실행하면 자식 프로세스가 생성된다.
  • 부모 프로세스가 종료되면 자식 프로세스도 영향을 받을 수 있다.

포그라운드 / 백그라운드

  • 포그라운드: 터미널을 점유하며 실행
  • 백그라운드: &를 붙여 터미널을 점유하지 않고 실행

Shell의 역할

Shell은 사용자의 명령을 운영체제에 전달하는 인터페이스다. 터미널에서 입력한 텍스트를 해석하고 실행 결과를 출력한다.

  • Linux에서 많이 쓰는 Shell: bash
  • 최신 macOS와 일부 배포판 기본 Shell: zsh

현재 사용 중인 Shell은 아래처럼 확인할 수 있다.

echo $SHELL

필수 Shell 명령

1. 위치 확인

pwd
ls
ls -la
cd /home/ubuntu
cd ..
  • pwd : 현재 위치 출력
  • ls : 파일 목록 확인
  • ls -la : 숨김 파일과 상세 권한까지 표시
  • cd : 디렉터리 이동

2. 파일/디렉터리 생성

mkdir myproject
touch app.log
mkdir -p app/src/config
touch index.js
  • mkdir : 디렉터리 생성
  • mkdir -p : 중간 경로까지 한 번에 생성
  • touch : 빈 파일 생성

3. 복사와 이동

cp app.py app_backup.py
mv app.py src/app.py
cp -r project project_backup
mv oldname.py newname.py
  • cp : 파일 복사
  • cp -r : 디렉터리 재귀 복사
  • mv : 이동 또는 이름 변경

4. 삭제 명령

rm file.txt
rmdir empty_dir
rm -r old_project
rm -rf node_modules
  • rm : 파일 삭제
  • rmdir : 빈 디렉터리 삭제
  • rm -r : 디렉터리와 내부 파일 삭제
  • rm -rf : 매우 강력하므로 신중하게 사용

5. 파일 읽기

cat config.txt
cat -n app.log
grep "ERROR" app.log
grep -n "ERROR" app.log
grep -r "config" .
  • cat : 파일 내용 출력
  • cat -n : 줄 번호 포함 출력
  • grep : 특정 문자열 검색
  • grep -r : 디렉터리 전체 재귀 검색

6. 프로세스 관리

ps -ef
top
kill 2341
kill -9 2341
  • ps -ef : 실행 중인 프로세스 목록 확인
  • top : 실시간 프로세스 상태 확인
  • kill : PID 기준 프로세스 종료
  • kill -9 : 강제 종료

7. 권한 변경

chmod 755 deploy.sh
chmod 644 config.env
chown ubuntu app.py
chown ubuntu:devops app.py
chmod -R 755 scripts
  • chmod : 권한 변경
  • chown : 소유자와 그룹 변경
  • -R : 하위 항목까지 재귀 적용

마무리

DevOps를 제대로 배우고 싶다면 Docker부터 붙잡기보다 먼저 아래 순서로 기반을 다지는 편이 훨씬 효과적이다.

  1. Linux 환경 이해
  2. Shell과 CLI 명령 익히기
  3. Git 흐름 이해하기
  4. Docker와 Kubernetes로 확장하기
  5. 마지막에 AI 자동화와 Agentic DevOps로 연결하기

결국 강한 DevOps 역량은 화려한 도구보다 운영체제를 이해하고, 명령을 다루고, 변경 이력을 관리하는 기본기에서 나온다.

반응형

관련글 더보기