
구조체나 열거형처럼 전달할 때마다 값을 복사해서 새로운 인스턴스를 전달하는 값 타입과는 달리 참조 타입은 하나의 인스턴스가 참조를 통해 여러 곳에서 접근하기 때문에, 언제 메모리에서 해제되는지가 중요한 문제다. 만약 인스턴스가 더 이상 필요하지 않은데도 계속해서 메모리에서 해제되지 않으면 한정적인 메모리 자원을 낭비하게 되고 이는 성능의 저하로 이어진다. Java 나 Kotlin 같은 언어들은 가비지 컬렉션이란 기법을 사용해 메모리를 관리한다. Swift는 ARC 라는 기법을 사용하는데 이것에 대해 알아보도록 하자 ARC란? Automatic Reference Counting (ARC)는 이름에서도 알 수 있듯이 자동으로 메모리를 관리해주는 방식이다. ARC 는 더 이상 필요하지 않은 클래스의 인스턴스를..
스위프트의 클로저 는 함수형 프로그래밍 패러다임을 이해하기 위해 꼭 알고 가야 하는 요소다. 클로저는 다른 프로그래밍 언어의 람다와 유사하고, 일정 기능을 하는 코드를 하나의 블록으로 모아놓은 것을 의미한다. 클로저는 함수의 한 형태이며, 사실 함수는 이름이 있는 클로저라고 할 수 있다. 클로저는 변수나 상수가 선언된 위치에서 참조를 획득할 수 있다. 이를 변수나 상수의 클로징(잠금) 이라 하며, 클로저는 여기서 착안된 이름이다. 클로저는 다음과 같이 세 가지 형태가 있다. 이름이 있으면서 어떤 값도 획득하지 않는 전역함수 이름이 있으면서 다른 함수 내부의 값을 획득할 수 있는 중첩된 함수 이름이 없고 주변 문맥에 따라 값을 획득할 수 있는 축약 문법으로 작성 기본 클로저 스위프트의 표준 라이브러리에는 ..
Comment