멘탈 지키며 여러 Claude Code 작업 실행하기

채널 아이콘
Mikkel Malmberg 구독자 2,000명

요약

이 영상은 Claude Code 에이전트를 여러 개 동시에 띄워도 충돌 없이 작업 흐름을 유지하는 방법을 설명합니다. Git Work Trees 기능을 활용해 각각 독립된 작업 디렉터리를 만들고, GWT 스크립트와 TMUX를 통해 손쉽게 세션을 관리합니다. 특히 ‘claude start’ 스크립트로 초기 프롬프트와 권한을 설정해 에이전트를 자율적으로 실행하도록 구성하는 팁을 제공합니다.

하이라이트

  • 🔑 여러 에이전트를 한 디렉터리에 두면 파일 편집·테스트 충돌이 금세 발생하니 피해야 합니다.
  • 🌟 Git Work Trees를 사용하면 같은 저장소의 복사본을 원하는 만큼 만들고 독립적으로 관리할 수 있습니다.
  • 🚀 GWT 스크립트(get wild Thor)를 통해 새 워크트리를 단일 명령으로 생성하고 TMUX 창 이름까지 자동으로 지정합니다.
  • ⚡️ claude start 스크립트로 초기 프롬프트·옵션을 설정해 에이전트를 자동으로 실행하고 반복 지시를 줄일 수 있습니다.
  • 📌 GitHub PR 리뷰 기능을 활용하면 에이전트가 생성한 변경 사항에 인라인 코멘트를 달아 다음 단계 작업을 수월하게 진행합니다.
  • 🎯 에이전트에게 bash·gh·rg 등 커맨드를 미리 허용해 멈추지 않고 스스로 파일 찾기·편집·테스트를 수행하게 합니다.
  • 🌐 TMUX 창을 활용해 각 워크트리별로 에이전트를 격리 관리하며, 필요할 때마다 빠르게 전환할 수 있습니다.
  • 🤖 메인 작업 세션에서는 직접 코딩하고, 에이전트는 백그라운드에서 동시에 여러 이슈를 처리하도록 구성합니다.

용어 설명

Git Work Trees

하나의 Git 저장소에서 여러 독립 작업 디렉터리를 생성해 각 브랜치를 별도로 관리하는 기능


Warning: Illegal string offset 'term' in /var/www/youtubetranscribeapi/public/detail.php on line 920
{


Warning: Illegal string offset 'description' in /var/www/youtubetranscribeapi/public/detail.php on line 921
{


Warning: Illegal string offset 'term' in /var/www/youtubetranscribeapi/public/detail.php on line 920
}


Warning: Illegal string offset 'description' in /var/www/youtubetranscribeapi/public/detail.php on line 921
}

챕터 정보가 없습니다.

