クイズ: 動的ブロックと複雑な型
한국어 원문으로 표시합니다.
for_each 에 서비스 목록(리스트)을 그대로 넘기면 어떻게 되는가?
- 인덱스를 키로 삼아 동작한다
- 첫 항목만 만들어진다
- 리스트가 자동으로 집합으로 바뀐다
- 집합이나 맵이 아니라서 거절당한다
flatten 으로 이중 반복을 펴는 방식과 setproduct 로 만드는 방식의 차이는?
- flatten 은 입력에 있는 조합만 만들고, setproduct 는 모든 조합을 만든 뒤 걸러야 한다
- flatten 은 맵만 다루고 setproduct 는 리스트만 다룬다
- setproduct 는 중복을 자동으로 제거하지만 flatten 은 그대로 둔다
- flatten 은 정렬된 결과를, setproduct 는 무작위 순서를 돌려준다
dynamic 블록의 for_each 에 빈 리스트를 주면?
- 빈 블록이 하나 만들어져 기본값으로 채워진다
- 그 중첩 블록이 아예 만들어지지 않는다
- 계획 단계에서 오류가 난다
- 부모 리소스 자체가 만들어지지 않는다
스키마가 최대 한 개만 허용하는 중첩 블록을 dynamic 으로 두 개 만들면?
- 두 번째 블록이 조용히 무시된다
- 두 블록의 값이 병합된다
- 허용 범위와 실제 개수를 알려 주는 값 검증 오류로 막힌다
- dynamic 블록은 개수 제한을 받지 않는다
list(object(...)) 형과 validation 을 변수에 붙이는 가장 큰 이점은?
- 같은 변수를 여러 모듈이 공유할 수 있게 된다
- 상태 파일 크기가 줄어든다
- 프로바이더가 값을 미리 검증해 API 호출이 줄어든다
- 형이 틀리거나 규칙을 어긴 입력을 apply 전에 막을 수 있다
블록 세 개가 개수는 고정이고 값만 조금씩 다를 때 권장되는 방식은?
- 그냥 세 블록을 그대로 적는다
- dynamic 으로 만들고 차이는 데이터로 옮긴다
- 리소스를 세 벌 만들어 count 로 고른다
- 모듈로 감싸 세 번 호출한다