Swift Protocol

DG
2 min readJul 6, 2024

--

Swift에서 프로토콜(Protocol)은 특정 역할이나 기능을 수행하기 위해 필요한 메서드, 프로퍼티, 및 기타 요구 사항을 정의하는 청사진입니다.

사용법

정의

protocol SomeProtocol {
var mustBeSettable: Int { get set } // 읽기 전용 또는 읽기/쓰기를 지정할 수 있습니다
var doesNotNeedToBeSettable: Int { get }
func someMethod() -> String
init(someParameter: Int)
}

채택

class SomeClass: SomeProtocol {
var mustBeSettable: Int
var doesNotNeedToBeSettable: Int

init(someParameter: Int) {
self.mustBeSettable = someParameter
self.doesNotNeedToBeSettable = 0
}

func someMethod() -> String {
return "Hello, World!"
}
}

프로토콜 확장(Protocol Extension)을 사용하는 이유

프로토콜 확장은 프로토콜의 기본 구현을 제공할 수 있게 합니다. 이는 프로토콜을 채택한 타입들이 기본 구현을 재정의하거나 추가적인 구현 없이도 프로토콜을 채택할 수 있게 합니다.

protocol SomeProtocol {
func someMethod() -> String
}

extension SomeProtocol {
func someMethod() -> String {
return "Default Implementation"
}
}

struct SomeStruct: SomeProtocol {
// 별도의 구현이 없어도 Default Implementation 사용 가능
}

장점

  • 코드 재사용성: 프로토콜 확장을 통해 기본 구현을 제공하여 코드의 재사용성을 높일 수 있습니다.
  • 다형성: 프로토콜을 통해 다형성을 쉽게 구현할 수 있으며, 이는 코드의 확장성과 모듈화를 촉진합니다.
  • 보다 모듈화된 코드의 작성을 할 수 있게 해줍니다.

--

--

DG

한국의 iOS 개발자이다. 강아지와 운동을 좋아함. github: https://github.com/donggyushin