-
병렬로 만든 건 빨랐는데, 답은 합쳐지는 자리에서 갈렸다AI Agent 2026. 7. 28. 09:00728x90반응형

병렬로 만든 건 빨랐는데, 답은 합쳐지는 자리에서 갈렸다 에이전트 여러 대를 거의 동시에 띄운 게 그날 아침 첫 일이었습니다.
손이 닿는 영역을 하나씩 나눠 붙여 놓고, 각자 자기 구역의 코드를 고치게 시켰습니다.
화면 대여섯 개에서 진행 로그가 한꺼번에 쏟아지는데, 솔직히 좀 짜릿했습니다.
혼자 며칠 걸릴 분량이 점심 전에 다 끝나 있을 것 같았거든요.
띄워 놓고 커피를 내리러 갔다 와도 알아서 굴러가는 게, 그날따라 일을 잘하고 있는 기분이 들었습니다.실제로 만드는 건 빨랐습니다.
점심 무렵엔 각자 자기 몫을 거의 다 끝냈습니다.
각 화면에 "완료" 비슷한 줄이 차례로 올라오는 걸 보면서, 이제 합치기만 하면 되겠다 싶었습니다.
문제는 그 '합치기만'이 그날의 진짜 일이었다는 겁니다.합치려는데 같은 자리가 자꾸 터졌습니다
각자 작업한 걸 차례로 끌어와 합치는데, 두 번째부터 충돌이 떴습니다.
처음엔 그러려니 했습니다.
손으로 풀고 다음 걸 끌어왔습니다.
또 떴습니다.
그것도 거의 같은 자리에서요.
세 번째쯤 되니 슬슬 손이 멈췄습니다.내부 도구의 데이터 형식 버전을 한 줄로 적어 두는 파일이 있었습니다.
버전이 한 칸 올라가면 그 줄도 같이 올려 줘야 하는 그런 파일이요.
그런데 에이전트마다 자기 작업을 하면서 그 줄을 건드렸더라고요.
그것도 전부 같은 직전 번호를 보고, 거기에 새 번호를 매겼습니다.
각자 자기가 마지막인 줄 알았던 겁니다.
한 줄로 쭉 이어져야 할 게 여러 갈래로 갈라져서, 어느 게 진짜 다음 번호인지 사람이 손으로 정해 줘야 하는 상태가 됐습니다.공용으로 쓰는 설정 파일과 의존성 목록은 더 심했습니다.
대여섯이 전부 같은 줄을 손댄 자리라, 합칠 때마다 양쪽 변경이 정면으로 부딪혔습니다.
한쪽을 살리면 다른 쪽이 죽고, 둘 다 살리려면 손으로 두 줄을 한 줄로 엮어야 했습니다.
충돌 마커 사이에 같은 패키지 이름이 버전만 다르게 두 번 들어가 있는 걸 보고, 한숨이 먼저 나왔습니다.
한 번 풀어도 다음 걸 끌어오면 같은 줄이 또 터졌습니다.
같은 화면을 다섯 번쯤 봤습니다.빨리 번 시간을 여기서 다 까먹었습니다
오후 내내 충돌만 풀었습니다.
아침에 아낀 시간을, 충돌을 손으로 정리하면서 도로 다 토해냈습니다.
어느 순간엔 이게 빠른 건지 느린 건지도 모르겠더라고요.
차라리 처음부터 한 대만 띄워서 천천히 갔으면, 이 오후는 안 왔을 텐데 싶었습니다.그러다 한 번 멈추고 봤습니다.
충돌은 만드는 단계에서 난 게 아니었습니다.
에이전트들은 각자 자기 구역 안에서는 깔끔하게 잘 짰습니다.
충돌은 전부 합치는 한 지점에 몰려서 터지고 있었습니다.
정확히는, 둘 이상이 같은 파일의 같은 줄을 동시에 만진 자리에서만요.
서로 다른 파일만 건드린 에이전트들끼리는, 끌어와 합쳐도 아무 일도 없었습니다.
조용히 들어갔습니다.그러니까 문제는 '동시에 띄운 것' 자체가 아니라 '겹치는 자리를 동시에 시킨 것'이었습니다.
병렬로 벌어 둔 속도가, 겹친 한 줄목에서 한꺼번에 청구된 거였습니다.겹치는 파일은 아예 한 줄로 세웠습니다
그래서 방식을 바꿨습니다.
거창한 통합 담당을 새로 띄운 게 아니라, 시작하기 전에 누가 어느 파일을 만지는지를 먼저 표로 적어 봤습니다.
적어 보니 충돌 났던 파일이 정확히 그 표 위에서 두 명 이상 겹치는 칸이었습니다.
한 칸 한 칸 따져 보니, 겹치는 데가 생각보다 몇 군데 안 됐습니다.겹치는 칸은 동시에 시키지 않기로 했습니다.
그 파일을 만져야 하는 작업들은 한 에이전트에게 몰아주고 순서대로 시켰습니다.
형식 버전을 올리는 변경은 특히 그렇게 했습니다.
앞 작업이 번호를 올리면, 다음 작업이 그 위를 보고 다시 올리도록요.
겹치지 않는 나머지는 그대로 동시에 돌렸습니다.
만드는 건 여럿이 동시에 해도 되지만, 겹치는 줄을 고치는 건 순서가 있는 일이라고 못을 박은 셈입니다.그런데도 한 번 더 터졌습니다
다음 날 같은 일을 다시 돌렸을 때는 합치는 시간이 눈에 띄게 줄었습니다.
오후를 통째로 쓰던 게 커피 한 잔 사이로 줄었습니다.
그런데 그렇게 깔끔하진 않았습니다.다 합친 다음 전체를 한 번 빌드해 봤더니, 따로따로는 멀쩡하던 변경 두 개가 합쳐 놓으니 서로 어긋났습니다.
표에 안 적힌 숨은 의존이 하나 있었던 겁니다.
한 작업이 바꾼 걸 다른 작업이 그대로일 거라 믿고 짠 자리였죠.
표만 보고는 안 보이는 줄이었습니다.
결국 둘 중 하나만 되돌리고, 그 작업은 다음으로 미뤘습니다.
다 합쳐서 한 번에 끝낸 게 아니라, 안 맞는 한 조각을 떼어 내고 나머지만 살린 거죠.요즘은 그래서 처음부터 시간 예산을 다르게 잡습니다.
작업 한 건이 합치는 단계에서 서너 건으로 불어난다고 치고, 합쳐 본 다음 한 조각쯤은 도로 떼어 낼 자리를 비워 둡니다.
몇 대를 동시에 띄우느냐는 이제 별로 안 따집니다.
만드는 속도가 아니라 합쳐지는 자리에서 그날의 답이 갈리니까요.
그 자리를 미리 못 본 날은, 지금도 오후를 통째로 씁니다.728x90반응형'AI Agent' 카테고리의 다른 글
같은 날, 같은 reset을 두 번 쳤습니다 (0) 2026.07.29 1등을 떨어뜨리고 2등을 쓴 날 (0) 2026.07.28 테스트 다 통과했다길래 믿었어요 (0) 2026.07.27 빨간 줄 10개가 전부 거짓말이었습니다 (0) 2026.07.27 밤마다 터지는 게 내 탓인 줄 알았어요 (1) 2026.07.26