[swift] 프로토콜 간 상속 및 확장

프로토콜은 Swift에서 타입 간의 인터페이스 정의를 위한 강력한 도구입니다. 프로토콜을 사용하면 코드의 유연성을 증가시키고 재사용성을 높일 수 있습니다. 프로토콜 간 상속과 확장은 이러한 장점을 더욱 확대시키는 방법 중 하나입니다. 이번에는 Swift에서 프로토콜 간 상속과 확장하는 방법에 대해 알아보겠습니다.

프로토콜 간 상속

Swift에서는 프로토콜도 클래스와 유사하게 상속 관계를 가질 수 있습니다. 이를 통해 한 프로토콜이 다른 프로토콜을 상속하여 그 프로토콜의 요구사항을 모두 포함할 수 있습니다. 프로토콜 간 상속은 다음과 같이 정의할 수 있습니다.

protocol A {
    func methodA()
}

protocol B: A {
    func methodB()
}

위 예제에서 B 프로토콜은 A 프로토콜을 상속하고 있습니다. 따라서 B 프로토콜은 methodA()methodB() 모두를 가져야 합니다.

프로토콜 확장

프로토콜도 클래스와 마찬가지로 확장하여 기능을 추가할 수 있습니다. 프로토콜 확장을 통해 프로토콜의 기본 구현을 제공하거나 새로운 기능을 추가할 수 있습니다.

extension A {
    func methodA() {
        print("Default implementation of methodA")
    }
}

위 예제에서 A 프로토콜에 기본 구현을 제공하는 것을 볼 수 있습니다. 이를 통해 A 프로토콜을 채택한 타입들은 methodA()를 직접 구현하지 않아도 기본 구현을 사용할 수 있습니다.

프로토콜 간 상속과 확장을 통해 Swift에서 더 강력한 프로토콜 추상화를 구현할 수 있습니다. 이를 통해 유연하고 확장 가능한 코드를 작성할 수 있으며, 코드의 유지보수성과 재사용성을 높일 수 있습니다.

참고 자료

위 내용은 프로토콜 간 상속과 확장에 대한 간략한 소개이며, 더 자세한 내용은 공식 문서와 WWDC 영상을 참고하시기 바랍니다.