Array Aggregator는 여러 번들을 배열 하나로 모으는 Make 모듈입니다. 하지만 ‘묶기’만 선택하면 끝나는 것은 아닙니다. 어디부터 모을지, 어떤 필드를 남길지, 결과가 없을 때 후속 작업을 실행할지를 함께 정해야 합니다.
이 글에서는 샘플 업무 3건 중 처리 준비가 된 2건만 남겨 한 배열로 모았습니다. 2026년 9월 13일 Make EU·Free 계정에서 직접 수동 실행했고, 조건에 맞는 항목이 없을 때도 확인했습니다. 외부 앱 계정이나 고객 정보를 사용하지 않았으며 실제 이메일 발송과 예약 실행은 하지 않았습니다.
준비: 같은 입력으로 결과 비교하기
Iterator 실습의 테스트 JSON과 앞부분 설정을 사용합니다. 세 항목의 고유 ID와 상태는 다음과 같습니다. 복사용 JSON과 Basic trigger·Parse JSON 설정은 연결된 글에 있습니다.
| id | title | team | status |
|---|---|---|---|
| FW-001 | 문의 분류 | sales | ready |
| FW-002 | 견적 확인 | sales | hold |
| FW-003 | 자료 정리 | ops | ready |
전체 흐름: Basic trigger → Parse JSON → Iterator → 필터 → Array aggregator → Tools의 Set variable
마지막에 메일을 보내는 대신 변수에 결과를 담아 확인합니다. 이 단계에서는 ‘한 번 모인 배열이 올바른가’만 검사하면 됩니다. 배열은 곧바로 읽기 좋은 이메일 본문이 되는 것이 아니므로, 발송용으로 바꿀 때는 별도의 텍스트 구성과 수신자 검증이 필요합니다.
1. Array Aggregator의 핵심 설정
Iterator 오른쪽 연결 지점에서 Array aggregator를 추가하고 아래와 같이 설정합니다. 테스트 화면에서는 출력 구조 선택 항목이 Target module로 표시됐습니다.
| 필드 | 이번 실습 값 | 이유 |
|---|---|---|
| Source Module | Iterator | 이 모듈에서 나뉜 업무 번들을 모으기 |
| Target module | Custom | 후속 앱의 고정 구조가 아닌 간단한 목록 만들기 |
| Aggregated fields | Iterator의 id, title, team, status | 결과에 필요한 네 필드만 보존 |
| Group by | 비워 둠 | 통과한 항목 전부를 하나로 모으기 |
| Stop processing after an empty aggregation | Yes | 조건에 맞는 항목이 없으면 후속 모듈을 실행하지 않기 |
Group by와 빈 집계 옵션은 Show advanced settings에서 확인했습니다. 저장하면 Iterator부터 Aggregator까지 회색 영역이 표시됩니다. 이번 테스트의 번호는 Iterator 3, Aggregator 6이었지만 자신의 화면에서 같은 역할의 모듈을 고르면 됩니다.
특히 Aggregated fields에서 원본 JSON의 tasks 배열 전체를 다시 고르지 마세요. 여기서는 Iterator가 내보낸 현재 업무의 id 등 네 필드를 선택합니다. 이 범위 안의 개별 값을 후속 모듈에서도 사용하려면 집계 결과에 포함해야 합니다.
2. 결과를 안전하게 확인할 모듈 붙이기
Aggregator 뒤에 Tools → Set variable을 추가합니다. Variable name은 result, Variable value는 Array aggregator의 Array[]로 연결합니다. 실제 발송 기능이 없어도 집계 이후의 실행 횟수와 결과 배열을 확인할 수 있습니다.
3. ready인 업무 두 건만 통과시키기
- Iterator와 Aggregator 사이 연결선을 눌러 필터를 엽니다.
- Label에는
ready 항목만 집계처럼 목적을 적습니다. - 왼쪽 값은 Iterator의 status를 매핑합니다.
- 연산자는 Text operators: Equal to, 오른쪽 값은 직접 입력한
ready로 설정합니다. - 입력칸 밖으로 이동한 뒤 Save를 누르고, 필터 설정창이 닫힌 것을 확인합니다. 그다음 Run once로 실행합니다.
필터 조건의 왼쪽 토큰 뒤에 비교값을 붙여 쓰지 마세요. 두 입력칸은 별개입니다. 또한 Label은 설명일 뿐 조건을 바꾸지 않습니다. 빈 결과를 테스트할 때는 Label이 아니라 오른쪽 비교값을 바꿔야 합니다.
4. 실제로 확인한 세 가지 결과
| 조건 | 필터를 지난 업무 | 집계 결과 | 마지막 Set variable |
|---|---|---|---|
| 필터 없이 실행 | 3건 | 출력 번들 1개, 배열 항목 3개 | 1회 실행 |
| status = ready | 2건: FW-001, FW-003 | 출력 번들 1개, 배열 항목 2개 | 1회 실행 |
| status = no-match 빈 집계 중단 Yes | 0건 | 후속으로 전달되는 집계 번들 없음 | 실행되지 않음 |
ready 조건의 결과 화면에서 확인한 배열 값을 아래처럼 정리할 수 있습니다. 이것은 이메일 본문이 아니라 두 업무의 데이터 목록입니다.
[
{"id":"FW-001","title":"문의 분류","team":"sales","status":"ready"},
{"id":"FW-003","title":"자료 정리","team":"ops","status":"ready"}
]
성공 여부는 녹색 표시만 보지 않고, Array aggregator 실행 결과 → Output → Bundle 1 → Array를 열어 확인했습니다. 배열에 두 항목이 들어 있고 각 ID가 FW-001·FW-003인지 비교하면 됩니다. 이후 테스트 조건은 다시 ready로 복원하고 예약 실행은 계속 꺼두었습니다.

