클라우드 자동화 — 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.pubAI와 협업할 때 절대 규칙
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 어시스턴트와 일할수록 이 원칙들이 더 중요해지더라고요.