CPN 한국어 자습서 · 러닝패스 2 / 4 — Building with the Claude API
에이전트와 워크플로
Parallelization workflows
이번 장은 하나의 작업을 여러 하위작업으로 쪼개 동시에 실행하고, 그 결과를 마지막 집계 단계(aggregator)에서 합치는 병렬화 워크플로를 봅니다. 소재 추천 앱을 예로, 단순한 프롬프트와 거대한 단일 프롬프트가 왜 최선이 아닌지, 그리고 병렬 호출 → 집계가 그것을 어떻게 풀어내는지 살펴봅니다.
Stephen Grider · Anthropic 기술 스태프
이번에는 또 다른 워크플로를 살펴봅니다. 앱도 조금 바꿔 보겠습니다. 사용자가 어떤 부품 이미지를 화면에 끌어다 놓는 것은 같지만, 이번에는 그 대가로 분석 리포트를 돌려줍니다. 여러 기준을 고려했을 때 그 부품을 어떤 소재로 만드는 게 가장 좋은지를 알려 주는 리포트입니다.
이 기능을 구현하는 가장 단순한 방법은 이렇습니다. 사용자가 올린 이미지를 짧은 프롬프트와 함께 Claude에 보내고, "이 부품을 금속·폴리머·세라믹 등 가운데 무엇으로 만드는 게 최선인지 정해 달라"고 묻는 것입니다. 아마 동작은 할 것입니다. 하지만 이렇게 단순한 프롬프트로는 Claude에게 너무 많은 것을 요구하고 있습니다. 예컨대 어떤 소재를 고를 때 고려해야 할 실제 기준을 하나도 알려 주지 않았습니다. 그래서 되긴 해도, 최선의 결과는 아닐 수 있습니다.
자연스러운 개선은 이 프롬프트로 돌아가 훨씬 더 자세한 내용을 덧붙이는 것입니다. 어떤 경우에 금속을, 어떤 경우에 폴리머를 권해야 하는지 시나리오를 적어 줍니다. 그러다 보면 결국 아주 거대한 단일 프롬프트가 됩니다. 금속을 쓸 기준, 폴리머를 쓸 기준, 이어서 세라믹·복합재·엘라스토머·목재까지 반복해서요. 그런데 이렇게 거대한 프롬프트는 한 단계 안에서 너무 많은 분석과 작업을 해야 해서 Claude를 오히려 혼란스럽게 만들 수 있습니다. 그래서 이 또한 최선의 결과로 이어지지 않을 수 있습니다.
더 나은 방법을 보여 드리겠습니다. 사용자가 처음 이미지를 제출하면, 여러 요청을 병렬로 Claude에 보내기로 합니다. 각 요청에는 한 소재에 특화된 프롬프트를 담아, "이 부품을 금속으로 만드는 게 좋은 생각일지", 또는 폴리머로, 세라믹으로, 복합재로… 하고 묻습니다. 즉 요청 하나하나가 한 소재로 이 부품을 만드는 적합성만 따집니다. 이렇게 하면 프롬프트마다 그 소재에 맞게 특화할 수 있고, Claude는 여러 소재를 한꺼번에 신경 쓸 필요 없이 한 번에 한 소재에만 집중하면 됩니다.
이윽고 Claude에서 응답들이 돌아옵니다. 소재별로 — 금속·폴리머·세라믹·복합재 등으로 — 이 부품을 만드는 적합성을 알려 주는 개별 분석 결과들입니다. 그런 다음 이 분석 결과들을 다시 Claude에 후속 요청으로 넣어, 각 결과를 살펴보고 최종 소재를 결정해 달라고 부탁할 수 있습니다. 이때 Claude는 모든 소재를 처음부터 일일이 비교할 필요가 없습니다. 그저 가장 유망해 보이는 분석 결과들만 들여다보면 됩니다.
이것이 병렬화 워크플로의 한 예입니다. 병렬화 워크플로의 핵심 생각은, 하나의 작업을 여러 개의 서로 다른 하위작업으로 쪼개는 것입니다. 그 하위작업들은 병렬로, 즉 동시에 실행할 수 있습니다. 그러고 나서 그 모든 하위작업의 결과를 마지막 집계 단계(aggregator)에서 한데 합칩니다. 우리 경우에는, 소재별 분석을 동시에 돌린 뒤 그 결과를 집계 단계에서 모아 최종 소재를 고르는 것이 바로 그것입니다.
이 장에서 배우는 것What you'll learn
약 3분예시 앱 — 부품 이미지를 올리면 분석 리포트로 최적 소재를 알려 줌(여러 기준)
단순 단일 프롬프트 — 짧게 한 번에 물으면 고려 기준이 빠져 최선이 아님
거대 단일 프롬프트 — 소재별 기준을 다 넣으면 한 단계 분석이 과해 Claude가 혼란
병렬화 — 이미지 제출 시 소재별로 특화한 요청을 동시에 호출(한 번에 한 소재)
집계 단계(aggregator) — 분석 결과를 후속 요청으로 모아 최종 소재 결정
정의 — 한 작업을 하위작업으로 쪼개 동시 실행 후 마지막 집계 단계에서 합침
이번 앱은 사용자가 부품 이미지를 끌어다 놓으면, 여러 기준을 따져 그 부품을 만들기에 가장 좋은 소재를 분석 리포트로 돌려줍니다. 후보는 금속·폴리머·세라믹·복합재·엘라스토머·목재 여섯 가지입니다.
부품 → 소재 분석 리포트
부품 이미지를 올리면, 여러 기준을 따져 가장 알맞은 소재를 분석 리포트로 돌려줍니다.
목표 — 부품 하나에 대해 여섯 후보 소재 중 최선을 고르는 것. 결과는 "어떻게 물어보는지"에서 갈립니다.
가장 단순한 방법은 이미지와 짧은 프롬프트로 "무엇이 최선이냐"고 한 번에 묻는 것입니다. 되긴 하지만 고려 기준을 주지 않아 최선이 아닙니다. 그래서 기준을 다 적어 넣으면 이번엔 거대한 단일 프롬프트가 되어, 한 단계에 분석이 너무 많아 Claude가 혼란스러워집니다. 두 방법을 견줘 보세요. (방법 C는 다음 절에서 봅니다.)
한 프롬프트에 소재별 기준을 전부 욱여넣기
병렬 분석 결과들을 다시 Claude에 보내 — 각 결과를 종합해 최종 소재를 결정합니다. Claude는 처음부터 다 비교할 필요 없이 가장 유망한 결과만 들여다보면 됩니다.
소재마다 한 호출이 한 가지에만 집중 → 여섯 갈래가 동시에 실행 → 집계 단계에서 모아 최선을 고릅니다.
한 호출에 전부 떠넘기면 — 기준이 없으면 부실하고, 기준을 다 넣으면 한 단계가 과부하됩니다. 작업을 쪼개서 각각 따로 물어야 모델이 한 가지에 집중할 수 있습니다.
더 나은 방법은 이렇습니다. 이미지를 제출하면 소재별로 특화한 요청을 동시에(fan-out) 보냅니다. 각 요청은 한 소재의 적합성만 따지므로 Claude는 한 번에 하나에만 집중합니다. 돌아온 분석 결과들은 다시 후속 요청으로 Claude에 넣어, 집계 단계(aggregator)에서 종합해 최종 소재를 고릅니다. 위 위젯의 방법 C 탭에서 흐름을 확인하세요.
정확도가 오른다
각 요청이 한 소재만 특화·평가하므로 더 깊고 꼼꼼하게 따집니다.
빠르다
여러 호출이 차례가 아니라 한꺼번에 나가므로 전체 시간이 줄어듭니다.
결과를 합친다
소재별 충실한 분석을 후속 요청으로 모아, 최선의 소재를 종합해 고릅니다.
집계 단계의 Claude는 모든 소재를 처음부터 비교하지 않습니다. 가장 유망한 분석 결과만 살펴 최종 결정을 내립니다. 이렇게 분석과 결정을 나누는 것이 병렬화의 핵심입니다.
Q1부품을 6개 소재로 한 번에 평가하는 단일 프롬프트의 품질이 낮습니다. 개선 워크플로는?
작업을 독립 하위작업으로 쪼개 동시에 호출(fan-out)하고, 마지막 집계 단계(aggregator)에서 결과를 모아 결정합니다.
Q2병렬 분석 결과들을 다시 Claude에 보내 최종 소재를 정하는 마지막 단계를 무엇이라 하나요?
병렬 하위작업의 결과를 한데 합쳐 최종 판단을 내리는 마지막 단계가 집계 단계(aggregator)입니다. Claude는 가장 유망한 결과만 보면 됩니다.
Q3각 요청을 한 소재에만 특화시켜 동시에 호출하면 가장 직접적으로 얻는 것은?
요청마다 한 소재만 따지니 더 꼼꼼해지고, 여러 호출이 동시에 나가 전체 시간이 줄며, 결과는 집계 단계에서 종합합니다.
다음은 큰 작업을 순차 단계로 분해하는 워크플로입니다. → 체이닝 워크플로
전 코스는 계속 무료입니다. 등록하면 이 코스의 남은 76개 레슨을 끝까지 읽을 수 있습니다.
이미 등록하셨다면 그때 쓰신 이메일을 넣어 주세요.