클라우드 자동화 — CLI와 Git 워크플로우 정리

클라우드 CLI

대부분의 클라우드 벤더가 CLI 도구를 제공해요. 설정 후 자주 쓰는 명령은 비슷한 패턴이에요.

# 인증 정보 설정
cloud-cli configure  # SecretId / SecretKey 입력
 
# 인스턴스 목록 조회
cloud-cli cvm DescribeInstances --region ap-seoul
 
# 인스턴스 재고 / 스펙 조회
cloud-cli cvm DescribeZoneInstanceConfigInfos --region ap-seoul

🚨 보안 주의 — Secret Key를 코드/Git에 절대 직접 박지 말기. 환경변수나 별도 인증 파일로 분리해야 해요.

Python / Bash 자동화 환경

패키지 충돌과 권한 오염을 피하려면 가상환경(venv) 격리가 필수예요.

# venv 생성
python3 -m venv ~/.venvs/default
source ~/.venvs/default/bin/activate
 
# 패키지 설치는 반드시 venv 안에서
pip install <package>
 
# ❌ 절대 금지
sudo pip install ...   # 시스템 Python 오염
pip install --user ... # 의존성 추적 어려움

Node.js도 마찬가지로 managed 디렉터리 안에서만 install하는 게 좋아요. npm install -g는 가능한 한 피해야 해요.

Git 워크플로우

초기 설정 (Mac 기준)

git config --global user.name "your-name"
git config --global user.email "your-email"
 
# SSH 키 생성
ssh-keygen -t ed25519 -C "your-email" -f ~/.ssh/id_ed25519
 
# 공개키를 GitHub/GitLab에 등록
cat ~/.ssh/id_ed25519.pub

AI와 협업할 때 절대 규칙

AI 코딩 어시스턴트와 일하면서 정한 운영 원칙들이에요. 한 번 사고 나면 복구가 정말 어려워서, 미리 막아두는 게 중요해요.

  • ❌ AI는 절대 master 직접 push 금지
  • ❌ AI는 절대 bash deploy.sh / rollback.sh 같은 배포 스크립트 자동 실행 금지
  • ❌ AI는 절대 git tag 자동 생성 금지
  • ✅ AI는 feat/*, fix/*, docs/* 브랜치만 push 가능
  • ✅ Merge 후 deploy는 owner가 직접
  • ✅ pre-push hook으로 master 직접 push를 코드 레벨에서 차단
# pre-push hook 예시 (.git/hooks/pre-push)
#!/bin/bash
protected_branch='master'
current_branch=$(git symbolic-ref HEAD | sed -e 's,.*/\(.*\),\1,')
if [ $protected_branch = $current_branch ]; then
  echo "🚫 Direct push to $protected_branch is blocked."
  exit 1
fi
exit 0

브랜치 네이밍 패턴

  • feat/기능명 — 새 기능 추가
  • fix/버그명 — 버그 수정 (예: fix/cache-hit-translation-stuck)
  • docs/문서명 — 문서 변경
  • chore/잡일명 — 빌드/설정 변경

자주 쓰는 명령 패턴

# 특정 포트를 점유 중인 프로세스 종료
lsof -ti:8787 | xargs kill
 
# 특정 이름의 프로세스 종료
pkill -f "python3 server.py"
 
# 환경변수 오염 확인 (AI 도구가 자식 셸에 env를 주입하는지 점검)
env | grep -E "MY_APP|MY_CLI"
 
# 깨끗한 환경에서 명령 실행
env -i HOME=$HOME PATH=$PATH <command>

마무리

자동화의 핵심은 **“실수해도 큰 사고로 번지지 않도록 미리 막아두는 것”**이에요. 자동화 스크립트는 결국 사람이 만든 거라 버그가 생기기 마련인데, Git 운영 원칙과 환경 격리가 안전망 역할을 해줘요. AI 어시스턴트와 일할수록 이 원칙들이 더 중요해지더라고요.