Protocol이 도대체 뭐야?

선민재·2022년 7월 2일
5
post-thumbnail

IOS 로드맵을 살펴보다 보면 POP(Protocol Oriented Programming)가 나온다.
하지만 POP를 알려면 먼저 Protocol을 알아야한다.
그래서 이번에는 Protocol에 대해 알아보자!

1. Protocol이 뭐야?

POP를 공부하기 앞서 반드시 알아야하는 Protocol에 대해 알아보자.
공식문서에는
'프로토콜은 특정작업에 적합한 메서드, 속성 및 기타요구사항의 청사진을 의미한다.'

2. 그럼 어떻게 선언하는데?

protocol SomeProtocol {
    // protocol definition goes here
}

프로토콜은 class, sturct, enum과 비슷하게 선언할 수 있다.

그럼 채택할 때는?

struct SomeStructure: FirstProtocol, AnotherProtocol {
    // structure definition goes here
}

프로토콜을 채택하고 싶을때는 타입의 이름뒤에 프로토콜의 이름을 쓰면된다.
여러 프로토콜을 나열할 수 있으며 쉼표로 구분한다.

클래스에 슈퍼 클래스가 있으면!

class SomeClass: SomeSuperclass, FirstProtocol, AnotherProtocol {
    // class definition goes here
}

간단하게 슈퍼클래스의 이름을 나열하고 그 뒤에 프로토콜을 채택하면된다.

3. Protocol에서 Property 정의

protocol에서 property를 정의하려면 var로 해야한다(let 불가능)
protocol에선 property가 저장프로퍼티인지 연산프로퍼티인지 명시하지 않습니다.
하지만 프러퍼티의 이름과 타입 그리고 gettable한지 settable한지는 명시한다.

4. 메소드 요구사항

Protocol에서는 인스턴스 메소드와 타입 메소드를 명시할 수 있지만!
Protocol안에서 사용하지 못한다.

5. 마무리

오늘은 이렇게 POP를 하기 위한 첫 걸음으로 Protocol에 대해 알아봤다!
다음 글은 POP에 대해 작성할게요!
긴 글 읽어주셔서 감사합니다~! 👍

profile
열심히 하자

2개의 댓글

comment-user-thumbnail
2022년 7월 2일

Print("Wow")

1개의 답글