Swift의 프로토콜(Protocol)은 특정 메서드, 프로퍼티, 그리고 다른 특정 요구 사항들을 정의한 청사진 혹은 규약입니다. 이는 클래스, 구조체, 열거형이 이러한 프로토콜을 채택(Adopt)하고 해당 프로토콜의 요구 사항들을 구현하게끔 합니다.
프로토콜의 사용 사례:
프로토콜을 채택한 모든 타입이 특정 함수를 구현하도록 강제할 수 있습니다. 이는 특히 디자인 패턴을 적용할 때 유용합니다.
프로토콜을 사용하여 클래스, 구조체, 열거형이 반드시 가지고 있어야 하는 프로퍼티를 지정할 수 있습니다.
함수나 메서드에서 특정 프로토콜을 채택한 타입을 인수로 받아들이거나 반환하도록 제한할 수 있습니다. 이는 특정한 동작을 보장하는 코드를 작성할 수 있도록 도와줍니다.
Swift에서 프로토콜 적용하기 예시 :
// 프로토콜 정의
protocol Animal {
var name: String { get set }
func makeSound() -> String
}
// 프로토콜 채택 및 구현
class Dog: Animal {
var name: String
init(name: String) {
self.name = name
}
func makeSound() -> String {
return "Bark!"
}
}
let myDog = Dog(name: "Fido")
print(myDog.makeSound()) // 출력: Bark!
위의 코드에서 Animal이라는 프로토콜을 정의하였고, 이 프로토콜은 name이라는 문자열 프로퍼티와 makeSound()라는 메서드를 요구합니다. 그리고 Dog이라는 클래스가 이 프로토콜을 채택하여 요구사항을 모두 충족시키는 형태로 구현하였습니다.
gettable
, settable
을 명시합니다.var
로 선언해야 합니다.{}
(구현 코드)는 적지 않습니다.