클로저(Closure)를 쓰다 보면 가끔 예상치 못한 메모리 문제를 만난다."왜 self가 필요하지?""이 변수 값이 왜 바뀌지 않지?" "메모리 해제가 안 되는 이유가 뭘까?"이런 의문이 들었다면, 바로 "캡처 리스트(Capture List)"를 이해해야 할 때다.오늘은 Swift에서 클로저가 변수를 어떻게 캡처하는지, 캡처 리스트가 없으면 어떤 문제가 생기는지, 실무에서는 어떻게 활용해야 하는지 알아보자클로저는 변수를 어떻게 기억할까?먼저 클로저(Closure)가 변수를 캡처(Capture)한다는 개념부터 이해해보자.func makeIncrementer() -> () -> Int { var total = 0 let increment: () -> Int = { total ..
Swift를 보면 첫인상이 참 깔끔하다문법이 간결하고 직관적이라 "배우기 쉬운 언어"라는 느낌이 강하다.하지만 깊이 들어가 보면 강력한 성능과 최신 프로그래밍 패러다임을 지원하는, 정말 잘 설계된 언어라는 걸 알게 된다.Swift는 단순히 "iOS 개발에 쓰는 언어"가 아니라, 객체 지향(OOP), 프로토콜 지향(POP), 함수형 프로그래밍(FP)을 모두 조합해서 사용할 수 있는, 현대적인 언어다.그래서 오늘은 Swift의 핵심 개념과 특징을 정리하면서, 다른 언어들과는 뭐가 다른지, 왜 Swift를 써야 하는지 이야기해보려고 한다.Swift가 뭔데?Swift는 애플이 만든 프로그래밍 언어다.iOS, macOS, watchOS, tvOS 같은 애플 생태계에서 앱을 만들 때 주로 사용한다.그냥 "애플에서 ..