Swift

Swift) Protocol 프로토콜

나태한개발 2024. 6. 1. 21:40

xcode로 작업을 하다보면 자동으로 insert 되는 요소들이 생긴다.

예를 들어 UITableViewDelegate 가 있다.

UITableViewDelegate의 타입을 보면 protocol 이라고 되어있다.

 

자주 등장하는 만큼 정리를 해두는것이 좋다고 생각하여

오늘 간단하게 정리해 보겠다.

 

프로토콜이란?

프로토콜 (protocol) 은 메서드, 프로퍼티, 그리고 특정 작업이나 기능의 부분이 적합한 다른 요구사항의 청사진을 정의합니다. 프로토콜은 요구사항의 구현을 제공하기 위해 클래스, 구조체, 또는 열거형에 의해 채택될 수 있습니다. 

이라고 공식문서에 나와있다.

여기서 저 '구조체, 클래스, 열거형에 의해 채택된다.' 라는 말이 이해가 안돼서 여기저기 찾아봤다.

결국은 해당프로토콜을 따르겠다고 명시 하는것을 의미하는거 같다.

 

필수 구현해야되는 요소를 적어두고 그것을 구현하지 않을시 xcode 자체에서 구현해야한다고 알려주는거 같다.

 

말로 설명해봤자 예시보는게 제일 빠르다.

CalcultorFunc 라는 프로토콜과 Calculator 라는 클래스를 만들어준다.

그다음 Calculator 클래스에 CalculatorFunc 프로토콜을 따르겠다고 명시를 해준다.

 

그러면 이렇게 오류가 나는데

CalculatorFunc 프로토콜에 명시해 놓은 메서드들을 구현하지 않아서 오류가 난다.

 

프로토콜에 명시된 메서드들을 구현해주면 오류가 사라진다.

 

프로토콜은 코드의 일관성을 유지하고,

서로 다른 타입 간에 공통된 기능을 정의하여 재사용성과 확장성을 높이기 위해 사용한다고 한다.

이러한것은 협업을 하고 유지보수를 용이하게 하기 위해 사용되는거 같다.

추후 프로젝트를 진행하며 사용해 봐야겠다.

 

오늘 설명한것이 프로토콜의 전부는 아니다.

추후 알게된 내용과 공부하게되는 내용은 추가적으로 적어야 될거 같다.