00:00:00Claude Code가 최근에 정말 엄청난
00:00:02업데이트를 받았습니다. Claude Desktop의 SSH 지원부터
00:00:05앱 미리보기, GitHub 연동,
00:00:07그리고 터미널의 단순 모드까지 추가되었죠.
00:00:09단순 모드는 스킬, 플러그인, 커스텀 도구를 제외해서
00:00:11기본적인 작업을 쉽게 만들어줍니다.
00:00:13하지만 가장 큰 업데이트는 단연 네이티브 워크트리(work tree) 지원입니다.
00:00:16이제 에이전트가 여러 기능 구현이나
00:00:18버그 수정을 각각 독립적으로 수행할 수 있다는 뜻이죠.
00:00:20사용자가 직접 수동으로 설정할 필요도 전혀 없습니다.
00:00:23그런데 이 기능이 너무 성급하게 출시된 걸까요?
00:00:25많은 개발자가 벌써 기본적인 문제를 겪고 있는데요.
00:00:28구독 버튼 누르시고, 바로 자세히 알아보겠습니다.
00:00:30코딩 에이전트와 Git 워크트리를 함께 쓰는 건 새로운 일은 아닙니다.
00:00:33사실 Claude Desktop은 이미 한동안 지원해 왔고,
00:00:35이미 영상으로 소개해 드린 Claude Squad처럼
00:00:37이를 지원하는 플러그인이나 도구도 많습니다.
00:00:41하지만 제가 개인적으로 이 기능을 잘 안 썼던 이유는
00:00:43수동으로 관리하는 게 꽤 번거롭기 때문이었는데요.
00:00:46Claude Code의 이 새로운 기능이
00:00:49과연 그 과정을 훨씬 편하게 해줄지 기대되네요.
00:00:50한번 해보겠습니다.
00:00:51여기 Claude가 React로 만든 기본적인 할 일 앱이 있습니다.
00:00:54테스트용이라서 기능이 거의 없는데,
00:00:56순전히 테스트 목적으로만 만든 앱입니다.
00:00:58어쨌든, 지금 화면이 너무 눈부셔서
00:01:01다크 모드 전환 버튼을 추가하고 싶네요.
00:01:02그리고 새로고침하면 데이터가 사라져서
00:01:04로컬 스토리지에 저장하는 기능도 넣고 싶고요.
00:01:07마지막으로 할 일을 수정하는 기능도 추가하려고 합니다.
00:01:10보통은 이 모든 기능을 하나의 프롬프트에 넣었을 겁니다.
00:01:12다크 모드, 로컬 스토리지,
00:01:14그리고 할 일 수정 기능까지 말이죠.
00:01:16하지만 문제는 이 기능 중 하나에 버그가 생기면
00:01:20전체 작업을 다시 손봐야 한다는 겁니다.
00:01:22모든 게 하나의 PR이나 브랜치에 묶여 있어서
00:01:25다른 기능들의 배포까지 늦어지게 되죠.
00:01:28하지만 워크트리를 사용하면,
00:01:28수동 설정 없이도 제 로컬 환경에서
00:01:31이 기능들을 서로 다른 브랜치에서
00:01:33동시에 작업할 수 있습니다.
00:01:35특정 기능에 문제가 생기더라도,
00:01:37나머지 두 기능은 먼저 푸시하고
00:01:39문제가 된 기능만 해당 브랜치에서 따로 작업하면 되죠.
00:01:41그 방법을 보여드릴게요.
00:01:42Claude Code를 실행할 때 W 플래그를 붙이면,
00:01:45Claude가 자동으로 이름을 정해서
00:01:47워크트리를 만들어줍니다.
00:01:49잠깐, 이름이 'Lacan'이라고요?
00:01:50뭐, 알겠습니다.
00:01:52워크트리에 직접 이름을 붙이고 싶다면,
00:01:54W 플래그 뒤에 이름을 적어주면 됩니다.
00:01:56여기에 입력해 볼게요.
00:01:58그러면 이쪽에 새로운 워크트리가 생기고,
00:02:00새 브랜치도 생성되지만,
00:02:02이전에 만들었던 워크트리가 삭제되지는 않습니다.
00:02:05임시 워크트리를 많이 만드신다면
00:02:06이 점을 꼭 유의하셔야 합니다.
00:02:08프로젝트의 .claude 디렉토리 내 worktrees 폴더를 보면,
00:02:11우리가 만든 워크트리와
00:02:13그에 연결된 모든 코드 파일을 확인할 수 있습니다.
00:02:15참고로, 워크트리는 프로젝트에
00:02:16git이 초기화되어 있어야 하며
00:02:18최소 하나 이상의 커밋이 있어야 작동합니다.
00:02:20이제 각각의 워크트리에서
00:02:22모든 기능 구현을 진행해 보겠습니다.
00:02:24세 가지 기능 구현이 모두 끝났습니다.
00:02:26보시는 것처럼 다크 모드 전환이 잘 작동하네요.
00:02:29이쪽 워크트리에는 다크 모드는 없지만,
00:02:31할 일 수정 기능이 잘 됩니다.
00:02:32새 항목을 추가하고 여기서 내용을 바꿔볼게요.
00:02:35그런데 로컬 스토리지 쪽은 문제가 좀 있는 것 같네요.
00:02:38하지만 이게 바로 워크트리의 장점입니다.
00:02:40다른 두 기능은 멀쩡하다는 걸 바로 알 수 있으니까요.
00:02:43정상인 기능들은 커밋하거나 PR을 올리고,
00:02:44문제가 있는 이 기능에만 집중해서
00:02:46별도의 Claude Code 세션을 열어
00:02:48문제를 해결할 수 있습니다.
00:02:49워크트리 작업이 끝나면,
00:02:51나중에 다시 쓰기 위해 그대로 두거나
00:02:53시스템에서 삭제할 수 있습니다.
00:02:54삭제하지 않고 남겨뒀다면,
00:02:55보시는 것처럼 이름을 지정해서
00:02:58정확히 동일한 워크트리로 돌아갈 수 있습니다.
00:03:00현재 워크트리에서 세션을 이어서 하거나
00:03:03Control + W를 눌러 프로젝트의 모든 세션을 볼 수도 있죠.
00:03:06다만 현재 어떤 세션이 활성화된 건지
00:03:07어떻게 판별하는지는 확실치 않네요.
00:03:08지금 제가 메인 브랜치에 있거든요.
00:03:11세션 이야기가 나와서 말인데,
00:03:12워크트리 디렉토리에서 바로 작업하고 싶다면,
00:03:15cd 명령어로 직접 해당 경로로
00:03:16.claude/worktrees 등을 찾아 들어가거나,
00:03:19tmux 플래그를 써서 워크트리를 실행하면
00:03:21해당 디렉토리로 즉시 이동합니다.
00:03:23새 창을 하나 더 열어보면,
00:03:26해당 워크트리 경로에 들어와 있고
00:03:27워크트리 전용 파일들을 탐색할 수 있는 걸 볼 수 있죠.
00:03:30하지만 워크트리의 가장 멋진 점은
00:03:31서브 에이전트를 지원한다는 것입니다.
00:03:33즉, 하나의 Claude Code 세션 안에서
00:03:35여러 서브 에이전트가 각기 다른 브랜치에서
00:03:38여러 기능을 동시에 작업하게 할 수 있다는 거죠.
00:03:40커스텀 서브 에이전트에도 워크트리 기능을 넣고 싶다면,
00:03:42에이전트 실행 시 자동으로 워크트리가 생성되도록
00:03:45프론트매터(front matter)에 isolation work tree를
00:03:48추가하기만 하면 Claude가 알아서 처리해 줍니다.
00:03:50전반적으로 이 기능은 정말 인상적입니다.
00:03:52앞으로도 제가 정말 자주
00:03:54사용하게 될 기능인 것 같아요.
00:03:55특히 새로 추가된 워크트리 후크(hooks)를 쓰면
00:03:57git이 아니더라도 SVN이나 jiu-jitsu 등에서 쓸 수 있고,
00:04:00워크트리를 만들 때마다
00:04:02특정 스크립트가 자동으로 실행되도록
00:04:04설정할 수도 있으니까요.
00:04:05안타깝게도 최근 Claude Code 업데이트 이후
00:04:08많은 사용자가 워크트리 관련
00:04:09문제를 겪고 있는 듯합니다.
00:04:11기능 플래그(feature flag) 오류인 것으로 보이는데요.
00:04:13다행히 임시 방편으로 Claude Code가
00:04:17자신의 바이너리를 직접 수정하게 할 수 있습니다.
00:04:18조만간 개발팀에서 정식 수정을 내놓아서
00:04:21더 많은 분이 이 놀라운 기능을 써보길 기대해 봅니다.
00:04:24놀라운 기능에 대해 더 말씀드리자면,
00:04:25React 개발자분들 중에서 React 안티 패턴을
00:04:28자동으로 감지해 주는 CLI 도구가 궁금하시다면,
00:04:31React Doctor에 대해 자세히 설명해 주는
00:04:33Andris의 영상을 꼭 확인해 보세요.