[swift] 프로토콜과 확장 기능 활용하기

프로토콜은 Swift 언어에서 인터페이스를 정의하는데 사용되는 강력한 도구입니다. 프로토콜과 함께 확장 기능을 사용하면 코드 재사용성을 높일 수 있고, 유연한 디자인을 할 수 있습니다.

프로토콜 기본

프로토콜은 특정 작업 또는 기능을 정의합니다. protocol 키워드를 사용하여 프로토콜을 선언하고, 프로토콜에 필요한 작업 목록을 선언합니다.

protocol MyProtocol {
    func doSomething()
    var property: Int { get set }
}

위의 예제에서 MyProtocoldoSomething()이라는 메서드와 property라는 속성을 가져야 한다고 선언되어 있습니다.

프로토콜 확장

프로토콜을 확장하여 기본 구현을 제공할 수 있습니다. 이를 통해 모든 프로토콜 준수 객체가 해당 동작을 이해하고 활용할 수 있도록 합니다.

extension MyProtocol {
    func doSomething() {
        print("Doing something")
    }
}

위의 예제에서 MyProtocol을 확장하여 doSomething() 메서드를 기본 구현으로 제공하고 있습니다.

여러 프로토콜 채용

하나의 타입이 여러 개의 프로토콜을 채용할 수 있습니다. 여러 프로토콜을 채용함으로써 해당 타입이 요구하는 다양한 기능을 함께 제공할 수 있습니다.

protocol AnotherProtocol {
    func doAnotherThing()
}

struct MyStruct: MyProtocol, AnotherProtocol {
    var property: Int
    func doAnotherThing() {
        print("Doing another thing")
    }
}

위의 예제에서 MyStruct 구조체가 MyProtocolAnotherProtocol을 모두 채용하고 있습니다.

확장 기능과 프로토콜의 함께 사용

프로토콜을 확장하여 기본 구현을 제공하면, 해당 프로토콜을 채용한 타입들에게 일관된 기능을 제공할 수 있습니다. 이를 통해 코드의 중복을 줄이고 일관성 있는 동작을 보장할 수 있습니다.

프로토콜과 확장 기능을 적절히 활용하여 유연하고 확장 가능한 코드를 구현할 수 있습니다.

결론

프로토콜과 확장 기능은 Swift 언어에서 강력한 코드 재사용성과 유연한 디자인을 가능하게 합니다. 프로토콜을 정의하고 채택함으로써 다양한 타입들이 일관된 인터페이스를 제공할 수 있으며, 확장 기능을 통해 해당 인터페이스에 기본 구현을 제공할 수 있습니다. 이를 통해 유연하고 확장 가능한 애플리케이션을 구축할 수 있습니다.

이상으로 Swift에서 프로토콜과 확장 기능을 활용하는 방법에 대해 알아보았습니다.

참고: Swift.org - Protocols