🔒 Swift 클로저(Closure) 완전 입문
– 함수와 비슷하지만 더 유연한 도구!
안녕하세요! 😊 오늘은 Swift 프로그래밍에서 꼭 알아야 할
클로저(Closure) 에 대해 쉽고 재미있게 배워볼 거예요. 처음엔 “클로저? 뭔가 무서워 보이는데…”라고 생각할 수 있어요. 하지만 사실은 함수처럼 작동하는 짧고 간편한 코드 조각이에요.
이 글을 끝까지 읽으면 클로저가 더 이상 낯설지 않게 될 거예요!
✅ 클로저란 무엇인가요?
클로저(Closure) 는 쉽게 말하면:
이름이 없는 함수 (익명 함수) 또는 변수에 저장할 수 있는 코드 블록
즉, “함수처럼 어떤 동작을 저장해두고 나중에 실행할 수 있는 코드” 에요.
Swift에서는 클로저를 변수에 저장하거나,
다른 함수에 전달해서 사용할 수 있어요.
🧪 클로저 기본 예제
let sayHello = { () -> Void in
print("Hello, Swift!")
}
sayHello() // 실행
설명:
-
let sayHello = { ... } → 클로저를 변수에 저장
-
() -> Void → 파라미터 없음, 반환값 없음
-
in → 실행 코드 시작을 나타냄
🧲 클로저는 이렇게 사용돼요
예제 1: 이름을 받아 인사하는 클로저
let greet = { (name: String) in
print("안녕하세요, \(name)님!")
}
greet("지우")
예제 2: 두 수를 더하는 클로저
let add = { (a: Int, b: Int) -> Int in
return a + b
}
print(add(3, 4)) // 7
✏️ 실습해보기
실습 1: 좋아하는 동물을 받아서 출력하는 클로저
let showFavoriteAnimal = { (animal: String) in
print("제가 좋아하는 동물은 \(animal)입니다!")
}
showFavoriteAnimal("고양이")
실습 2: 점수를 받아 합격/불합격 출력하기
let checkPass = { (score: Int) in
if score >= 70 {
print("합격입니다!")
} else {
print("불합격입니다.")
}
}
checkPass(75)
✨ 왜 클로저를 사용할까요?
-
✅ 함수를 간단하게 표현할 수 있어요
-
✅ 이름 없이도 사용할 수 있어요
-
✅ 다른 함수에 전달할 수 있어요 (콜백, 애니메이션 등에서 자주 사용)
-
✅ 변수처럼 저장하고, 필요할 때 실행할 수 있어요
🎯 함수와 클로저는 어떻게 다를까요?
구분 |
함수 (Function) |
클로저 (Closure) |
---|---|---|
정의 방법 |
func 키워드 사용 |
중괄호 {}와 in 사용 |
이름 |
반드시 이름이 있음 |
이름이 없어도 사용 가능 |
사용 위치 |
전역, 클래스, 구조체 내부 등 |
변수에 저장하거나 전달 |
코드 길이 |
구조가 길어짐 |
간결한 표현 가능 |
대표 사용처 |
재사용 가능한 동작 정의 |
일회성 동작, 콜백, 이벤트 처리 |
📌 같은 기능, 다른 표현
함수로 작성:
func square(x: Int) -> Int {
return x * x
}
print(square(x: 4)) // 16
클로저로 작성:
let square = { (x: Int) -> Int in
return x * x
}
print(square(4)) // 16
💡 결론: 언제 클로저를 쓰면 좋을까?
상황 |
추천 방식 |
---|---|
여러 곳에서 자주 쓰는 기능 |
함수 |
짧고 단순한 동작, 한 번만 쓸 경우 |
클로저 |
다른 함수에 기능을 전달할 때 |
클로저 |
비동기 작업, 버튼 클릭, 애니메이션 등 |
클로저 (콜백) |
✅ 정리하며
-
클로저는 이름 없는 함수처럼 작동해요.
-
변수에 저장하거나, 다른 함수의 인자로 전달할 수 있어요.
-
함수보다 더 간단하게 정의할 수 있고,
-
앱 개발에서 UI 애니메이션, 콜백 처리에 매우 자주 사용돼요.
댓글 쓰기