새 트렌드: 병렬 AI 에이전트를 동시에 실행하는 프로그래밍 기법
(newsletter.pragmaticengineer.com)- Claude Code, OpenAI Codex, Cursor 등 에이전트형 CLI 도구가 주류로 자리잡으면서, 여러 AI 에이전트를 동시에 실행해 병렬로 작업하는 ‘병렬 코딩 에이전트’ 활용이 증가
- 여러 엔지니어들이 이를 통해 생산성을 높이고 있으며, 단순 개발을 넘어 리서치·유지보수·지시 작업 등에 적용 가능
- 그러나 코드 검토 속도가 병목이 되거나, 집중 흐름(flow) 이 깨질 수 있다는 우려도 존재
- 숙련된 개발자일수록 다중 작업과 코드 리뷰를 병행하는 능력 덕분에 병렬 에이전트 활용에 익숙한 경향이 있음
- 병렬 에이전트 작업에서는 테스팅, 소규모 작업 단위, 리팩토링, 코드 리뷰 같은 기본 엔지니어링 관행이 신뢰성과 품질 유지의 핵심 요소
병렬 AI 에이전트의 확산과 개발 방식 변화
-
Claude Code, OpenAI Codex, Cursor 등 에이전트형 CLI 도구가 주류화되면서, 엔지니어들이 여러 에이전트를 동시에 실행해 병렬로 작업을 수행하도록 하는 트렌드가 보이고 있음
- Anthropic 엔지니어 Sid Bidasaria는 대화 중 여러 에이전트를 실행해 생산성을 높였다고 언급
- AI 엔지니어링 전문가 Simon Willison은 "병렬 코딩 에이전트 라이프스타일 수용"이라는 글에서 다음과 같이 설명
- 처음에는 AI 생성 코드 리뷰가 병목이라 회의적이었으나, 최근 몇 주간 자연스럽게 병렬 에이전트를 활용하기 시작
- 한 번에 하나의 중요한 변경사항만 리뷰 및 적용 가능하지만, 인지 부담을 크게 늘리지 않으면서 병렬로 시작할 수 있는 작업이 늘어남
- 병렬 에이전트 활용은 리서치, 유지보수 작업, 지시 기반 작업에서 특히 유용
기존 소프트웨어 엔지니어링 관행에 미치는 영향
- 병렬 에이전트 작업이 수십 년간의 소프트웨어 엔지니어링 관행을 뒤집을 가능성이 있음
- 한 번에 한 문제에 집중하는 "단일 스레드" 동료보다 여러 에이전트를 동시에 실행하는 엔지니어가 더 생산적이라면 충분히 가능
- AI 이전 시대의 엔지니어링은 플로우(flow,몰입) 상태 유지가 핵심
- 구성 요소 이해 → 솔루션 구축·검증 및 반복 → 풀 리퀘스트 제출 또는 병합 및 배포
- 이 과정의 중단은 몰입을 방해하며, 재진입에 시간이 소요됨. 그래서 많은 개발자가 집중 시간 확보를 중시
- 하지만, 모든 생산성 높은 엔지니어에게 해당되는 것은 아님, 일부 엔지니어는 다중 작업과 맥락 전환에 능숙
- 매니저 시절에 알았던 가장 생산적인 엔지니어는 컨텍스트 스위칭을 많이 하며 여러 작업을 동시에 처리
- 하루 일과: 코드 리뷰 → 코딩 작업 → 스탠드업 → 코딩
(실제로는 코드 리뷰 요청, 도움 요청, 관리자 질문 등 지속적인 인터럽션 발생)
시니어 엔지니어와 병렬 에이전트의 적합성
-
시니어 이상 엔지니어가 병렬 AI 에이전트 작업에 자연스럽게 적응할 가능성이 있음
- 팀원들의 병렬 워크플로우를 머릿속에 유지
- 2~5개 워크스트림에 걸쳐 코드 리뷰 수행
- 집중이 지속적으로 깨지는 상황에서 진전을 만드는 인터럽션 처리 능력 습득
- 동료에 대한 지시 능력을 가져서 위임 및 긴급 작업 설명도 가능
- 작문 능력도 보유하여 코드 리뷰, RFC 문서, 티켓 작성, 동료 작업 비평 등 효과적인 서면 커뮤니케이션이 가능
- AI 에이전트를 활용하면 생산성 향상을 원하는 엔지니어들이 훌륭한 기술 리더가 갖춰야 할 자질을 갖출 수 있음
- 현재까지 병렬 에이전트를 성공적으로 사용하는 사람은 대부분 시니어 이상 엔지니어에게서 관찰됨
- 그러나, Flask 창시자 Armin Ronacher는 과거만큼 병렬 에이전트를 사용하지 않는다고 언급
- "내 머리가 리뷰할 수 있는 양에는 한계가 있다"
병렬 에이전트 작업의 미래와 불확실성
- 이제 모든 개발자가 코딩 에이전트로 병렬 작업을 시작할 수 있는 새로운 시대에 진입
- 실제로 엔지니어를 더 생산적으로 만들지, 아니면 단지 생산적이라고 느끼게만 할지는 불확실
- 한 번에 하나씩 집중하는 엔지니어가 시간이 지나면서 더 신뢰할 수 있는 소프트웨어를 생산할 가능성이 있고,
- 병렬 에이전트 작업이 더 많은 문제와 반복 작업으로 이어져 이득을 없앨 가능성도 있음
- 그러나 더 많은 개발자가 병렬 에이전트를 실험할 것으로 예상함
AI 에이전트 작업에서 소프트웨어 엔지니어링 기본의 중요성
- AI 에이전트를 사용할 때도 소프트웨어 엔지니어링 기본 지식이 중요함
- 테스팅: 모든 사이드 프로젝트에 유닛 테스트 적용 (검증 없이 자신의 작업을 신뢰하지 않음)
- 소규모·설명형 작업: 작은 범위의 작업을 설명하고 예시 제공
- 리팩토링: 3~4번째 작업마다 에이전트가 작성한 코드 리팩토링 지시 (메서드 추출, 새 클래스로 이동 등)
- 리뷰: 에이전트의 작업 추적
- 소규모 작업 직접 수행: IDE를 열어두고 몇 줄 변경 작업은 직접 수행해 코드베이스 인식 유지
- 다른 엔지니어들도 동일한 경험을 이야기함: 에이전트가 모든 테스트를 통과하도록 "강제"하는 엔지니어링 관행이 더 나은 결과로 이어짐
- AI 에이전트는 비결정적이며 어느 정도 신뢰할 수 없기 때문에, 이러한 관행을 통해 훨씬 더 신뢰성 있는 실용적 접근이 가능
Armin Ronacher가 언급했듯 검토자의 인지부하가 병목이라 생각합니다. 이미 코딩이나 다른 작업 때문에 바쁜 경우에는 적용할 수 없는 셈이죠 오히려 예상치 못한 품질 저하나 검수시간 소요등 역효과가 날 수도 있다고 생각합니다
개발자에게 AI 활용과 생산성 증대라는 명분으로 멀티태스킹이 보편화될까 우려됩니다
매니저 시절에 알았던 가장 생산적인 엔지니어는 컨텍스트 스위칭을 많이 하며 여러 작업을 동시에 처리
집중이 지속적으로 깨지는 상황에서 진전을 만드는 인터럽션 처리 능력 습득
vs
컨텍스트 전환을 줄이고, 하나의 일을 마친 뒤 다음으로 넘어가며, 기억은 외부 도구에 기록할 것
빈번한 문맥 전환(context switching) 은 측전두엽·두정엽의 통제 부하를 증가시킴
개인적으로 멀티태스킹은 매번 하고 싶은 욕심이 생기지만 너무 지치기 때문에 경계하게 되더라구요.
꾸준히 할 수 있는 단순한 방법이 좋은 거 같습니다.