지금까지는 AI 에이전트 여러 개를 동시에 실행하는 것에 대해 크게 신경쓰지 않았어요.
솔직히 하나만 제대로 작동시키기도 벅찼거든요.
하지만 이제 Claude가 혼자서도 잘 작업할 수 있다는 능력에 조금씩 자신감이 생기고
있고
그리고 저 자신이 일종의 맹수 조련사 역할을 할 수 있다는 능력에도 자신감이 생기면서
이제 한 마리 더 우리 안에 들여보내는 아이디어를 가지고 놀기 시작했어요.
하지만 그게 어떻게 작동하는 걸까요?
서로 발을 밟고 다니지 않을까요?
원하는 만큼 많은 Claude를 만드는 방법을 보여드릴게요.
정신을 잃지 않고 같은 작업을 할 수 있도록 말이죠.
아, 그리고 안녕하세요, 저는 멜입니다.
앱과 사이트 그리고 오픈소스 프로젝트를 만들고 있어요.
그럼 Claude 이야기로 돌아가 볼까요.
문제가 뭘까요?
두 에이전트가 같은 디렉토리에서 실행될 때
다른 에이전트가 만든 문제들과 얼마나 빨리 충돌하기 시작할지 상상할 수 있을 거예요.
파일을 포맷하고, 편집하고, 테스트를 실행할 때
꽤 빨리 망가질 거라는 게 명백하죠.
하지만 Anthropic은 똑똑해서
이미 이 문제에 대해 생각해두고
Git Work Trees라는 길로 저를 인도했어요.
이것은 Git의 내장 기능으로
같은 레포지토리의 여러 복사본을 가질 수 있게 해줍니다.
각각 고유한 파일 세트를 가지고 말이죠.
사용하려면 git work tree라고 입력하면
사용법을 알려줄 거예요.
하지만 이걸 하면서도 정신을 유지하는 방법은 다음과 같습니다.
저는 GWT라는 스크립트를 작성했는데요.
물론 get wild의 줄임말입니다.
Thor.
그만해요.
그건 getting wiggy titted예요.
GWT 다음에 이름을 붙여서 사용합니다.
스크립트 내부를 살펴보면
실제로는 꽤 간단하다는 걸 알 수 있어요.
그리고 스마트 따옴표가 제가 LLM과 함께 이 작업을 해왔다는 사실을 드러낼 거예요.
여기에 EM 대시도 있을지도 모르고요.
몇 가지 변수를 설정합니다.
메인 브랜치가 main인지 master인지 알아내려고 해요.
그리고 여기에 공유되는 git workree 명령어들이 있고요.
기본적으로 T-Max 안에서 실행 중이면 창 이름을 바꿉니다.
T-Mox 밖에서 실행 중이면
대신 새 세션과 창을 설정합니다.
물론 이 스크립트와 다른 스크립트들을 설명란에 링크와 함께 공유할게요.
운 좋게도 이미 두 개의 이슈가 준비되어 있어요.
실제로 이전 비디오에서 언급한 /NI 명령어로 설정한 것들이에요.
하나는 모든 slim 템플릿을 ERB로 변환하는 것이고
다른 하나는 남은 뷰 컴포넌트들을 flex 컴포넌트로 변환하는 것입니다.
이런 변경사항들은 예전에는
아마 영원히 미뤄뒀거나
시간을 투자할 가치가 없다고 느꼈을 거예요.
하지만 이제 에이전트가 있으니까
Claude가 편집하게 두고 저는 조금만 정리하면
준비가 되는 거죠.
첫 번째 work tree를 설정해볼까요.
7629라고 불러요.
7629,
보시다시피 이미 한 번 해봤어요.
Slimless라고 부르죠.
실행한 후에는 T-Mox 안의 창과 work tree와 브랜치 안에서 우리를 발견하게 될 거예요.
모두 같은 이름으로 된
그리고 T-Mox 안에서도 작동해요.
다른 창을 하나 더 만들어서 다른 것을 위해 호출해보죠.
그래서 첫 번째
work tree를 설정해보겠습니다.
7629라고 불리는 것이에요.
그래서 7629,
보시다시피 이미 한 번 해봤어요.
Slimless라고 부르죠.
실행한 후에는
T-Mox 안의 창과 work tree와
브랜치 안에서 우리를 발견하게 될 거예요.
모두 같은 이름으로 된
그리고 T-Mox 안에서도 작동합니다.
다른 창을 하나 더 만들어서 다른 것을 위해 호출해보죠.
모두 같은 이름의 브랜치입니다. 그리고 이건
T-Mox 내부에서도 작동합니다. 그러면
다른 창을 하나 더 만들어서 다른
이슈 763을 위해 호출해보겠습니다.
플렉스 모어입니다.
이제 설명적인 제목이 있는 두 개의 창이 있고
서로 전환할 수 있습니다.
그래서 현재 작업 중인 컨텍스트를
항상 알 수 있습니다. 그리고
각각 자체 Claude를 가질 수 있습니다. 자,
우리의 Claude를 작업에 투입해보겠습니다.
이를 위한 또 다른 스크립트가 있습니다.
단순히 Claude를 실행한 다음 타이핑을 시작할 수도 있지만,
초기 프롬프트와 몇 가지 옵션으로
Claude를 실행하여 우리가 원하는
방향으로 이미 설정할 수도 있습니다.
저는 이미 Claude가 이슈 7629에서
작업하기를 원한다는 것을 알고 있습니다.
그리고 이를 도와주는 스크립트를
작성했습니다. 그러면
claude start라는 스크립트를 보면
기본적으로 초기 프롬프트와 함께
Claude를 실행하는 것을 볼 수 있습니다.
"이슈에서 작업 시작"이라고 말하고
전달한 번호를 입력합니다. "열린 마음을 유지하고
제안된 접근 방식을 재고려해도 됩니다.
새로운 관련 정보를 발견하면
이슈를 업데이트하세요. 완료 후에는
변경사항을 검토하고
단순화할 수 있는 것들이 있는지 확인하거나
사용하지 않는 것들을 제거하세요.
마지막으로 이 이슈에 대한 PR이 있다면
변경사항으로 PR을 만드세요. 업데이트되었습니다.
진행 상황을 포함하세요." 이것이
프롬프트입니다. 제가 목표로 하는 것은
Claude가 질문하지 않고도 가능한 한
멀리 그리고 빠르게 실행되도록 하는 것입니다.
제가 같은 것들로 후속 조치를 취할 필요 없이 말이죠.
저는 항상 Claude가 돌아가서
변경사항을 살펴보기를 원합니다.
조금 더 간소화할 수 있는지 확인하세요.
그래서 처음부터 포함시키고 그가 자유롭게
활동하도록 하겠습니다. 그리고 이와 같은
약간 큰 변경사항들에서는
PR을 갖는 것이 좋습니다. GitHub에서
PR 리뷰로 인라인 코멘트를 작성할 수 있고
완료 후에는 Claude에게
리뷰를 읽고 게시한 코멘트들로부터
변경사항을 만들라고 말할 수 있습니다.
인라인으로 라인을 참조하는 것이
더 쉽습니다. 왜냐하면 우리는 지금
다른 작업 디렉토리에서 작업하고 있기 때문입니다.
음,
Claude가 루트 디렉토리에서
일부 명령을 항상 실행하도록 허용했더라도,
그는 이 새로운 워크 트리 디렉토리에서
할 수 있는지 다시 물어볼 것입니다. 그래서
제가 그가 사용할 수 있다고 알고 있는 몇 가지 도구를 줄 것입니다.
그가 최대한 멀리 그리고 빠르게
나아갈 수 있도록 하는 정신으로
제가 도와주지 않아도 되게 말이죠.
그래서 편집하고 생성할 수 있다고 말하겠습니다.
이것들은 내장된 액션들입니다. 하지만
gh로 시작하는 bash 명령도
실행할 수 있습니다. 그것은
GitHub 명령들입니다. rg, find, ls로 시작하면
이것들은 모두 파인더 메서드들,
정보 수집 메서드들, 명령들입니다. 그리고
제 bin format과 bin check 스크립트도
실행할 수 있습니다. 파일을 포맷하고
테스트와 체크를 실행하는 데 사용합니다.
그리고 모든 것을 말이죠. rails 명령과
git 명령도 실행할 수 있습니다.
물론, 원하는 만큼 적게 또는 많이
추가할 수 있습니다. Claude를 신뢰해서
더 많은 권한을 줄 수도 있고
원하는 만큼 적게 줄 수도 있습니다.
할 수 있습니다. 또한 이런 식으로도 호출할 수 있죠.
위험하게... 이름이 뭐였는지 까먹었네요.
뭐라고 불렀는지 기억이 안 나는데,
Claude가 완전히 자유롭게 작업할 수 있도록 하는
플래그가 있어요. 안전장치 없이 완전히 마음대로 하게 하는 거죠.
그걸 사용할지는 여러분이 결정하시면 됩니다.
준비되셨다면 말이죠.
네,
일단 이걸로 해보겠습니다.
좋아요, 그럼 해봅시다.
claude
start
7629
이 하나에는 이렇게 하고, 다른 하나에는
claude
start 7630이라고 하겠습니다.
이제 두 이슈 사이를 전환하면서
Claude가 작업하는 걸 지켜볼 수 있습니다.
Claude가 어떤 정보가 필요하거나
작업을 완료했을 때
알려주겠죠. 그러면
터미널 벨이 울리고
응답할 수 있습니다.
Claude가 작업하는 동안
새로운 이슈를 설정할 수도 있고,
우리가 직접 작성하고 싶은 코드도
작업할 수 있어요. Claude는 많은 것들을 잘하지만
여전히 디자인적인 부분이나
세부사항들은 직접 작성하고 싶을 수 있거든요.
물론 메인 작업 세션에서
그런 작업을 할 수 있고
잠깐 쉬거나 다른 걸 봐야 할 때만
Claude에게 응답하면 됩니다.
그러는 동안에도
Claude는 백그라운드에서
워크트리에서 혼자 작업하고
테스트를 실행하고
때로는
문제를 일으킬 수도 있어요.
하지만 조금만요. 그리고 네, 이게 전부입니다.
도움이 되셨기를 바랍니다. 만약 그렇다면
구독 버튼을 눌러주세요.
작은 클릭 한 번이면 됩니다. 그리고 계속 지켜봐 주세요.
네, 이번 시간은 여기까지이고
다음에 또 뵙겠습니다.