
Dynamo에서 n번째 항까지의 총합 구하기: List.Scan 사용법
이번 포스팅에서는 간단한 예제를 통해 다이나모(Dynamo)에서 N번째 항까지의 총합을 구하는 방법을 소개하고자 합니다. 이를 통해 층고가 주어졌을 때, 각 층의 레벨을 계산하는 방법을 알아보겠습니다.
1. 층고를 이용한 각 층의 레벨 산정
아래는 층고가 주어졌을 때 각 층의 레벨을 산정하는 간단한 예시입니다.

- 1층 레벨: EL + 500
- 1층 층고: EL +3,000
- 2층 층고: EL +4,000
- 3층 층고: EL +5,000
- 4층 층고: EL +6,000
이 데이터를 기반으로 각 층의 레벨을 구할 수 있습니다.
각 층의 레벨 산정 방법:
- 1층 레벨: EL + 500 (500)
- 2층 레벨: EL + 3,500 (500 + 3,000)
- 3층 레벨: EL + 7,500 (500 + 3,000 + 4,000)
- 4층 레벨: EL + 12,500 (500 + 3,000 + 4,000 + 5,000)
- 지붕 레벨: EL + 18,500 (500 + 3,000 + 4,000 + 5,000 + 6,000)
이러한 방식으로 층별 레벨을 계속해서 더해가며 산정할 수 있습니다. 그렇다면 이 과정을 다이나모에서 어떻게 구현할 수 있을까요? 바로 List.Scan 노드를 사용하여 구현할 수 있습니다.
List.Scan을 이용한 총합 계산
List.Scan 노드는 리스트의 각 항목에 대해 누적 연산을 수행하여 n
번째 항까지의 총합을 쉽게 구할 수 있습니다. 이 기능은 여러 층의 레벨처럼 누적된 값을 계산할 때 매우 유용합니다.
2. List.Scan 노드 설정
List.Scan
노드를 활용해 각 층의 레벨을 구하는 방법을 단계별로 설명하겠습니다:

- Reductor에 더하기 기능을 수행하기 위해
+
노드를 연결합니다. - Seed에 첫 번째 항인
500
을 입력합니다. (EL+500에서 첫 번째 층의 레벨 값) - List1에 각 층의 층고 값을 차례로 입력합니다. 즉,
[3000, 4000, 5000, 6000]
을 리스트로 입력합니다.
이렇게 설정한 후 List.Scan
노드를 실행하면, 각 층의 누적 레벨을 순서대로 얻을 수 있습니다.
3. 다른 방법: List.Deconstruct 사용
또 다른 방식으로는 List.Deconstruct 노드를 활용하는 방법이 있습니다. 이 노드는 리스트를 첫 번째 항목과 나머지 항목들로 분리해줍니다. 이를 통해 첫 번째 항은 Seed에, 나머지 항들은 List1에 각각 연결하면 List.Scan 노드와 동일한 결과를 얻을 수 있습니다.
예시

- List.Deconstruct를 사용해 첫 번째 항과 나머지 항들을 분리합니다.
- 첫 번째 항인
500
을 Seed로, 나머지 리스트인[3000, 4000, 5000, 6000]
을 List1에 연결합니다. +
노드를 통해 다시 List.Scan과 같은 방식으로 누적합을 계산할 수 있습니다.
4. 요약
- List.Scan 노드는 리스트의 누적 합을 계산할 때 매우 유용합니다.
- Seed 값은 첫 번째 항을 입력하고, 나머지 리스트를
List1
에 연결하면 됩니다. - List.Deconstruct 노드를 사용해 첫 번째 항과 나머지 항을 분리할 수도 있습니다.
이처럼 다이나모에서는 기본 노드만으로도 쉽게 복잡한 누적 계산을 수행할 수 있습니다. 이 방식은 층고, 면적, 하중 등 다양한 누적 계산에 활용될 수 있습니다.
← 이전 글
다음 글 →
답글 남기기
댓글을 남기려면 로그인 해야 합니다.