읽기 설정
지난 몇 년 동안 정말 재능 있고 생산적인 소프트웨어 엔지니어와 협업할 수 있는 기회도 얻었고, 디스코드에서 함께 시간을 보내기도 하면서 좋은 관계를 맺을 수 있어서 정말 운이 좋았습니다.00:00
혹시 오픈 소스 작업으로 그를 알고 계시는 분들께서는 아실 테지만, 차오 트란 님은 제가 수년간 작업 방식을 발전시키는 데 많은 도움을 주셨습니다.00:10
일반적으로 제가 차오가 무언가를 하는 것을 보면, 저도 아마 그걸 해야 할 가능성이 높다고 생각해요. 그런 것들 중 하나로, 여러 번 나왔지만 배우려고 신경 쓰지 않고 미뤄왔던 건 git work trees였어요.00:18
어려워 보였고, 대체로 저는 그것들이 가장 유용해 보이는 상황은 피하려고 했습니다. 특히, 제가 하고 있는 작업에서 잠시 벗어나 코드 베이스 내의 다른 작업을 해야 할 때와 같은 상황에서요.00:31
혹시 일종의 긴급 수정 작업이나 APR 검토 상황일 수도 있겠네요. 일반적으로는 그런 상황을 피하려고, 깔끔하게 커밋할 수 있는 상태로 코드를 만들어 놓거나, 최악의 경우 변경 사항을 임시 저장하는 방법을 사용합니다.00:44
하지만 작업 트리는 개념적으로나 사용하기에 실제로 꽤 단순합니다.00:59
Git의 주요 목적 중 하나를 한번 생각해 보세요. Git은 여러 개발자가 서로 다른 파일 시스템에서 협업하여 코드를 작성할 수 있도록 지원합니다. 본인은 자신의 컴퓨터와 파일 시스템에서 특정 기능을 작업하고 있을 수도 있습니다.01:04
다른 개발자는 또 다른 기능을 자신의 컴퓨터와 파일 시스템에서 작업하고 있을 수도 있어요. 그리고 둘 다 완료되면, 그 기능들을 합쳐서 하나의 통합된 코드 베이스를 만들게 되죠.01:17
git 작업 트리를 통해 해결하려는 문제가 무엇인지 이해하기 위해, 인공지능이 야기하는 문제에 집중해 봅시다. 다른 상황들에 비해 훨씬 피하기 어려운 문제죠.01:27
문제가 발생하게 되는 시점은, 특히 어느 정도 시간 동안 특정 작업에 몰두하는 일종의 자율적인 AI 프로세스를 사용하고 있을 때입니다.01:38
제 현재 에이전트 AI 워크플로우를 예로 들어 보겠습니다. 일반적으로 저는 작업을 단계별로 나누어 진행할 수 있도록 트랙을 설계합니다.01:49
이후에 제가 작성한 스크립트를 실행하여, 새로운 AI 에이전트가 트랙의 각 단계를 순차적으로 처리하도록 합니다. 모든 단계가 완료되면, 에이전트들이 제가 검토할 수 있도록 PR을 생성합니다.01:57
관심 있으시다면 댓글을 남기시고 구독도 부탁드립니다. 이 워크플로우에 대해 더 자세히 다루는 것이 좋겠다고 생각하시면 언제든지 말씀해주세요. 최근 많은 분들이 사용하고 있는 랄프(Ralph) 방식과 비슷하지만, 저는 이 방식을 활용하여 복잡한 기능들을 구축해 왔고 좋은 성과를 거두고 있습니다.02:09
하지만 이번 영상에서는 Git Worktrees가 해결하는 문제에만 집중해 볼게요. 문제는 이 AI 에이전트들이 여러분의 파일 시스템을 사용하는데, 여러분도 파일 시스템을 사용하고 싶다는 거예요.02:23
제가 RALF 에이전트들에게 15분, 30분, 혹은 한 시간 정도 걸릴 작업 실행을 시작하도록 하고, 저는 그동안 유튜브를 잠깐 보려고 합니다.02:34
홍보팀에서 검토 준비가 완료되었습니다. 나쁘지 않은 선택이긴 하지만, 가장 생산적인 선택은 아닐 것 같습니다.02:44
아마 저도 그 코드 베이스 안에서 다른 작업을 하고 싶을 거예요. 그런데 AI 에이전트들이 같은 코드 베이스, 같은 파일 시스템에서 동시에 편집을 하고 있어서, 그렇게 할 수 없을 것 같습니다.02:50
이 문제를 해결하기 위해 간단하게 git 워크트리를 만들 수 있습니다. 이 명령어를 실행해서 워크트리를 수동으로 만들 수도 있지만, 저는 개인적으로 lazygit을 사용하고 다른 도구들도 이것을 지원할 겁니다.03:01
여기서 바로 새 작업 트리(work tree)를 메인 브랜치(main branch)를 기반으로 생성할 수 있습니다. 이 작업은 프로젝트 파일을 시스템 파일 저장소의 다른 위치에 복사하는 것입니다. 하지만, 원본 파일과 복사본은 서로 연관성을 유지하게 됩니다.03:13
해당 파일들은 동일한 Git 추적 기능을 공유하게 됩니다.03:24
제 주요 저장소는 'games'이고, 형제 디렉터리는 'games work trees'입니다. 그리고 저는 이 워크 트리를 그곳에 만들고 싶습니다.03:28
그리고 나서 저희가 작업할 브랜치에 이름을 지정할 수 있습니다. 다만, 작업 트리에서 메인 프로젝트에 체크아웃되어 있는 동일한 브랜치는 동시에 체크아웃할 수 없다는 점을 유념해 주시기 바랍니다.03:38
주 폴더 안에서 변경을 할 수 있고, 작업 트리 폴더 안에서도 변경을 할 수 있습니다. 이 두 폴더는 완전히 독립적으로 작동할 수 있으며, 작업을 완료했을 때요.03:48
작업 트리를 사용하면 작업 트리 내의 브랜치를 메인 저장소에 마치 브랜치인 것처럼 쉽게 병합할 수 있습니다.03:59
인공지능 문제를 처리하기 위해 제가 직접 작업 트리(work tree)를 만들어서 사용하기보다는, 에이전트 시스템에 통합하는 방식으로 처리했습니다.04:14
AI 워크플로우입니다. 에이전트들이 새로운 작업을 시작할 때마다, 먼저 작업 트리와 브랜치를 생성하여 그 작업 트리 안에서만 작업합니다. 이렇게 되면 저는 자유롭게 메인 코드베이스 작업을 진행할 수 있으며, 저 역시 작업 트리와 브랜치를 생성하여 그 안에서 작업할 수 있습니다. 마찬가지로, 저는 자유롭게 메인 코드베이스 작업을 진행할 수 있습니다.04:22
제가 준비되면 작업 트리에서 PR을 검토하고 병합해 주세요. 이 워크플로우에서 종종 발생하는 상황은 제가 에이전트들이 작업 중인 브랜치를 테스트하기 위해 체크아웃하고 싶어할 때입니다.04:36
작업 트리에는 브랜치가 체크아웃되어 있다면 동일한 브랜치를 체크아웃할 수 없습니다. 하지만, 디태치된 읽기 전용 상태로 커밋을 체크아웃할 수는 있습니다. 따라서, 체크아웃하는 대신…04:47
브랜치 자체를 사용하지 않으셔도 괜찮습니다. 최신 커밋을 가져와서 확인하시면, 원하시는 경우에도 메인 프로젝트 디렉토리 안에서 작업 트리 브랜치를 쉽게 살펴볼 수 있습니다.04:58
혹시 수동으로 수정하고 싶으시다면, 작업 트리 폴더 안에서 직접 작업하시는 방법도 있습니다. 이 영상이 도움이 되셨다면, 좋아요나 구독 부탁드립니다.05:09
떠나시기 전에 좋아요나 구독을 해주시면 정말 감사하겠습니다. 다음 영상에서 다시 뵙기를 바라요.05:20
AI Summary
이 영상은 오픈 소스 작업으로 유명한 차오 트란 님과의 협업을 통해 얻은 git worktrees 활용법을 소개합니다. AI 에이전트 워크플로우에서 발생하는 파일 시스템 충돌 문제를 해결하기 위해 git worktrees를 사용하는 방법을 설명하고 있습니다. git worktrees는 여러 개발자가 동시에 작업할 수 있도록 도와주며, AI 에이전트와 개발자가 각자의 작업 트리를 만들어 독립적으로 작업하고, 필요에 따라 브랜치를 병합하는 방식으로 활용할 수 있습니다. 작업 트리 사용 시 주의사항도 함께 안내합니다.
Key Highlights
- •차오 트란 님과의 협업을 통해 git worktrees를 배우게 되었다.
- •AI 에이전트 워크플로우에서 파일 시스템 충돌 문제를 git worktrees로 해결한다.
- •git worktrees는 여러 개발자가 동시에 작업할 수 있도록 돕는 도구이다.
- •작업 트리는 프로젝트 파일의 복사본을 생성하며, Git 추적 기능을 공유한다.
- •작업 트리에서 생성된 브랜치는 메인 저장소에 쉽게 병합할 수 있다.


