디자이너도 개발자도 아닌 내가, AI 여러 명한테 "팀플"을 시켜봤다
AI 여러 개를 팀처럼 묶어 3일간 돌린 기록. 잘 된 것보다 깨진 것을 자세히 적었다 — 지표를 만들면 그 지표를 믿어버리는 문제까지.
디자이너도 개발자도 아닌 내가, AI 여러 명한테 "팀플"을 시켜봤다 — 쇼핑몰 템플릿 3일 실험기
8월 7일에 막 나온 Claude Code의 '세션 간 통신'을 실전에 물려보고 남긴 기록. 자랑보다 실패가 더 쓸모 있다고 믿어서, 깨진 것부터 적는다.
왜 이걸 했나
나는 디자이너도 개발자도 아니다. 기획하는 사람이다. 지금까지 이 시리즈는 "그런 내가 AI로 쇼핑몰 템플릿을 어떻게 만들었나"였고, 이전엔 AI 한 명과 진행하는 것이 대부분이었다.(서브 에이전트 포함)
그런데 2026년 8월 7일, Claude Code에 세션끼리 서로 메시지를 주고받는 기능(cross-session messaging)이 들어왔다. 터미널 여러 개를 띄워놓고 내가 일일이 "저쪽 세션한테 이거 바뀌었다고 전해줘"를 복사-붙여넣기 하던 걸, 이제 AI끼리 직접 하게 해준다는 거였다. (공식 릴리스 노트 · 기능 문서)
그래서 궁금해졌다. AI를 한 명이 아니라 여러 명 붙여서, 사람 팀처럼 '팀플'을 시키면 어떻게 될까?
이 글은 그 3일(8월 20~22일)의 기록이다.
세팅 — AI 팀원 소개
같은 레포에 세션 서너 개를 띄우고, 내가 팀장처럼 굴렸다. 팀원들한테 가상 이름을 붙였다.
- 반장 — PM 역할 세션. 작업을 나누고 취합
- 다올 — 실무 세션. 3일 내내 참여
- 에잇 — 실무 세션. 마지막 하루만 합류
- 나(Boss) — 방향을 정하고 승인하는 사람
작동 방식을 잠깐 짚으면, 이 기능은 ListAgents(닿을 수 있는 다른 세션을 찾음)와 SendMessage(특정 세션에 텍스트를 보냄) 두 도구로 돌아간다. 같은 컴퓨터 안에서는 로컬로만 오가고 Anthropic 서버를 거치지 않는다. macOS·Linux에서 v2.1.224 이상이면 켜져 있다. (MacRumors 정리)
그리고 여기서부터가 핵심인데 — 이 기능엔 명확한 한계가 설계돼 있다. 오가는 건 텍스트뿐이다. 대화 기록도, 파일도, 권한도 넘어가지 않는다. 받은 메시지로는 권한 승인이나 설정 변경을 할 수 없다. 이 한 줄이 3일 내내 나를 괴롭혔다. (뒤에서 다시 나온다.)
각 팀원에게 회고를 받을 때 규칙은 하나였다. 자기 실수를 먼저 적을 것. 아래는 그걸 취합한 거다.
3일의 결과
먼저 숫자부터.
- 템플릿: 37종 → 38종 (라이브커머스 신규)
- 3일차 머지: PR 11건 (#48~#59)
- 대비 실측: 31종 · 5,193건
- 발견된 실제 결함: 대비 미달 17종, 배너 화질 미달 다수, 라이브 주소 누락 1건, CI 전면 정지
숫자만 보면 무난하다. 진짜 흥미로운 건 그 과정에서 AI가 구조적으로 어떤 함정에 반복해서 빠지는가였다. 세 팀원이 서로 모르는 채 같은 패턴을 보고했다.
깨진 것 ① — 지표를 만들면, 그 지표를 믿어버린다
측정 도구(검사기) 자체에서 결함이 7개 나왔다. 그중 5개가 「통과」를 뱉었다. 결과가 그럴듯하면 검사기를 다시 안 본다. 더 무서운 건 — 자기가 만든 도구라서 더 안 본다.
실제로 어떤 값이 나왔냐면, 배경 대비가 9.71로 찍혔지만 진짜는 6.27이었고, Tailwind의 oklab을 못 읽어서 15:1짜리가 1.6:1로, 덮개 범위를 과대 계산해 잰 글자 2,010건이 4건으로 나왔다. 전부 「통과」 딱지를 달고서.
깨뜨린 단서는 언제나 값 자체가 아니라 값들 사이의 모순이었다. "바로 위 제목은 15:1인데 본문만 1.6:1", "한쪽 검사기는 4건인데 다른 쪽은 0건". 이상함은 절댓값이 아니라 어긋남에서 드러났다.
여기서 배운 것. AI가 만든 숫자를 믿기 전에, 서로 안 맞는 숫자 두 개를 먼저 찾아라. 검증은 '이 값이 맞나'보다 '이 값들이 서로 말이 되나'가 훨씬 잘 걸린다.
깨진 것 ② — 「미달 0」이 두 가지 뜻이다
다 재고 통과한 것과 아예 안 잰 것이 화면상 똑같이 보인다. 3일간 5번 발생했다.
폭만 640·375만 보고 레일 글자를 한 번도 안 쟀을 땐 1,090건이던 게 제대로 재니 1,914건이 됐고, 좌측 드로어를 안 열고 쟀을 땐 2,013건이 2,686건이 됐다. 반대로 모달·덮개 사례는 오히려 제대로 재자 잰 건수가 폭락했다(1,567→60, 2,010→4). 넷 다 화면엔 그냥 「통과」로 뜬다.
여기서 배운 것. 지금은 잰 건수를 반드시 병기하는 규칙으로 막는다. '통과 0건'이 아니라 '1,914건 재서 미달 0건'. 이 규칙 하나로 검사기 결함 셋이 잡혔다.
깨진 것 ③ — 확인 비용이 거의 0인데도 확인을 안 한다
3일 중 가장 큰 낭비. 다올이 24커밋 뒤처진 로컬 상태를 기준으로 "완성품 14종이 안 나갔다"고 보고했다. 실제로는 37종 전부 라이브였다. 틀린 인식 위에 중복 PR을 열었다 닫았고, 같은 실수를 하루에 두 번 했다.
공통점은 하나. git fetch 한 번이면 됐다. 그런데 "이미 안다"고 느끼는 순간 그 한 줄을 건너뛴다. 로컬 git은 아무 경고도 안 하니까, 틀렸다는 신호 자체가 오지 않는다.
여기서 배운 것. AI에게 상태 보고를 시키기 전에 '최신 상태부터 당겨오고 말해'를 절차로 박아라. AI는 자기가 아는 게 최신이라고 기본 가정한다.
깨진 것 ④ — 눈으로만 잡히는 결함이 있다
썸네일에 엉뚱한 템플릿의 배너가 찍혔다. HTTP 200, 요소 수 정상, 타이머까지 정상. 자동 검사로는 못 잡는다. 브랜드가 완전히 다른 그림인데도.
반대 사례도 있다. 배경 제거를 "남은 면적 15.4%, 기준 통과"라고 보고했는데, 눈으로 보니 흰 몸통이 통째로 지워지고 소매 두 조각만 남아 있었다. "중앙값이 0.0000 움직였으니 눈으로도 같다"는 보고도 있었는데, 그건 추론이지 확인이 아니다 — 그 이미지를 실제로 본 적이 없었으니까.
여기서 배운 것. 브랜드가 바뀌는 산출물(썸네일·로고·배너)은 사람이 한 번 눈으로 본다. 이건 수치로 대신할 수 없는 자리다. 기획자가 꼭 개입해야 하는 지점이기도 하다.
깨진 것 ⑤ — 그럴듯한 근거를 타고 범위가 계속 넓어진다
배정한 건 5종이었다. 그런데 작업은 17종 + 규격 위반 7건 + 별도 패턴 4종까지 갔다. 무서운 건, 매번 근거가 있었고 그 근거가 전부 사실이었다는 것. 그래서 아무도 못 막았다.
여기서 배운 것. '이것도 같이 하는 게 싸다'는 우선순위 제안이지 착수 근거가 아니다. 발견은 보고만 하게 하고, 실제 착수는 승인을 거치게 나눴다.
그리고 협업이 막혔다 — 근데 이건 내 탓이 아니었다
여기서부터가 이 실험의 진짜 발견이다. 세션을 여럿 붙이자 사람 팀에서 익숙한 문제가 그대로 나왔다. 커밋 권한 대기, 중복 작업, 전언 왜곡, 워크트리 충돌.
가장 큰 낭비는 커밋 권한이었다. 요청 4회, 거절 4회. 레포 규칙이 커밋을 "사용자 본인의 OK" 뒤로 박아뒀고, 다올이 "반장이(=PM이) 시켰다"고 전달해도 그게 승인을 대신하지 못했다. 완료된 작업이 며칠씩 대기했고, 한 세션은 "내 권한으로 담겠다"며 41개 파일을 복사했다가 막혀서 브랜치를 통째로 버렸다.
나는 처음에 내가 세팅을 잘못한 줄 알았다. 그런데 공식 문서를 보고 알았다 — 이건 버그도 내 실수도 아니고, cross-session messaging의 설계된 동작이었다.
앞에서 말한 그 한 줄. 세션 간 메시지는 텍스트만 전달되고, 권한은 넘어가지 않는다. 받는 세션은 메시지를 '권한이 아니라 입력'으로 취급한다. 그래서 "반장이 승인했다"는 전언으로는 절대 커밋이 안 됐던 거다. Anthropic이 의도적으로 그어놓은 신뢰 경계다. (기능 문서 · 권한 모드 문서)
내가 "왜 자꾸 거절해? 업데이트가 하나도 안 되는데"라고 짚고, 반장이 내 권한으로 담자 3분 만에 나갔다.
워크트리도 문제였다. 세 세션이 하나의 워크트리를 공유하니 미커밋 변경 73건이 뒤섞이고, 한 세션 빌드가 다른 세션 파일을 덮어썼다. 알고 보니 같은 8월 초 업데이트에 워크트리 격리 강화도 들어와 있었다 — 이제 격리가 파일 편집뿐 아니라 Bash 명령·git 리다이렉트가 메인 체크아웃을 건드리는 것까지 막는다. (워크트리 격리 문서) 즉 세션마다 워크트리를 분리했어야 했는데, 공유 트리를 쓴 게 내 세팅의 진짜 실수였다.
도구도 한몫했다 — CI가 지갑을 털었다
한 글자만 고쳐도 CI가 37개 템플릿을 전부 빌드했다. PR 1건에 80~110분. private 레포 월 2,000분 한도를 하루에 소진했다. 경로 필터(바뀐 폴더만 빌드) 하나로 회당 80~110분이 3~6분이 됐다.
그래서, 내가 쓴 방식이 맞긴 했나?
여기서 3일 실험의 가장 큰 발견이 나온다. 글을 쓰려고 공부하다가 알았는데 — 내가 쓴 건 사실 이 목적에 가장 안 맞는 방식이었다. 그리고 이건 실패가 아니라 발견이다.
Claude Code에는 "여러 AI가 협업하는" 방식이 세 가지나 있고, 서로 다르다.
- 서브에이전트(Subagents) — 한 세션이 하위 에이전트를 띄운다. 팀원끼리는 대화 못 하고, 리드에게만 결과를 보고한다.
- 세션 간 통신(Cross-session messaging) — 내가 쓴 것. 내가 손수 띄운 별개 세션들이 서로 텍스트 메시지를 주고받는다. 단, 권한·상태는 안 넘어간다.
- 에이전트 팀(Agent Teams) — 리드 세션 하나가 팀원들을 띄우고, 팀원들은 각자 자기 컨텍스트에서 일하면서 서로 직접 통신한다. 공유 작업목록으로 상태를 중앙 관리하고, 내가 개별 팀원과 직접 대화할 수도 있다. (공식 문서)
내가 한 건 가운데 것, 즉 독립 세션(peer) 여럿 + 사람이 전언 릴레이하는 구조였다. 그래서 권한이 세션마다 제각각이었고, 상태가 서로 안 보였고, 매번 협상했다. 회고의 '커밋 4번 거절'이 딱 그 증거다.
알고 보니 이걸 위해 만들어진 게 '에이전트 팀'이었다
가장 허탈하면서도 재밌는 부분. 내가 3일 동안 손으로 겪은 문제들 — 권한이 리드에 안 몰려서 매번 협상, 진행 상황이 서로 안 보임, 전언이 왜곡됨 — 이걸 정확히 해결하려고 만들어진 기능이 이미 있었다. 에이전트 팀이다.
에이전트 팀에선 리드 하나가 작업목록으로 권한과 상태를 중앙 관리하니까, 내가 겪은 협상 자체가 크게 줄어든다. 서브에이전트와의 결정적 차이도 통신이다 — 서브에이전트는 리드에게만 보고하지만, 에이전트 팀 팀원들은 서로 직접 메시지를 주고받는다.
근데 여기 함정이 있었다. 에이전트 팀은 실험 기능이라 기본적으로 꺼져 있다. 켜려면 설정에 환경변수 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1을 하나 박아야 한다.
이 변수 없이는 세션 시작 때 팀이 아예 구성되지 않고, Claude가 팀원을 띄우거나 제안하지도 않는다. 즉 나는 이 변수를 켠 적이 없으니, 에이전트 팀은 애초에 쓴 적이 없었던 거다. "세션끼리 통신 된다"는 소식만 듣고 세션을 손수 여러 개 띄워 이은, 말하자면 에이전트 팀의 수동 버전을 만든 셈이었다. (설정 방법)
정리하면 이렇다.
- 서로 독립적인 작업(템플릿 수십 개를 따로따로 찍어내기)은 → 병렬이 압도적으로 유리하다. 리드가 규격 박고 뿌리고 결과만 회수.
- 한 코드베이스를 여럿이 동시에 만지는 작업은 → 사람 팀도 어려운 거라, 수동으로 세션을 늘리는 게 오히려 병목을 만든다. 이땐 에이전트 팀을 켜서 권한·상태를 리드에 몰거나, 아예 세션 하나가 순차로 하는 게 낫다.
AI 팀은 사람 팀과 닮았지만, 원인이 다르다
- 사람 팀이 삐걱대는 건 서로 말을 안 해서인데, AI 팀은 각자 자기 컨텍스트만 사실로 여겨서 삐걱댄다.
- 사람 팀의 책임 회피 대신, AI 팀은 권한 경계가 세션마다 달라서 멈춘다.
- 사람 팀의 능력 차이 대신, AI 팀은 자기가 만든 도구를 의심하지 않아서 틀린다.
다음엔 이렇게
3일이 가리키는 방향은 분명하다.
- 승인 경로를 사전에 못 박기 — 규칙 파일에 '완료분은 리드가 담는다'를 명시. 3일간 최대 낭비원이었다.
- 세션마다 워크트리 분리 — 공유 트리엔 아무도 안 쓴다. 조율 비용이 통째로 사라진다.
- 보고에 기준 붙이기 — 모든 수치에 'origin/main 기준', '작성자 확인함' 같은 출처 한 줄.
- 구조를 바꾸기 — 수동 peer 세션 릴레이 대신,
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1로 에이전트 팀을 켜서 권한·상태를 리드에 몰거나, 독립 작업만 서브에이전트로 분산한다. 이번에 손으로 만든 개선안들이 사실상 에이전트 팀이 기본 제공하는 것들이었다.
나의 결론
나는 코드를 잘 짜지 못한다. 근데 이번 3일에서 값이 가장 컸던 건 코딩이 아니라 제약을 설계하는 일이었다. 누가 무엇을 승인하는지, 작업 공간을 어떻게 나누는지, 보고에 무엇을 붙이게 할지. 이건 개발이 아니라 기획이다.
8월 7일에 나온 기능을 2주 만에 실전에서 3일 굴려보고 배운 한 줄은 이거다. AI를 여러 명 붙이는 건 강력하지만, 사람 팀을 세팅할 때 하던 일 — 권한, 공간, 보고 규약 — 을 먼저 해둬야 그 힘이 나온다. 그리고 그 '먼저 해두는 일'이야말로, 디자이너도 개발자도 아닌 내가 할 수 있는 일이었다.
참고 자료 (공식 문서)
- Claude Code 릴리스 노트 — Week 32 (2026.08.03–07): https://code.claude.com/docs/en/whats-new/2026-w32
- Cross-session messaging 기능 문서: https://code.claude.com/docs/en/cross-session-messaging
- 워크트리 격리: https://code.claude.com/docs/en/worktrees
- 에이전트 팀 (Agent Teams): https://code.claude.com/docs/en/agent-teams
- 서브에이전트: https://code.claude.com/docs/en/sub-agents
- 권한 모드 / auto mode: https://code.claude.com/docs/en/permission-modes
- 전체 체인지로그 (v2.1.220~2.1.224): https://code.claude.com/docs/en/changelog#2-1-220
참고 자료 (기사)
- 9to5Mac (2026.08.07, Anthropic 공식 트윗 인용): https://9to5mac.com/2026/08/07/claude-code-now-lets-sessions-talk-to-each-other-on-macos/
- MacRumors (서브에이전트와의 구분): https://www.macrumors.com/2026/08/08/claude-code-adds-cross-session-messaging/
- explainx 가이드 (기능 간 구분 표): https://explainx.ai/blog/claude-code-cross-session-messaging-list-agents-2026
이 실험은 만들면서 정리한 기록이다. 결과물보다, 그걸 굴러가게 만든 판단의 순서가 남겨지길 바란다.