List.GroupByKey 및 List.GroupByFunction을 활용한 리스트 그룹화 방법
다이나모에서 리스트를 다룰 때, 데이터를 특정 기준에 따라 그룹화할 수 있는 두 가지 강력한 도구인 List.GroupByKey와 List.GroupByFunction을 사용할 수 있습니다. 이 포스팅에서는 각각의 기능과 사용법을 소개하겠습니다.
1. List.GroupByKey
List.GroupByKey
노드는 입력된 Key 리스트를 기준으로 입력 리스트의 데이터를 그룹화합니다. 이때, 입력 리스트와 Key 리스트의 항목 개수는 동일해야 하며, Key 리스트의 고유 값에 따라 입력 리스트가 그룹으로 분류됩니다.
사용 방법
- Key 리스트: 그룹화 기준이 되는 리스트를 입력합니다.
- 입력 리스트: 그룹화할 리스트를 입력합니다.
- 결과: Key 리스트의 고유 값(Unique Keys)에 따라 입력 리스트가 그룹으로 분류됩니다.
예시
리스트: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
Key 리스트: [A, B, C, D, E, B, C, D, E, F, C, D, E, F, G]
이 리스트를 그룹화하면, Key 리스트
에서 중복된 아이템을 제거한 고유 값이 먼저 반환됩니다:
Unique Keys: [A, B, C, D, E, F, G]
이제, Unique Keys를 기준으로 입력 리스트가 그룹화됩니다:
- A 그룹: [1]
- B 그룹: [2, 6]
- C 그룹: [3, 7, 11]
- D 그룹: [4, 8, 12]
- E 그룹: [5, 9, 13]
- F 그룹: [10, 14]
- G 그룹: [15]
이를 통해 Key 리스트에 따라 각 아이템을 원하는 그룹으로 나눌 수 있습니다.
2. List.GroupByFunction
List.GroupByFunction
노드는 특정 함수(Function)에 의해 리스트를 새롭게 그룹화하는 기능을 제공합니다. 이 노드는 함수에 의해 반환된 값에 따라 리스트를 그룹화하며, 다양한 조건을 적용하여 데이터를 효율적으로 분류할 수 있습니다.
사용 방법
- Function: 리스트를 그룹화할 때 적용할 함수를 입력합니다.
- 입력 리스트: 그룹화할 리스트를 입력합니다.
- 결과: 함수에 의해 반환된 기준 값에 따라 리스트가 그룹화됩니다.
예시 1: 특정 문자열 포함 여부로 그룹화
리스트: ["March 1","March 3","March 5","March 8","March 20","June 28","June 3","June 8","June 21","June 16","May 28","December 3","April 8","April 21","November 16"]
Function: March가 포함된 문자열을 찾는 함수
이 함수는 “March”라는 문자열이 포함된 항목을 기준으로 리스트를 그룹화합니다:
- March 그룹: [“March1”, “March3”, “March5”, “March8”, “March20”]
- March 외 그룹: [“June”, “May”, “December”,…]
예시 2: 문자열 길이로 그룹화
리스트: ["March 1","March 3","March 5","March 8","March 20","June 28","June 3","June 8","June 21","June 16","May 28","December 3","April 8","April 21","November 16"]
Function: String.Length
문자열의 길이를 기준으로 리스트가 그룹화됩니다:
- 길이 6인 그룹: [“June 3”, “June 8”, “May 28”]
- 길이 7인 그룹: [“March1”, “March3”, “March5”, “March8”, “June 28”, “June 21”, “June 16”]
- 길이 8인 그룹: [“banana”, “April 8”]
(“April 8″의 길이가 8 인 이유는 April과 8사이에 공백이 1개가 아니라 2개가 적용되었기 때문입니다, 공백의 길이도 문자 길이에 포함되니 유의하세요)
이처럼 List.GroupByFunction
은 특정 속성이나 규칙을 적용해 리스트를 동적으로 그룹화하는 데 적합합니다.
3. 두 노드의 차이점
- List.GroupByKey: Key 리스트의 고유 값에 따라 리스트가 그룹화됩니다. Key와 리스트 간의 항목 개수가 동일해야 하며, Key 리스트의 중복된 값은 제거되고 고유 값에 따라 리스트가 그룹화됩니다.
- List.GroupByFunction: 주어진 함수에 의해 리스트가 그룹화됩니다. 리스트의 항목을 함수의 기준에 따라 동적으로 분류할 수 있어, 복잡한 조건을 적용한 그룹화가 가능합니다.
이 노드의 작동방식은 List.SortByKey와 SortByFunction과 유사점이 있습니다. 상황에 맞는 노드를 선택해 데이터를 효율적으로 그룹화하고, 리스트를 다루는 방법을 익혀보세요!
← 이전 글
다음 글 →
답글 남기기
댓글을 남기려면 로그인 해야 합니다.