Summary
- 기존 gcloud/kubectl로 진행하는 수동 빌드/배포를 자동화
- GitHub Action 으로 빌드 자동화(CI) / ArgoCD로 git 내역 배포 / 코드 푸시부터 배포까지 전과정 자동화
- 작업 완료 후 CLAUDE.md에 gitops 관련 행동 규칙(가드레일) 추가
Thoughts
- 가드레일을 통한 환경 구성의 표준화
- 과거 부트캠프시, 수강생마다 OS(win/mac) 및 진행단계가 달라 환경 구성에 몇일씩 소요
- 잘짜여진 가드레일로 소소한 환경차이는 흡수하여 큰 병목 없이 동일한 결과물 산출 가능
- 가드레일의 표현과 달라도, 비슷한 의미로 질의/요청하면 동일한 결과 돌려줌
- 회사에 적용한다면 신규입사자 온보딩,개발환경 구성을 스크립트 복붙이 아닌 가드레일로 구성하는것도 괜찮은 선택일듯하다
- 선언형 처럼 쓰는 LLM
- ~한 작업해줘 이후 결과를 확인하는 과정이 해당 챕터의 명령형vs선언형의 선언형과 유사하게 느껴짐
- 사용자는 의도만 던지고 그 과정의 절차는 llm에게 위임
- 그 과정에서 명시하지않았기에, 의도하지않은 동작 발생(SA key 대신 WIF 인증 적용)
- 학습목적으로 bypass 모드를 사용하고있어서기도 하지만, 통제 불가능한 자동화라는 점에서 운영환경에서 완전위임이 가능할까.. 라는 방향성에 대한 의문
3장. 첫 번째 배포 파이프라인
3.1 푸시 기반 배포의 한계
- 기존(2장) 배포시에는 클로드코드에 ‘빌드하고 배포해줘’로 지시, 구조적 문제 존재
3.1.1 클러스터에 무엇이 있는지 확신할 수 있는가
- 클러스터의 구성에 대한 히스토리 부재, 롤백하고자 하여도 이전상태를 알 수 없음
- 설정 드리프트(configuration draft): 잠시 로그레벨을 낮추고 Pod에 적용, git과 불일치하여 진실성 훼손
- 수동 이미지 교체: 수동 교체시 이미지 태그 오입력으로 에러 발생 및 롤백, 왜 롤백하는지 기록 불명
- 리소스의 특성: deploy와 다르게 cm은 history 없음. 자체 롤백 불가
3.1.2 명령형 vs 선언형: 사고 방식이 다르다

- 명령형은 바로 쓰긴 편하지만 이력관리가 어려움, 선언형은 번거롭지만 기준이 남음
- 선언형은 최종 상태를 깃에 두고 쿠버네티스가 수렴시킴 → 재현성 높고 변경 이력 자체 보존.
- GitOps = 이 선언형 사고를 확장해 “깃에 적힌 것이 곧 클러스터 상태”가 되게 하는 방식.
3.2 ArgoCD 설치 및 GitOps 연결
3.2.1 클로드 코드에게 배포 자동화 도구 물어보기
- cc내부에서 자연어로
배포자동화 도구 추천라고 요청- ArgoCD를 추천해줌
배포 자동화 도구 추천

3.2.2 다른 도구는 없는지 비교해보기
- cc내부에서 자연어로
다른 배포자동화 도구들과의 비교라고 요청- ArgoCD, Flux, Jenkins X, Spinnaker 중 사용성(UI), 커뮤니티 크기, 사용량 등 고려 시 ArgoCD가 최적
다른 배포자동화 도구들과의 비교

3.2.3 ArgoCD 설치하기
- cc내부에서 자연어로
ArgoCD로 배포 자동화 환경 구성해줘라고 요청- ArgoCD Manifests 기반 환경 구성
ArgoCD로 배포 자동화 환경 구성해줘




3.2.4 깃 저장소 연결하기
- cc내부에서 자연어로
ArgoCD와 배포 github 저장소 연결해줘라고 요청- 실습로컬환경의 gh에 이미 기존 PAT가 존재하여 해당 토큰을 재사용하여 연동
ArgoCD와 배포 github 저장소 연결해줘

3.3 ArgoCD로 롤링 업데이트: 깃 푸시만으로 배포
- ArgoCD 설치 및 연결 완료 이후, 코드 수정 후 푸시만으로 배포까지 자동 연결 파이프라인 구성 완료
3.3.1 새 기능 추가 및 배포
- cc내부에서 자연어로
API에 버전 정보 확인할 수 있도록 기능 추가 후 배포라고 요청- /version 엔드포인트를 추가하여 앱, Go 런타임, Pod 이름 등을 반환함
- port-forwarding 후 /version 호출하여 확인
API에 버전 정보 확인할 수 있도록 기능 추가 후 배포


응답값 확인


