[Swift Apple ] Swift 클로저 심화 완벽 가이드

🔒 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 애니메이션, 콜백 처리에 매우 자주 사용돼요.



댓글 쓰기