Claude Code는 Anthropic에서 개발한 명령줄 기반 AI 코딩 도구입니다. 터미널에서 자연어로 명령을 입력하면, AI가 코드 분석, 버그 탐지, 리팩토링 제안까지 해주죠. Git 충돌 해결이나 코드 리뷰처럼 시간이 오래 걸리는 작업도 AI와의 대화로 빠르게 처리할 수 있습니다. 최근 인포그랩도 Claude Code를 도입하며 개발 생산성을 높이고 있습니다.

그러나 GitLab 사용자로서 아쉬움도 있습니다. Anthropic은 Claude Code GitHub Actions를 제공해 GitHub과 Claude Code의 원활한 통합을 지원합니다. 그러나 GitLab에는 아직 공식 지원이 없습니다.

Anthropic의 공식 지원 도구로 GitHub과 Claude Code를 통합하면, GitHub에서 Claude Code의 AI 개발 경험을 누릴 수 있습니다. GitHub의 Pull request(PR)나 이슈에서 댓글로 @claude를 멘션하면, Claude Code가 자동으로 활성화돼 코드 분석, 버그 수정 등을 수행하죠. 또 결과를 PR로 제출하거나, 댓글로 답변합니다. 그러나 GitLab에서는 이를 바로 경험하기 어렵습니다.

저는 고객사의 GitLab 사용을 지원하는 DevOps 엔지니어입니다. 그만큼 GitLab에도 Claude Code의 편리한 AI 개발 경험을 구현하고 싶었습니다. GitLab의 강력한 CI/CD 파이프라인과 Claude Code의 AI 성능을 결합하면, 더욱 효율적인 개발 환경을 만들 수 있기 때문입니다.

숱한 시도 끝에, 저는 GitLab과 Claude Code를 통합하는 봇을 개발했습니다. 몇 가지 설정으로, GitLab 사용자도 Claude Code의 AI 개발 경험을 누리도록 구축했죠. 지금부터 구체적인 구현 과정과 실제 활용 결과를 소개하겠습니다.

GitHub 솔루션에서 GitLab 해법 찾기

호기롭게 GitLab과 Claude Code 봇을 개발하기로 결심했지만 걱정이 앞섰습니다. "설마 처음부터 모든 걸 직접 만들어야 하나?"

다행히 기존 솔루션을 활용해 이 고민을 해결할 수 있었습니다. 저는 GitHub을 탐색하다 ’claude-hub’이라는 프로젝트를 발견했는데요. 이 프로젝트는 GitHub에서 Claude Code를 사용하도록 지원하는 도구였습니다. 

코드를 분석해 보니 claude-hub은 Webhook 기반 아키텍처를 사용하고 있었습니다. GitHub Webhook으로 이슈/PR 이벤트를 탐지하고, 이벤트 데이터를 Claude API로 전달한 다음, AI 분석 결과를 다시 GitHub으로 응답하는 구조였죠.

저는 ’GitLab에도 이 구조를 적용할 수 있겠다’라고 생각했습니다. GitLab도 동일한 Webhook 시스템을 지원하고, Merge request(MR) 생성이나 Comment API도 GitHub과 유사하기 때문입니다. 물론 API 스펙이나 Webhook payload 구조는 플랫폼마다 다릅니다. 그러나 핵심 로직은 충분히 재활용할 수 있을 거로 판단했습니다. 게다가 이는 MIT 라이선스로 배포돼 제약 없이 수정 활용할 수 있었습니다.

여기서 저는 흥미로운 아이디어가 더 떠올랐습니다. "Claude Code와 함께 이 작업을 수행하자." 저는 개발 속도와 품질을 향상하는 데 Claude Code가 도움이 될 거로 기대했습니다. 이번 프로젝트는 ’Claude Code로 산출물의 품질을 실무에 즉시 활용할 만한 수준으로 얼마나 빨리 달성할 수 있는지’ 검증할 기회였습니다.

