[00:00]
[음악]
[00:03]
[박수]
[00:04]
안녕하세요, 또 다른 영상에 오신 걸 환영합니다. AI
[00:08]
코더는 요즘 모든 사람들이
[00:10]
사용하는 도구죠. Cursor, Clue
[00:13]
Claude Code, Aider, 또는 제가 최근에
[00:16]
사용하고 있는 Open Code 같은 것들 말이에요.
[00:19]
이런 도구들은 멋지지만, 만약 여러분이
[00:22]
이런 AI 코더들로 구성된 전체 팀을
[00:24]
만들어서 비동기적이고 쉽게
[00:26]
작업을 수행하면서도
[00:29]
상호작용이 가능하고 모든 것이
[00:31]
로컬에서 실행된다면 어떨까요? 만약
[00:34]
여러분이 서로 다른 작업을 수행하는
[00:36]
여러 AI 코더 인스턴스 팀을 만들고 싶다면,
[00:39]
오늘 제가 보여드릴 방법을 사용할 수
[00:41]
있습니다.
[00:44]
기술적으로는 수많은 AI 터미널 창을
[00:46]
만들고 각각에게 작업을 요청할 수도
[00:49]
있지만, 그건 지루할 뿐만 아니라
[00:51]
엄청나게 나쁜 방법입니다. 왜냐하면
[00:54]
여러 AI 코더가 같은 프로젝트에서 작업한다면,
[00:57]
한 AI 코더가 다른 인스턴스의 코드를
[00:59]
덮어쓸 수 있고 그러면 제대로 작동하지
[01:02]
않을 거예요. 게다가 각각에게 수동으로
[01:05]
하나씩 작업을 주고 탐색하는 것도
[01:08]
매우 어려워질 수 있습니다.
[01:10]
하지만 이를 해결하기 위해 저는 좋은
[01:13]
워크플로우를 가지고 있습니다. 제가 하는 방법은
[01:16]
작업 할당 시스템을 만든 것입니다.
[01:18]
제가 하는 것은 수행하고 싶은 작업들을
[01:22]
포함하는 작업 파일을 만드는 것입니다.
[01:25]
때로는 작업들이 서로 의존적이기도 해요.
[01:27]
그래서 저는 일반적으로 동시에
[01:29]
수행할 수 있는 작업들과 하위 작업들의
[01:31]
세트를 기반으로 정리하려고
[01:34]
노력합니다.
[01:37]
각 작업마다 세 개의 필드가 있습니다.
[01:40]
브랜치 이름. 만약 작업할 브랜치가
[01:43]
이미 존재한다면, 현재 상태의
[01:46]
상태 정보가 있습니다. 대부분이
[01:48]
동시에 실행되기 때문에
[01:50]
무슨 일이 일어나고 있는지
[01:52]
추적해야 합니다.
[01:53]
그래서 필요에 따라 상태를 업데이트하는데,
[01:56]
예를 들어 할당되었는지 또는
[01:59]
개입이 필요한 상태인지
[02:01]
그런 것들 말이죠.
[02:03]
[02:05]
또한 하나 더 있는데, tmux
[02:08]
세션의 이름을 저장하도록 하는 것입니다.
[02:10]
tmux는 여러 AI 코더가
[02:14]
작동하도록 하기 위해 필요한
[02:16]
주요 요소 중 하나입니다. tmux 부분에
[02:19]
오기 전에 먼저 git
[02:21]
worktree에 대해 설명드리겠습니다. git worktree와
[02:24]
브랜치는 다른 것입니다. Git worktree는
[02:27]
기본적으로 여러분이 가진
[02:29]
전체 레포지토리나 프로젝트의 물리적 복사본으로,
[02:31]
브랜치를 전환하는 등의 작업 없이도
[02:34]
실제로 실행할 수 있다는 의미입니다.
[02:36]
비록 이것도 여전히 git에 의해
[02:38]
관리되므로 기능이 완성되면
[02:41]
그 worktree를 다시 병합하고
[02:43]
예전처럼 하나의 레포지토리로 돌아갈 수
[02:46]
있어서 꽤 좋습니다. 실제로 보여드리겠습니다.
[02:50]
여기 이 프로젝트가 있고
[02:52]
git worktree add 명령어를
[02:55]
B 옵션과 함께 실행할 수 있습니다. 그 다음
[02:57]
이 트리나 기능의 이름과
[03:00]
트리를 보관할 위치를 입력하는데, 그것은
[03:03]
work 디렉토리/기능 이름에
[03:05]
있게 됩니다.
[03:07]
잠시 후 그 작업이 완료되고, 이제 여기서 볼 수 있듯이
[03:11]
기본적으로 전체 레포지토리를 복사했고
[03:14]
이것을 실행할 수 있으며
[03:16]
모든 것을 메인으로 다시 병합할 수 있습니다.
[03:18]
이것도 보여드리겠습니다.
[03:20]
[03:22]
마지막에 보여드릴 예정입니다. 게다가 이런 것들을
[03:25]
수동으로 할 필요도 없어요. 다음 단계에서
[03:28]
모든 게 자동화될 거거든요. 하지만
[03:30]
이건 여러분이 한번 살펴보시면
[03:32]
내부적으로 어떻게 작동하는지
[03:34]
더 잘 이해할 수 있는 내용입니다.
[03:35]
자, 이제 git work trees 외에도
[03:39]
또 다른 도구를 사용할 건데요
[03:41]
바로
[03:42]
tmux라는 것입니다. 이게 뭐냐면, tmux는
[03:47]
터미널 멀티플렉서(terminal multiplexer)의
[03:49]
줄임말입니다. 기본적으로 백그라운드에서
[03:51]
실행되는 여러 터미널 세션을
[03:53]
생성할 수 있게 해주는데, 언제든지
[03:56]
접속해서 무슨 일이 일어나고 있는지
[03:58]
확인하거나 오래 걸리는 명령어를
[04:00]
실행하고 나중에 다시 돌아와서
[04:03]
여러 세션을
[04:05]
가질 수 있습니다. 어떻게 작동하는지
[04:07]
이해할 수 있도록
[04:09]
보여드리겠습니다. 하지만 그 전에
[04:11]
오늘의 스폰서인 Surf
[04:13]
Shark에 대해 말씀드릴게요. 온라인
[04:15]
활동이 추적당하는 게 지겹거나 공용
[04:17]
Wi-Fi에서 불안함을 느끼시나요? Surf Shark의 VPN이
[04:20]
도움을 드립니다. Surf Shark는 인터넷
[04:22]
연결을 암호화해서 개인
[04:23]
데이터를 보호하고, 특히 보안되지 않은
[04:25]
네트워크에서 브라우징을
[04:28]
비공개로 유지할 수 있게 해줍니다. 또한 귀찮은
[04:30]
지역 제한을 우회해서 전 세계의
[04:32]
더 다양한 콘텐츠에
[04:34]
접근할 수 있게 해줍니다. 심지어 VPN에
[04:36]
4개월 추가 무료 혜택도
[04:38]
제공하고 있어요. 제 쿠폰 코드 king을 사용하거나
[04:41]
설명란의 링크를 클릭하시면
[04:43]
Surf Shark를 사용해서 일부 국가에서
[04:45]
지역 제한으로 인해 사용할 수 없는
[04:47]
여러 AI 모델이나 기능들을
[04:49]
차단 해제할 수 있습니다. Surf Shark와 함께라면
[04:51]
'해당 지역에서 사용할 수 없습니다'라는
[04:53]
메시지는 안녕이고, 원하는 만큼
[04:55]
기능을 사용할 수 있습니다. 가장 좋은 점은
[04:57]
Surf Shark 계정 하나로 무제한 기기를
[05:00]
지원한다는 거예요. 그리고
[05:02]
Android, iOS, Mac, Windows, Linux 등
[05:05]
모든 플랫폼을 지원합니다. 게다가 100개 이상의
[05:08]
지역에 3,200개 이상의
[05:10]
다양한 서버를 제공해서 언제나 빠르고
[05:12]
안정적인 연결을 보장합니다. 제 쿠폰
[05:14]
코드 king을 사용하거나 설명란의
[05:17]
링크를 클릭해서 Surf Shark의 독점
[05:19]
4개월 추가 무료 혜택을 받으세요. 그리고
[05:21]
걱정하지 마세요. 30일
[05:23]
환불 보장이 있어서
[05:25]
위험 부담 없이 사용해볼 수 있습니다. 자, 이제 영상으로 돌아가죠.
[05:29]
이게 제 일반 터미널입니다. 저는
[05:32]
Tmux가 설치되어 있어요. 할 수 있는 건
[05:35]
tmux new session을 실행하고
[05:38]
-s 옵션으로 제가 참고할
[05:40]
세션 이름을 지정하면
[05:42]
새로운 세션으로 들어가게 되고
[05:44]
여기 보시면 이게 tmux 세션인데
[05:47]
메인 터미널과는 완전히
[05:49]
분리되어 있습니다. 여기서 claude code
[05:52]
인스턴스를 실행하면
[05:54]
실행되는 걸 볼 수 있어요. 이제
[05:56]
Ctrl+B를 누르고
[05:59]
d 명령어로 이 세션에서 분리되어
[06:02]
메인 터미널로 돌아올 수 있습니다. 이제
[06:05]
attach 명령어와 세션 이름으로
[06:07]
tmux 세션 터미널에 다시
[06:10]
접속할 수 있고, 그러면 바로
[06:12]
접속됩니다. 그리고 보시면
[06:14]
claude code가 여전히 실행되고 있는데, 정말 멋지죠.
[06:18]
이것은 모든 AI 코딩 에이전트를 실행하는 데 매우 좋은 후보가 됩니다.
[06:20]
우리의 모든 AI 코딩 에이전트를 실행하는 데 매우 적합합니다.
[06:23]
이제 이것이 우리가 사용할 도구입니다.
[06:25]
하지만 이 모든 것이 어떻게 함께 작동할까요?
[06:28]
시작하려면, Ader, Claude Code, Open Code 중에서
[06:30]
원하는 것을 선택할 수 있습니다.
[06:33]
모두 훌륭합니다. 저는 이 영상에서 Claude Code를 사용하겠습니다.
[06:36]
많은 사람들이 사용하고 싶어하는 도구이기 때문입니다.
[06:40]
하지만 동일한 방식이 Open Code와
[06:42]
Ader에서도 작동합니다.
[06:44]
새로운 명령어를 만들거나
[06:46]
규칙에 넣어둘 수도 있습니다.
[06:49]
하지만 명령어를 사용하면
[06:51]
규칙 파일을 프로젝트 디렉토리에
[06:54]
옮기지 않고도 모든 프로젝트에서 작동합니다.
[06:57]
이것은 꽤 멋진 기능입니다.
[06:59]
Claude Code에서는 일반적으로
[07:02]
Claude Commands 폴더로 가서
[07:05]
새로운 마크다운 파일을 만들어
[07:07]
명령어를 생성할 수 있습니다.
[07:09]
이것이 에이전트 스폰 워크플로우입니다.
[07:12]
이는 코더에게 에이전트 스포너이자
[07:15]
오케스트레이터가 되라고 요청합니다.
[07:17]
에이전트 스포너라고 알려줍니다.
[07:19]
작업 파일을 읽고 하나 또는 여러 작업을
[07:22]
찾아 한 에이전트가 해결할 수 있는 작업을
[07:25]
새로운 에이전트에게 할당합니다.
[07:27]
먼저 새로운 워크 트리를 만들고
[07:30]
프롬프트를 구축한 다음
[07:32]
에이전트를 실행합니다.
[07:35]
작업 파일을 읽고
[07:38]
한 에이전트가 해결할 수 있는
[07:41]
하나 또는 여러 작업을 선택하도록 요청합니다.
[07:44]
여러 작업이 서로 의존적이면
[07:46]
같은 에이전트가 해결해야 합니다.
[07:49]
작업이 독립적이면
[07:51]
별도의 에이전트가 해결해야 합니다.
[07:54]
할당될 각 선택 작업에 대해
[07:57]
먼저 git 워크 트리를 만들고
[07:59]
에이전트 프롬프트를 구축한 다음
[08:02]
분리된 T-mux 세션을
[08:04]
생성하도록 요청합니다.
[08:06]
이 세션은 프롬프트와
[08:08]
edit, write, bash, replace의
[08:11]
허용된 도구와 함께 Claude Code 인스턴스를 실행합니다.
[08:14]
또한 실행하는 모든 에이전트에 대해
[08:16]
작업 마크다운 파일을 claimed 상태로 업데이트하고
[08:19]
팀 세션에서 새로운 정보를 받으면
[08:21]
계속 업데이트하도록 요청합니다.
[08:24]
이제 그게 전부이고 드디어 사용할 수 있습니다.
[08:27]
Claude Code를 실행하세요.
[08:31]
작업 파일이 준비되어 있는지 확인하세요.
[08:32]
Kingbench에서 실행하고 있고
[08:35]
첫 번째 작업으로 라이트 테마를 만들고
[08:37]
옵션에 필터도 추가하도록
[08:40]
요청할 예정입니다.
[08:41]
이제 우리가 만든 워크플로우를 실행하면
[08:45]
먼저 작업 파일을 읽고
[08:46]
git 워크트리 명령을 실행하여
[08:49]
트리를 만들고
[08:51]
t-mux 명령도 실행하여
[08:53]
세션을 생성하는 것을 볼 수 있습니다.
[08:56]
곧 완료될 것입니다.
[08:58]
세션과 모든 것이 생성되었고
[09:01]
작업은 세션 자체에서 진행되어야 합니다.
[09:05]
T-mux의 세션으로 이동하여
[09:08]
무엇을 하고 있는지
[09:10]
모든 것을 볼 수 있습니다.
[09:13]
질문을 할 수도 있고
[09:16]
직접 답변해야 할 수도 있습니다.
[09:18]
하지만 이동하고 싶지 않다면
[09:20]
Claude Code에게 상태를 알려달라고
[09:23]
요청할 수도 있습니다.
[09:25]
그러면 해당 세션들의 출력을 보고
[09:28]
무슨 일이 일어나고 있는지 알려줍니다.
[09:30]
이것도 멋집니다.
[09:32]
곧 완료되면 워크 트리로 가서
[09:35]
실행할 수 있습니다.
[09:39]
라이트 테마가 작동하는 것과
[09:41]
두 번째 워크 트리 작업도
[09:43]
다른 폴더에서 완료된 것을 볼 수 있습니다.
[09:46]
이제 병합하는 부분이 나옵니다.
[09:48]
마스터 Claude Code에게
[09:51]
병합해달라고 요청하면
[09:54]
쉽게 할 수 있을 것입니다.
[09:56]
정말 놀랍습니다.
[09:59]
이것은 제가 본 것 중에서
[10:02]
AI 코더의 자기 생성 팀을 만드는
[10:03]
가장 좋은 방법이고 실제로 말이 됩니다.
[10:06]
많은 사람들이 여러 터미널 창을 열고
[10:09]
각각을 탐색하며 수동으로
[10:11]
프롬프트를 주는 것을 보는데
[10:13]
이는 꽤 나쁘지만, 이 방법은 말이 되고
[10:16]
실제로 작동하며 작업을 빠르게
[10:19]
처리하는 데 정말 유용합니다.
[10:22]
T-mux에는 분할 창 같은
[10:23]
옵션들도 있고 모든 세션을
[10:26]
타일 창에서 보여주도록 할 수 있습니다.
[10:29]
무엇이 일어나고 있는지
[10:31]
지켜보고 싶다면 시도해볼 수 있습니다.
[10:35]
실제로 Claude Code에게
[10:36]
어떻게 하는지 명령어를 달라고
[10:38]
요청할 수 있고
[10:40]
다른 터미널 창에서 열 수 있습니다.
[10:42]
이것이 작동하는 방식입니다.
[10:45]
이 워크플로우가 정말 좋다고 생각했고
[10:48]
믿거나 말거나 실제로 유용합니다.
[10:51]
전반적으로 꽤 멋집니다.
[10:54]
어쨌든, 아래에 생각을 공유하고
[10:57]
채널을 구독하세요.
[10:59]
슈퍼땡스 옵션으로 기부하거나
[11:01]
채널에 가입하여
[11:03]
혜택을 받을 수도 있습니다.
[11:05]
다음 영상에서 뵙겠습니다. 안녕히 가세요.