[Git] DevOps 에코시스템의 중심축
현대 DevOps 환경에서 Git은 단순한 버전 관리 도구를 넘어 Single Source of Truth(단일 진실 공급원) 역할을 한다. 코드부터 인프라 설정까지 모든 것이 여기에 기록되며, CI/CD 파이프라인의 시작점이 된다.
VS
Git vs GitHub: 도구와 서비스의 차이
많은 개발자들이 Git과 GitHub을 혼용하지만, Git은 도구(Tool)이고 GitHub은 서비스(Service)다. 파일과 클라우드 스토리지를 비교하듯 이해하면 명확하다.
| 비교 항목 | Git (Tool) | GitHub (Service) |
|---|---|---|
| 정의 | 로컬 버전 관리 소프트웨어 | 웹 기반 Git 저장소 호스팅 서비스 |
| 설치 위치 | 개인의 로컬 컴퓨터 | 클라우드 서버 (인터넷 상) |
| 핵심 기능 | 변경 이력 추적, 브랜치/머지 관리 | 팀 협업, PR/코드 리뷰, CI/CD 통합 (Actions) |
| 오프라인 작업 | 완전 가능 (로컬 저장소 독립 실행) | ❌ 불가능 (인터넷 연결 필수) |
| 인터페이스 | CLI(터미널) 또는 GUI (Sourcetree 등) | 웹 브라우저 기반 직관적 UI |
| 용량/비용 | 무료 (오픈소스) | 무료/유료 플랜 (Private Repo 제한) |
Git 단독 사용 (로컬)
git init # 저장소 생성
git add .
git commit # 오프라인 스냅샷
개인 프로젝트, IaC 실험 등 독립 개발에 최적화된 로컬 환경.
GitHub 협업 (DevOps)
git push origin main # 동기화
Create Pull Request # 리뷰
GitHub Actions # 자동 배포
팀 협업, 코드 리뷰, 자동화 파이프라인 구축 시 필수.
?
DevOps에서의 Git 위상: 왜 필수인가?
CI/CD 트리거
Git Commit이 자동화 파이프라인을 발동시키는 첫 신호탄이다.
코드로서의 인프라
K8s 매니페스트, Terraform 등 모든 인프라 정의를 코드로 관리한다.
투명한 협업
변경 이력과 코드 리뷰를 통해 기술 부채를 체계적으로 관리한다.
1
메커니즘 이해: 데이터 흐름 파악
Working Directory
실제 파일 수정이 일어나는 공간. 실험적 변경을 자유롭게 테스트한다.
$ Code Edit...
2
워크플로우 최적화: 브랜치 전략
Branch Simulator
main
프로덕션 배포용feature/dev
개발·병합 후 main에 반영MAIN 브랜치
프로덕션에 바로 반영 가능한 안정 버전만 유지한다. 배포 파이프라인과 직접 연결된다.
FEATURE 브랜치
새로운 기능이나 IaC 변경을 독립적으로 개발한다. 메인 코드에 영향을 주지 않고 안전하게 실험한다.
3
협업 허브와 품질 보증 (PR)
PUSH & PULL
로컬 변경사항을 클라우드(GitHub)로 업로드하고, 팀원의 최신 변경을 동기화한다.
Pull Request (PR)
품질 게이트 역할을 수행한다. 모든 게이트(테스트, 리뷰) 통과 시에만 메인에 병합된다.
Code Review 예시
SRE Engineer B
"이 Dockerfile의 베이스 이미지를 Alpine으로 변경하면 보안과 이미지 크기가 개선될 것 같다."
PR Approved