[swift] 프로토콜과 구조체

Swift 언어는 프로토콜과 구조체를 사용하여 강력한 기능을 제공합니다. 프로토콜은 인터페이스를 나타내며 구조체는 값 타입을 나타냅니다. 두 가지 기능을 함께 사용하면 객체 지향 및 함수형 프로그래밍 스타일을 혼합할 수 있습니다.

프로토콜 (Protocols)

프로토콜은 메서드, 프로퍼티 및 기타 요구 사항을 정의하는 추상적인 유형을 나타냅니다. 구조체, 클래스 또는 열거형은 프로토콜을 채택하여 프로토콜에서 요구하는 기능을 구현할 수 있습니다.

protocol Vehicle {
    var numberOfWheels: Int { get }
    func start()
    func stop()
}

위의 예제에서 Vehicle 프로토콜은 차량을 나타내며 start()stop() 메서드, 그리고 numberOfWheels 프로퍼티를 요구합니다.

구조체 (Structs)

구조체는 값을 캡슐화하고 전달하는 데 사용되며 프로토콜과 함께 사용될 때 강력한 기능을 발휘합니다.

struct Car: Vehicle {
    var numberOfWheels: Int = 4
    
    func start() {
        print("Car started")
    }
    
    func stop() {
        print("Car stopped")
    }
}

위의 예제에서 Car 구조체는 Vehicle 프로토콜을 채택하고 요구되는 모든 기능을 구현합니다.

장점

프로토콜과 구조체를 함께 사용함으로써 코드의 유연성과 재사용성을 향상시킬 수 있습니다. 또한, 다중 상속과 달리 Swift의 프로토콜은 다중 채택이 가능하므로 여러 프로토콜을 하나의 타입이 채택할 수 있습니다.

프로토콜과 구조체는 Swift 언어의 독특한 특징으로, 객체 지향 및 함수형 프로그래밍 패러다임을 유연하게 결합할 수 있는 강력한 수단을 제공합니다.

기존 코드에 유연성을 더하는 방법에 대해 더 알아보세요.

레퍼런스