Map/Filter/Reduce와 지연 순서열
map / filter / reduce 로 변환·선택·결합한 다음, .lazy 를 추가해 작업을 지연하고 중간 배열 생성을 피합니다.
Map/Filter/Reduce와 지연 순서열은(는) CoddyKit의 무료 Swift Academy 강의입니다. 이것은 3개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Swift Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Swift Academy 강의에는 총 3개의 강의가 포함되어 있습니다.
핵심 개념
핵심 알고리즘:
- 매핑: 각 요소 변환
- 필터링: 조건에 맞는 요소 유지
- reduce: 하나의 값으로 결합
- 지연 처리: 임시 배열을 피하도록 작업을 미룸
매핑
매핑은 각 요소를 변환하고 새 배열을 반환합니다.
let nums = [1, 2, 3]
let doubled = nums.map { $0 * 2 } // [2, 4, 6]
print(doubled)
let words = ["swift", "kit"]
let upper = words.map { $0.uppercased() } // ["SWIFT","KIT"]
print(upper)필터링
필터링은 조건이 참을 반환하는 요소만 유지합니다.
let scores = [45, 72, 88, 53]
let passing = scores.filter { $0 >= 60 } // [72, 88]
print(passing)
let names = ["Ana","Li","Max"]
let short = names.filter { $0.count <= 2 } // ["Li"]
print(short)reduce
reduce는 시작 값과 결합 클로저를 사용해 시퀀스를 하나의 결과로 접습니다.
let total = [1,2,3,4].reduce(0) { acc, x in acc + x } // 10
print(total)
let joined = ["a","b","c"].reduce("") { $0 + $1 } // "abc"
print(joined)지연된 주문형 작업
지연 처리는 지연된 파이프라인을 구성합니다. 요소를 소비할 때(예: prefix, first 또는 반복을 통해) 연산이 실행됩니다.
let range = 1...10
let lazyPipeline = range.lazy
.map { x in print("map", x); return x * x }
.filter { x in print("filter", x); return x % 2 == 0 }
// Only the first 3 results are needed:
let firstThree = Array(lazyPipeline.prefix(3))
print("result:", firstThree)
// Notice how only the work needed for 3 elements ran.팁
팁:
- 명확한 데이터 흐름을 위해 매핑 → 필터링 → reduce를 연결합니다.
- 파이프라인의 일부만 소비하거나 임시 배열을 피하려면 지연 처리를 추가합니다.
- 구체적인 배열이 필요할 때만
Array(...)로 실체화합니다.
지연 처리의 의미
빠른 확인: 매핑과 필터링을 연결한 연산에 .lazy를 사용하면 어떤 효과가 있습니까?
복습
복습: 변환에는 매핑, 선택에는 필터링, 결합에는 reduce를 사용합니다. 주문형 평가와 더 적은 메모리 할당이 필요하면 지연 처리를 추가합니다.
자주 묻는 질문
“Map/Filter/Reduce와 지연 순서열” 강의는 무료인가요?
네 — “Map/Filter/Reduce와 지연 순서열” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Swift Academy 강의 전체를 잠금 해제할 수 있습니다. Swift Academy 강의에는 총 3개의 강의가 포함되어 있습니다.
“Map/Filter/Reduce와 지연 순서열”에서 뭘 배우나요?
map / filter / reduce 로 변환·선택·결합한 다음, .lazy 를 추가해 작업을 지연하고 중간 배열 생성을 피합니다. 브라우저에서 직접 실행하는 실습 코드로 Swift Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Swift Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Swift Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 3개 중 2번째 강의입니다.
“Map/Filter/Reduce와 지연 순서열” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Swift Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Swift Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- Sequence/Collection 계층
- Map/Filter/Reduce와 지연 순서열
- 사용자 지정 반복자와 성능 팁