제품

에이전트 여섯이 서로 발 안 밟고 동시에 진격한다는 것

병렬로 에이전트를 굴려 본 사람은 안다. 진짜 문제는 속도가 아니라 충돌이라는 걸. 각자 자기 워크트리를 갖는다는 게 왜 게임체인저인지, 경험담으로 풀어 봅니다.

처음 에이전트 두 명을 같은 폴더에서 동시에 굴렸을 때를 기억합니다. 결과는 참사였습니다.

한 명은 결제 API를 고치고 있었고, 다른 한 명은 옆에서 브랜치를 갈아탔습니다. 눈 깜짝할 사이에, 첫 번째 에이전트가 반나절 쌓아 둔 미완성 코드가 사라졌습니다. 에러 메시지 하나 없이. 저는 그날 깨달았습니다. 병렬 작업의 진짜 적은 속도가 아니라 충돌이라는 걸.

속도는 쉽다. 안 밟는 게 어렵다

에이전트를 여러 명 띄우는 건 어렵지 않습니다. 터미널 탭 여섯 개 열면 끝이죠. 문제는 그 여섯이 같은 코드베이스를 만진다는 겁니다.

한 명이 git checkout을 하면 옆 사람 파일이 되돌아갑니다. 한 명이 스테이징을 건드리면 옆 사람 커밋이 꼬입니다. 사람 여섯이 한 방에서 동시에 인테리어를 새로 하겠다고 달려드는 꼴입니다. 누군가는 반드시 남의 페인트칠을 밟습니다.

그래서 대부분의 사람은 결국 병렬을 포기합니다. 한 명 끝날 때까지 기다렸다가 다음 사람. 결국 다시 줄서기죠. 여섯 명을 띄워 놓고도, 실제로는 한 명씩 순서대로 일하는 겁니다. 허무하지 않나요?

그날, 진짜로 여섯이 동시에 움직였다

마블로에서 처음으로 여섯 명이 진짜로 동시에 진격하는 걸 봤을 때의 기분을 잊지 못합니다.

한 명은 백엔드 API를, 한 명은 프론트 폼을, 한 명은 테스트를, 나머지는 각자 다른 모듈을. 보드 위에서 카드 여섯 장이 동시에 IN_PROGRESS로 물들었습니다. 그런데 아무도 아무도 밟지 않았습니다.

비결은 단순합니다. 마블로는 충돌 위험이 있는 에이전트를 각자 자기만의 격리된 워크트리에 스폰합니다. 자기 폴더, 자기 브랜치. A가 파일을 반쯤 뜯어 놔도 B의 세계에는 아무 일도 일어나지 않습니다. 여섯 개의 평행 우주가 나란히 돌아가되, 히스토리는 하나로 이어집니다. (원리가 궁금하면 워크트리 격리로 충돌 없이 병렬 작업하기에서 저장소 수준까지 파고들었습니다.)

게임체인저는 '속도'가 아니라 '마음 놓임'이었다

솔직히 저를 바꾼 건 처리량 숫자가 아니었습니다. 마음이 놓였다는 것. 그게 진짜였습니다.

여섯 명을 풀어놓고도, 누가 누구 걸 지울까 봐 조마조마하지 않아도 된다는 것. 실험적인 리팩터링을 한 에이전트에게 맡겨도, 실패하면 그 워크트리만 버리면 그만이라는 것. 메인은 언제나 깨끗하다는 것. 그 안심이 있으니, 저는 비로소 더 대담하게 일을 나눌 수 있었습니다.

겁이 없어지면 스케일이 커집니다. 두 명 굴리던 사람이 여섯 명을, 여섯 명 굴리던 사람이 열 명을 굴립니다. 밟힐 걱정이 없어야 진짜로 병렬이 됩니다.

그리고 다시 하나로 모인다

물론 평행 우주가 영영 갈라져 있으면 소용없죠. 각 워크트리에서 쌓인 커밋은 PR로 올라오고, REVIEW 단계에서 사람이 검수한 뒤 main 하나로 다시 모입니다. 흩어져 달리다가, 마지막에 한 지점으로 수렴합니다. 변경 없이 끝난 워크트리는 자동으로 정리되고요.

병렬로 밀어붙이되, 통제는 잃지 않는다. 이게 말장난이 아니라 매일의 감각이 되는 순간, 일하는 방식이 통째로 바뀝니다.

여섯 명한테 일 나눠 주고, 서로 안 밟는다는 걸 믿고, 잠드는 것. 한번 경험해 보시겠어요? 지금 파운더 베타에 신청하면 가장 먼저 만나 볼 수 있습니다.

댓글

댓글 기능은 곧 제공됩니다.