
List.SortByKey 및 List.SortByFunction을 활용한 리스트 정렬 방법
2024년 10월 16일
다이나모에서 리스트를 정렬하는 데에는 다양한 방법이 있습니다. 그중에서 List.SortByKey와 List.SortByFunction 노드는 특정 기준에 따라 리스트를 정렬할 때 매우 유용합니다. 이번 포스팅에서는 이 두 노드의 차이점과 사용법을 설명하겠습니다.
1. List.SortByKey
List.SortByKey
노드는 Key 리스트를 기준으로 입력된 리스트를 정렬하는 기능을 제공합니다. 이때, 두 개의 리스트가 주어지며, Key 리스트가 오름차순으로 정렬된 후, 그 순서에 맞춰 입력된 리스트도 재정렬됩니다.
사용 방법
- Keys에 정렬 기준이 되는 값을 입력합니다.
- List에는 정렬될 리스트의 데이터를 입력합니다.
- 두 리스트의 아이템 개수는 동일해야 합니다. Key 값이 오름차순으로 정렬되면, 입력된 리스트도 그 순서대로 재정렬됩니다.
예시

Keys: [4, 7, 8, 3, 9, 5, 0, 1, 2, 6]
List: ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"]
Key 리스트가 오름차순으로 정렬되면 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]가 되고, 이에 따라 입력 리스트는 ["G", "H", "I", "D", "A", "F", "J", "B", "C", "E"]
로 재정렬됩니다.
이 방법은 리스트의 항목을 특정 기준(Key)에 따라 정렬할 때 유용하며, 리스트 간의 연관성을 유지하면서 정렬할 수 있습니다.
2. List.SortByFunction
List.SortByFunction
노드는 주어진 함수(Function)에 의해 리스트를 정렬하는 기능을 제공합니다. 이 노드는 리스트의 각 항목을 함수에 입력한 후 그 결과값을 바탕으로 정렬합니다.
사용 방법
- Function 입력에 정렬 기준이 될 함수를 입력합니다.
- 리스트는 해당 함수에 의해 정렬됩니다.

예시 1: 문자열 길이로 정렬
List: ["14 August","04 June","20 February","19 August","14 March","06 October","24 August","06 April","07 July","28 June","19 December"]
Function: String.Length
- 각 문자열의 길이를 기준으로 리스트가 오름차순으로 정렬됩니다. 결과는 길이가 가장 짧은(7자)
["04 June", "07 July", "28 June"]
이 오름차순으로 먼저 정렬 되고 그다음으로 짧은(8자)["14 March", "06 April", "19 August", "24 August"]
가 오름차순으로 정렬됩니다.
예시 2: 특정 문자로 정렬
List.SortByFunction
을 사용하여 문자열의 특정 위치에서 시작하는 문자로 정렬할 수도 있습니다.
List: ["14 August","04 June","20 February","19 August","14 March","06 October","24 August","06 April","07 July","28 June","19 December"]
Function: String.Substring(StartIndex = 3, Length = 1)
- 각 문자열의 3번째 인덱스부터 한 글자를 추출해 이를 기준으로 정렬합니다. 예를 들어, “14 August”의 3번째 인덱스는 “A”입니다. 따라서, 결과는
["14 August", "19 August", "24 August", "06 April"]
처럼 3번째 문자가 A인 데이터들이 먼저 정렬되고 그 다음으로 오름차순에 의해["19 December", "20 February", "04 June", ...]
순으로 정렬됩니다.
3. 두 노드의 차이점
- List.SortByKey: 두 개의 리스트를 입력받고, Key 리스트를 기준으로 입력 리스트를 재정렬하는 기능을 합니다. Key 리스트가 기준이 되므로, 두 리스트의 아이템 개수가 동일해야 합니다.
- List.SortByFunction: 함수에 의해 직접 리스트를 정렬하는 방식으로, 함수의 조건에 따라 리스트 항목들이 정렬됩니다. 이 방식은 특정 규칙이나 조건에 맞는 정렬을 구현하는 데 유리합니다.
이 2개의 노드는 정말 자주 사용되는 노드 중 하나입니다. 상황에 따라 적절한 노드를 선택하여 리스트를 효율적으로 관리해 보세요!
← 이전 글
다음 글 →
답글 남기기
댓글을 남기려면 로그인 해야 합니다.