결과가 예상과 다를 때
- 배열에 필요한 필드가 없다면: Aggregated fields에서 Iterator의 해당 필드를 선택했는지 확인하세요.
- 배열 속에 원본 목록이 반복된다면: 현재 번들의 필드 대신 Parse JSON의 전체 tasks 배열을 집계하고 있지 않은지 살펴보세요.
- 한 묶음이어야 하는데 여러 번들이 나온다면: Group by가 비어 있는지와 Source Module의 실행 범위를 확인하세요.
- 결과가 없는데 후속 단계가 동작한다면: 빈 집계 중단 옵션을 확인하세요. 이번 실습은 Yes일 때의 중단을 확인했으며 No로 둔 경우는 직접 실행하지 않았습니다.
Group by와 외부 발송은 별도 확장입니다
Make 공식 Aggregator 문서에 따르면 Group by를 지정하면 같은 키의 항목끼리 묶이며 키마다 출력 번들이 생깁니다. 예를 들어 team별 집계를 설계할 수 있지만, 이 글의 직접 실행에서는 Group by를 비워 두었습니다. 팀별 발송을 구현할 때는 출력 그룹 수와 수신자 매핑을 별도로 검증해야 합니다.
Search Rows처럼 원본 검색 모듈이 이미 여러 번들을 출력한다면 Iterator가 꼭 필요한 것은 아닙니다. 이때는 그 검색 모듈을 집계 시작점으로 삼는 구조를 검토하세요. 배열 분리 여부가 헷갈리면 Iterator가 필요한 경우와 실제 번들 출력으로 돌아가 입력 형태를 확인할 수 있습니다.
수정·검증일: 2026-09-13. 직접 검증 범위는 샘플 데이터 3건, 기본 집계·ready 필터·빈 결과 중단입니다. 화면 이름과 옵션은 변경될 수 있으며, 공식 문서 기반 설명과 직접 실행 기록을 구분했습니다.