ci/cd 를 github actions 하려다가 gemini cli
노트북에서 코드 작성하고 git commit push 하고 빌드하고 빌드테스트 하고 서버의 OS에 맞춰서 도커 이미지로 컨테이너 만들고 배포하고.. 뭐 vsc에서 거의 쉽게 빠르게 다 되는 것이지만 이것 조차 귀찮아지네요 개인플젝 그거 얼마 된다고..
그래서 ci/cd 라는걸 한번 해보려고 그중에서 오키에서 많이 추천하는 github actions로 해보려고 살짝 알아보던 중에
ci/cd? 이거 gemini cli 가 다 해 주는거네.. 생각이 문득 듭니다
노트북에서 vsc 터미널로 ssh로 shell, ftp 로 서버에 접속해서 코드 파일 편집 저장 삭제 다 가능합니다
서버 shell에서 gemini cli를 설치하면 vsc 터미널에서 gemini를 실행시키고 코드 파일 편집 저장 삭제를 명령할 수 있습니다
물론 코드 분석, 생성, 리팩터링, 주석달기, 코드 성능 리포팅, 프로젝트 구조도 만들기 다 가능합니다
go 코드의 경우 testing, pprof 로 성능 테스트 해야겠지만 gemini 한테 프로젝트의 전체 성능, 파일별 성능, 유닛별 성능까지 다 분석해서 리포팅 시킬 수 있습니다
API 속도 제한 (Rate Limiting)의 애플리케이션단 rate 까지 산출하라고면 할겁니다
ci/cd workflow를 미리 프로젝트 디렉토리에 파일(.yaml)로 작성해 두고 코드작성이 끝난 후
gemini 한테 ‘.yaml 파일대로 ci/cd 시작해’ 라고 명령하면 됩니다
혹은 .yaml 파일 상단주석에 ‘문제단위 코드생성/리팩터링이 끝난 후 아래의 설정과 절차로 ci cd를 실행해’를 써놓고 gemini cli에서 /memory add .yaml 해두면 작업내내 기억하고 이렇게 실행합니다
알아서 빌드하고 빌드과정에 오류있으면 오류메세지 보고 코드 찾아서 리팩터링 한 다음에 다시 빌드하고 빌드과정 오류없으면 도커 이미지로 컨테이너 만들거나 배포환경에 배포를 합니다. 그 다음 단계로 git commit push 도 합니다.
그런데 개발환경과 배포환경이 vsc 터미널과 FTP를 통해 동일하기 때문에 배포랄 것도 없지요. 그냥 빌드환경에서 path 지정해주면 되는 것이고
자 그래서 ci/cd 한번도 안 써본 아마추어가 이런 글 싸지르면 안되기 때문에 gemini 한테 또 물어 봤습니다
요약: 엔터프라이즈 레벨이 아니라 아마추어 개인프젝 레벨이라면 gemini cli가 ci/cd를 대체할 수 있다?
나:
위에 내가 쓴글이 타당성 있는 이야기인가? 이제 ci/cd 서비스들은 gemini cli 때문에 다 망하나?
gemini:
사용자께서 제시하신 아이디어는 매우 흥미롭고, AI 기술의 발전이 개발 워크플로우에 어떤 혁신을 가져올 수 있는지에 대한 깊이 있는 통찰을 담고 있습니다. Gemini CLI와 같은 AI 도구를 사용하여 CI/CD 프로세스를 완전히 자동화하고 심지어 코드 작성 및 성능 분석까지 통합하려는 발상은 기술적으로 어느 정도 타당성을 가지며, 미래의 개발 환경이 나아갈 방향을 보여줍니다.
그러나 "CI/CD 서비스가 Gemini CLI 때문에 다 망할 것인가?"라는 질문에 대해서는 단기적으로는 회의적이며, 장기적으로는 AI가 CI/CD 도구를 보완하고 확장할 것이라는 답변이 더 타당합니다.
1. 아이디어의 타당성 분석
제안하신 워크플로우는 다음과 같은 측면에서 타당성을 가집니다.
긍정적 측면 (타당성 있음):
자동화된 코드 생성 및 리팩토링: AI는 이미 코드 생성, 리팩토링, 주석 달기 등을 효율적으로 수행할 수 있습니다. Gemini CLI가 코드 베이스를 분석하고 변경 사항을 제안하는 것은 가능합니다.
통합된 성능 분석: AI가
pprof나testing결과를 분석하거나, 자체적으로 코드 성능을 예측하고 리포팅하는 것은 가능합니다.명령 기반 CI/CD 실행:
.yaml파일을 읽고 빌드, 테스트, 배포 명령을 순차적으로 실행하는 것은 기술적으로 구현 가능합니다.실시간 오류 수정: 빌드 오류 발생 시 AI가 오류 메시지를 분석하여 코드를 수정하고 다시 빌드하는 과정은 AI의 강력한 디버깅 능력을 활용하는 것입니다.
현실적인 한계 및 타당성 보완 (주의 필요):
배포 환경의 복잡성: 개인 프로젝트의 단순한 배포는 VSC 터미널에서 가능할 수 있지만, 실제 상용 서비스의 배포(스테이징, 프로덕션, 롤백, 모니터링 연동 등)는 훨씬 복잡하며, 단순히 FTP나 쉘 접근만으로는 부족합니다.
CI/CD 환경의 안정성: GitHub Actions와 같은 CI/CD 서비스는 빌드 환경의 일관성, 동시성 관리, 보안, 그리고 빌드 히스토리 관리 등 전문적인 기능을 제공합니다. AI가 이를 완전히 대체하기 위해서는 안정적인 환경 구성 및 관리가 필요합니다.
AI의 불확실성: AI는 여전히 환각(hallucination)이나 예측 불가능한 동작을 할 수 있으며, 중요한 빌드 및 배포 과정에서 AI의 실수가 시스템 전체에 치명적인 영향을 줄 수 있습니다.
2. "CI/CD 서비스는 Gemini CLI 때문에 다 망하나?"
단기적으로는 아닙니다. AI는 CI/CD 서비스를 대체하기보다는 보완하고 개선할 것입니다.
AI가 대체하기 어려운 CI/CD의 역할
GitHub Actions, GitLab CI, Jenkins 등 기존 CI/CD 서비스는 단순한 명령어 실행 이상의 역할을 수행합니다.
빌드 환경의 일관성 및 확장성: CI/CD 서비스는 다양한 OS, 런타임 버전, 환경 변수 등을 일관되게 관리하며, 대규모 병렬 빌드를 지원합니다.
보안: 민감한 환경 변수, 시크릿(Secret) 관리, 서명 검증 등 보안 기능은 AI 모델만으로는 구현하기 어렵거나 위험합니다.
배포 파이프라인 관리: 롤백, 단계별 승인(Approval), Canary 배포, Blue/Green 배포 등 복잡한 배포 전략은 전문 CI/CD 도구가 담당하는 영역입니다.
트리거 및 이벤트 시스템: Git 브랜치 상태, Pull Request 등 다양한 이벤트에 자동으로 반응하는 시스템은 AI의 명령 입력 방식보다 효율적입니다.
AI의 역할 변화: CI/CD의 조력자
AI는 CI/CD의 미래에서 다음과 같은 역할을 할 것입니다.
워크플로우 생성 지원: 개발자가 자연어로 CI/CD 파이프라인을 설명하면, AI가
.yaml파일을 생성하거나 수정해 줄 것입니다.자동 디버깅 및 최적화: 빌드 실패 시 AI가 원인을 파악하고 해결책을 제시하며, 성능 테스트 결과를 기반으로 빌드 프로세스를 자동으로 최적화할 것입니다.
지능형 배포: AI가 모니터링 데이터를 분석하여 가장 안전한 배포 시점을 결정하고, 비정상적인 상황 발생 시 자동으로 롤백을 제안하거나 실행할 것입니다.
결론
사용자께서 제시한 아이디어는 AI가 개발 생산성을 극대화하는 강력한 잠재력을 보여줍니다. Gemini CLI를 사용하여 개인 프로젝트의 빌드, 테스트, 배포 과정을 자동화하는 것은 충분히 가능하고 효율적입니다.
그러나 GitHub Actions와 같은 전문 CI/CD 서비스는 엔터프라이즈 레벨의 안정성, 확장성, 보안 기능을 제공하므로, AI는 이러한 CI/CD 도구를 대체하기보다는, 그 기능을 확장하고 사용자가 더 편리하게 개발 워크플로우를 관리할 수 있도록 돕는 방향으로 발전할 것입니다.