Claude Code 화면 | 인포그랩 GitLab
Claude Code 화면

모든 걸 Claude Code에 맡긴 바이브 코딩의 현실

저는 업무 효율성을 극대화하기 위해 ‘AI로만’ 개발하기로 했습니다. 특히 바이브 코딩(Vibe Coding)을 활용해 모든 코딩을 Claude Code와의 대화로만 진행하려 했습니다. 제 요구사항을 자연어로 표현하면, AI가 이를 코드로 변환하도록 했죠. 예를 들어, "GitLab Webhook을 받아서 멘션이 있으면 Claude API를 호출해 줘"라고 말하면, 코드가 뚝딱 생성되는 방식입니다.

저는 터미널에 Claude Code를 실행한 다음, "이 GitHub Webhook 코드를 GitLab용으로 바꿔줘", "GitLab API 인증 방식으로 수정해 줘", "이 에러 해결해 줘"라고 모든 요구사항을 AI에게 말했습니다. 그러자 몇 분 만에 코드가 나왔습니다. 제가 직접 GitLab API 문서를 읽을 필요 없이 Claude Code가 알아서 구현해 줬습니다.

그러나 Claude Code가 제 의도를 정확히 파악하지 못할 때도 있었습니다. 특히 복잡한 비즈니스 로직이나 GitLab의 특수한 API 스펙을 설명할 때, 어려움을 겪었습니다. 저는 "아니야, 그게 아니고"라는 말을 AI에게 수차례 반복했고, 질문은 더 복잡해졌습니다. 실력 좋은 외국인 개발자에게 상대방의 언어로 "이렇게 코딩해 주세요"라고 설명하는 느낌이었습니다.

이 과정에서 저는 “바이브 코딩이 만능은 아님”을 깨달았습니다. "몇 분 만에 앱 완성!"이라는 바이브 코딩 성공담과 달리 실제로는 다음과 같은 한계가 있었습니다.

  • 컨텍스트 이해 미흡: 프로젝트 규모가 커질수록 AI가 전체 구조를 파악하기가 어려움
  • 의도 전달의 어려움: 요구사항이 복잡할수록 자연어로 정확히 표현하기가 까다로움
  • 일관성 부족: 같은 내용으로 여러 번 요청해도 매번 결과가 다르게 나올 수 있음

그래도 포기하지 않았습니다. AI와의 소통 방식을 개선하면 이 문제를 해결할 수 있다고 봤기 때문입니다. 저는 AI에게 단순히 "이렇게 해줘"가 아니라, 요구사항을 구체적이고 단계적으로 구조화해 말했습니다. 중간에 멈추고 싶었지만, "될 때까지 하는 게 바이브 코딩이야"라는 생각으로 계속 시도했습니다. 완벽하지 않아도 어떻게든 결과를 내고 싶었습니다.

터미널에서 AI와 대화하며 코딩하는 모습 | 인포그랩 GitLab
터미널에서 AI와 대화하며 코딩하는 모습

GitLab+Claude Code=ClaudeBot 탄생

GitLab·Claude Code 통합 봇의 콘셉트는 간단했습니다. GitLab MR이나 이슈에서 @ClaudeBot을 멘션하면, Claude가 답변을 달아주는 시스템입니다.

구체적으로 다음 사항을 요청할 수 있습니다.

  • MR: ”@ClaudeBot 이 코드에서 성능을 개선할 부분이 있어?”, “@ClaudeBot 이 함수 리팩토링 해줄래?”
  • 이슈: ”@ClaudeBot 버그 원인이 뭐야?”

이렇게 멘션하면 봇이 해당 코드나 컨텍스트를 분석해 댓글로 답변을 달아줍니다. 또 GitLab API를 활용해 커밋, MR 생성, merge 등 다양한 요청 사항을 직접 수행합니다.

