AI 애플리케이션을 구축할 때, 단순해 보이지만 모든 것을 하나의 요청으로 처리하려고 하면 복잡해지는 작업을 자주 마주하게 됩니다. 복잡한 작업을 분해하고 Claude로부터 더 나은 결과를 얻는 데 도움이 되는 워크플로우 패턴을 살펴보겠습니다.
복잡한 단일 요청의 문제점
사용자가 부품 이미지를 업로드하면 최적의 재료를 추천해주는 재료 디자이너 애플리케이션을 구축한다고 상상해 보세요. 처음에는 금속, 폴리머, 세라믹, 복합재, 엘라스토머, 목재 중에서 선택하도록 요청하는 간단한 프롬프트와 함께 이미지를 Claude에 보내는 방식을 떠올릴 수 있습니다.

이 기본적인 접근 방식은 작동할 수도 있지만, 적절한 가이드 없이 Claude에게 많은 분석을 요청하는 것입니다. 자연스러운 개선 방법은 각 재료 유형에 대한 상세한 기준을 포함하여 프롬프트를 확장하는 것입니다.

하지만 이는 새로운 문제를 만들어냅니다. 여러 복잡한 분석을 동시에 처리해야 하기 때문에 Claude를 혼란스럽게 할 수 있는 거대한 프롬프트가 생기게 됩니다. 모델은 각 재료의 다양한 장단점을 한꺼번에 고려하려다 주의가 분산될 수 있습니다.
더 나은 접근 방식: 병렬화
모든 것을 하나의 요청에 억지로 담는 대신, 작업을 여러 개의 전문화된 요청으로 나누어 병렬로 실행할 수 있습니다. 작동 방식은 다음과 같습니다:

동일한 이미지를 Claude에 여러 번 보내되, 각기 다른 전문화된 프롬프트를 사용합니다. 각 요청은 단 하나의 재료 유형에 대해서만 부품을 평가하는 데 집중합니다:
- 한 요청은 금속에 대한 적합성을 분석합니다
- 다른 요청은 폴리머 옵션을 평가합니다
- 세 번째 요청은 세라믹 재료를 고려합니다
- 그리고 각 재료 유형에 대해 이와 같이 계속됩니다
각 프롬프트는 강도 요구사항, 내열성, 제조 제약 조건과 같은 관련 기준을 포함하여 해당 특정 재료에 맞게 고도로 전문화될 수 있습니다.
결과 집계하기
개별 분석 결과를 모두 받은 후, 집계자 역할을 하는 최종 요청을 Claude에 보냅니다. 이 요청은 모든 전문화된 분석을 가져와 Claude에게 이를 비교하고 최종 추천을 하도록 요청합니다.

이제 Claude는 처음부터 재료를 비교할 필요가 없습니다. 대신, 이미 수집한 상세한 평가를 기반으로 분석 결과를 평가하고 가장 유망한 옵션을 식별하는 데 집중할 수 있습니다.
병렬화 패턴
이 접근 방식은 병렬화 워크플로우라는 일반적인 패턴을 따릅니다:

- 분할(Split): 하나의 복잡한 작업을 여러 개의 전문화된 하위 작업으로 나눕니다
- 실행(Run): 하위 작업을 병렬로(동시에) 실행합니다
- 집계(Aggregate): 최종 단계에서 결과를 함께 모읍니다
핵심 통찰은 병렬화된 하위 작업들이 동일할 필요가 없다는 것입니다. 각 작업은 특정 목적에 맞춘 전문화된 프롬프트, 다른 도구, 또는 고유한 접근 방식을 가질 수 있습니다.
병렬화의 이점
이 워크플로우 패턴은 여러 가지 장점을 제공합니다:
- 집중된 주의: Claude는 여러 복잡한 고려사항을 동시에 처리하는 대신 한 번에 하나의 특정 분석에 집중할 수 있습니다
- 더 쉬운 최적화: 각 하위 작업에 대한 프롬프트를 독립적으로 개선하고 테스트할 수 있습니다
- 더 나은 확장성: 새로운 재료 유형이나 기준을 추가해도 기존 하위 작업이 복잡해지지 않습니다
- 더 빠른 실행: 하위 작업이 병렬로 실행되므로, 전체 시간이 순차적 접근 방식보다 짧은 경우가 많습니다
이 패턴을 사용해야 할 때
병렬화는 독립적인 하위 문제로 분해할 수 있는 복잡한 작업이 있을 때 잘 작동합니다. Claude에게 여러 옵션을 고려하거나, 여러 유형의 분석을 수행하거나, 동일한 문제의 다양한 측면을 동시에 처리하도록 요청하는 상황을 찾아보세요.
이 패턴은 각 하위 작업이 전문화된 프롬프팅의 이점을 얻을 때, 또는 모델에 한 번에 너무 많은 복잡성을 부담시키지 않으면서 다양한 가능성을 철저히 다루고자 할 때 특히 유용합니다.