[swift] Swift 구조체에서 사용되는 Protocol에 대해 설명해주세요.
Swift에서 Protocol은 인터페이스 정의에 사용되는 강력한 도구입니다. Protocol을 이용하여 메서드, 속성, 기타 요구사항들을 정의할 수 있으며, 이를 구조체, 클래스, 열거형에서 채택(adopt)하여 구현할 수 있습니다.
Protocol 정의
다음은 Protocol을 사용하여 간단한 예시를 작성한 것입니다.
protocol Vehicle {
var isRunning: Bool { get set }
func start()
func stop()
}
위 예시에서 Vehicle
Protocol은 isRunning
속성과 start()
, stop()
메서드를 요구합니다. Protocol을 정의할 때는 구현부가 포함되지 않으며, 이것을 Protocol 채택한 유형이 구현해야 합니다.
Protocol 채택
다음은 Protocol을 채택하여 구현하는 방법에 대한 예시입니다.
struct Car: Vehicle {
var isRunning: Bool = false
func start() {
if !isRunning {
isRunning = true
print("Car started")
}
}
func stop() {
if isRunning {
isRunning = false
print("Car stopped")
}
}
}
위 예시에서 Car
구조체는 Vehicle
Protocol을 채택하여 해당 Protocol에 정의된 요구사항을 모두 구현하였습니다.
장점
Protocol을 이용하여 유형 간 일관성 있는 인터페이스를 정의할 수 있습니다. 이를 통해 코드의 추상화와 모듈화를 촉진하고 재사용성을 높일 수 있습니다.
결론
Swift의 Protocol은 객체의 특정 종류에 대한 일관성 있는 동작을 정의하는 데 매우 유용한 도구입니다. Protocol을 이용하여 코드를 더 간결하고 확장 가능하게 구현할 수 있습니다.