(왼쪽부터) GitLab·Claude Code 통합 봇의 Commit 결과, 설명 수정·merge 결과 | 인포그랩 GitLab
(왼쪽부터) GitLab·Claude Code 통합 봇의 Commit 결과, 설명 수정·merge 결과

@ClaudeBot 실전 투입

프로젝트에 착수한 지 일주일 만에 GitLab·Claude Code 통합 봇이 완성됐습니다. 마치 팀에 새로운 개발자가 합류한 느낌을 받았습니다.

먼저 MR 댓글 창에 ‘@ClaudeBot 질문’을 남겼더니 Claude가 답변을 달아줬습니다. GitLab 알림도 정상적으로 왔죠. 모든 히스토리는 GitLab에 남아서 나중에 다시 확인할 수 있었습니다.

GitLab·Claude Code 통합 봇의 특장점은 바로 GitLab 친화적인 기능이었습니다. 특히 AI가 MR의 변경된 파일을 자세히 분석해 답변하는데요. ‘이번 MR의 변경 사항 가운데 성능에 영향을 줄 만한 점이 있는지’ 묻는 말에도 정확하게 포인트를 짚어 명확하게 대답했습니다.

이 봇은 GitLab 워크플로 자동화도 지원해 편리했습니다. "리팩토링을 제안해 줘"라고 요청하면 새로운 브랜치를 만들어 개선된 코드를 커밋하고, MR까지 자동으로 생성했습니다. GitLab의 전체 워크플로에 자연스럽게 통합되는 느낌이었죠.

아직 완벽하지 않지만, GitLab 환경에서 주 7일 24시간 협업하는 나만의 스마트 동료가 생긴 기분이었습니다. 밤늦게 혼자 코드를 볼 때도, 주말에 버그를 분석할 때도 @ClaudeBot을 호출하면 즉시 피드백을 받을 수 있어 외롭지 않았습니다.

(왼쪽부터) GitLab·Claude Code 통합 봇의 버그 분석 결과, 코드 스니펫 검토 결과 | 인포그랩 GitLab
(왼쪽부터) GitLab·Claude Code 통합 봇의 버그 분석 결과, 코드 스니펫 검토 결과

맺음말

GitLab·Claude Code 통합 봇은 거창한 프로젝트는 아니었습니다. 그러나 "안 되면 내가 만들어서 쓰자"라는 개발자 정신을 발휘한 일이라서 과정 내내 재미있었습니다. Claude Code로 ‘혼자서 의미 있는 결과물을 빨리 만들어낼 수 있다’는 걸 실감했습니다.

이 과정에서 Claude Code와 함께한 바이브 코딩은 신선한 경험이었습니다. 혼자 문서를 뒤지면 시간이 오래 걸렸을 일을 Claude Code가 대신 수행하니까 진행 속도가 빨랐고요. 궁금한 점을 바로 해결할 수 있어 편리했습니다. 다만, GitLab Webhook은 금방 연동해도 Claude Code에게 정확한 컨텍스트를 전달하는 일은 까다로웠습니다. ‘AI와 소통하는 것도 하나의 스킬임’을 깨달았습니다.

현재 저는 다른 팀원과 함께 GitLab·Claude Code 통합 봇을 지속적으로 개선하고 있습니다. 앞으로 성능과 보안을 꾸준히 업그레이드할 계획입니다.

저와 비슷한 니즈가 있으시거나, 이를 직접 구현하고 싶은 분이 계신다면 Claude Code와 같은 도구로 언제든지 시도하시길 추천해 드립니다. 진입 장벽이 낮고, 만드는 과정이 즐겁습니다.

GitLab·Claude Code 통합 봇 개발 후기를 여기서 마무리합니다. 다음에는 더 흥미로운 개발 이야기로 찾아뵙겠습니다. 🙂

참고 자료

  1. Claude Code 홈페이지, https://www.anthropic.com/solutions/coding

인포그랩과 함께 AI 기반 업무 자동화로 엔지니어링 생산성을 극대화하세요. 지금 상담하세요.