3.3.2 롤백 테스트
- cc내부에서 자연어로
배포판에 문제가 있으면 어떻게 복구해?라고 요청- 문제 상황시 롤백을 위해
git revert
- 문제 상황시 롤백을 위해
배포판에 문제가 있으면 어떻게 복구해?



3.4 깃허브 액션 CI: 빌드 자동화
- 배포는 자동화 되었지만 빌드는 수동 > CI 파이프라인 구성
3.4.1 아직 남은 수동 작업
- 코드 배포시마다 클로드코드에게 빌드요청하여 gcloud builds submit 수동 실행
- cc내부에서 자연어로
빌드 자동화 도구 추천라고 요청- GitHub Action 추천
빌드 자동화 도구 추천

3.4.2 깃허브 액션 CI 만들기
- cc내부에서 자연어로
Github Action CI 만들어줘라고 요청- 교재랑 다르게 SA key 방식이 아닌 WIF(Workload Identity Federation) 방식으로 구성;;
- github의 OpenID 토큰을 받아 gcp에 인증하여 임시토큰을 받는것은 개념적으로도 AWS랑 비슷한 방식 인듯
- 문서찾아가며 헤맸던 과정 (단계별 필요 리소스 생성, IAM trust policy 구성 등)을 단 6분만에 처리;;
Github Action CI 만들어줘



3.5 CI + ArgoCD 연결: 빌드부터 배포까지
- 구성된 CI(GithubAction)과 CD(ArgoCD)를 연결하여 코드를 푸시하면 자동 배포 환경 구성
3.5.1 마지막 빠진 조각
- CI가 이미지 빌드, CD가 깃 변경을 배포하지만 CI가 빌드한 이미지 태그를 매니페스트에 반영하는것은 수동
3.5.2 연결하기
- cc내부에서 자연어로
CI랑 ArgoCD 연결해줘라고 요청- githubaction 내부 권한을 write로 상승하여 변경된 이미지 태그를 커밋 후 푸시 가능
- 트리거 경로 제한(‘app/**’), Github 자체의 봇 재귀 방지, [skip ci] 문자 추가로 무한루프 방지
CI랑 ArgoCD 연결해줘


3.5.3 전체 파이프라인 테스트
- 연결 구성 완료 후 동작 테스트
- cc내부에서 자연어로
코드 고치고 푸시하면 배포까지 자동화 되는지 테스트 시작이라고 요청
코드 고치고 푸시하면 배포까지 자동화 되는지 테스트 시작



3.6 마무리: CLAUDE.md에 행동 규칙 추가하기
- 2장에서는 프로젝트 구성, GCP 환경정보 등의 행동규칙을 추가하였음
- 3장에서는 GitOps 원칙과 연관된 3줄을 Claude.md에 추가하여 동작테스트
- 클러스터 구성 변경은 git을 통한다는 GitOps 연관 규칙 추가
- 수동 kubectl을 통한 변경 시도 > 제지되고 권장 작업 장식 제안
- 자연어 규칙으로는 일관된 동작 불가 및 강제성 없음(우회가능), 기술적으로 차단하는 방식은 7장에서 안내
- 이후
/update-docs로 문서화
CLAUDE.md 행동 규칙 추가
ArgoCD GitOps 도입에 맞춰 kubectl apply/delete등 클러스터 직접 조작 금지,모든 변경은 깃 경유, 변경전 diff 보여주기 규칙을 CLAUDE.md에 추가. 나중에 제거예정

동작확인

3.7 3장 가드레일 살펴보기
| 서브챕터 | 유형 | 참조 파일 | 역할 |
|---|---|---|---|
| 3.2 탐색/비교 | 탐색과 비교 | decision-guides/ch3/3.2-gitops-tool.md | ArgoCD 추천 이유 + 대안 비교 |
| 3.2 실행 | 실행 | prompt-guardrails/ch3/3.2-argocd.md | ArgoCD 설치 절차 |
| 3.3 실행 | 실행 | prompt-guardrails/ch3/3.3-rolling-update.md | 롤링 업데이트 + 롤백 |
| 3.4 탐색/비교 | 탐색과 비교 | decision-guides/ch3/3.4-ci-tool.md | 깃허브 액션 추천 + 대안 비교 |
| 3.4 실행 | 실행 | prompt-guardrails/ch3/3.4-github-actions.md | CI 워크플로우 작성 |
| 3.5 실행 | 실행 | prompt-guardrails/ch3/3.5-ci-argocd.md | CI-ArgoCD 연결 |
| 3장 마무리 체험 | 실행 | prompt-guardrails/ch3/claudemd-example.md | CLAUDE.md에 예시 규칙 추가 → 삭제 테스트 → 상태 확인 → 되돌림 |
- 2장과 달리 3-프롬프트 패턴(탐색 > 비교 > 실행) 등장
decision-guides/도구 추천 및 비교 시 참조하는 파일prompt-guardrails/진행시 실행 순서를 안내하는 파일
