[Swift] 25. 델리게이션(delegation), 델리게이트 패턴 공부
2020. 12. 3. 19:23
iOS/Swift
델리게이션은 사전상 의미로 대표자, 위임하다, 대리자 라고 해석할 수 있다. 클래스나 구조체가 따로 혹은 일부 수행해야 하는 일을 다른 타입의 인스턴스에게 위임하는 디자인 패턴이다. 특정 액션에 반응하거나 외부 소스의 기본 타입을 알 필요 없이 외부 소스로부터 데이터를 가져오는데 사용될 수 있다. 간단하게 말해서, A 인스턴스가 하나의 일에만 충실하고 싶을 때, 그 밖의 일들을 B 인스턴스가 대신해서 처리해준다는 것이다. 스위스트에서는 이런 델리게이션의 개념이 적용된 것이 프로토콜이다. 프로토콜은 이전에 공부했듯이 특정 역할을 수행하기 위한 프로퍼티, 메서드, 이니셜라이저 등의 청사진을 정의한다고 알고 있다. 델리게이트는 대신 처리해줄 객체와 처리하라고 시키는 객체로 구분해서 생각하면 된다. 그래서 델리..
[Swift] 24. 프로토콜 (protocol)
2020. 12. 3. 17:29
iOS/Swift
프로토콜 (Protocol) 프로토콜은 특정 역할을 수행하기 위한 메서드, 프로퍼티, 기타 요구사항 등의 청사진을 정의한다. 구조체, 클래스, 열거형은 프로토콜을 채택 해서 특정 기능을 수행하기 위한 프고토콜의 요구사항을 실제로 구현할 수 있다. 어떤 프로토콜의 요구사항을 모두 따르는 타입은 그 프로토콜을 준수한다 라고 표현한다. 타입에서 프로토콜의 요구사항을 충족시키려면 프로토콜이 제시하는 청사진의 기능을 모두 구현해야 한다. 즉, 프로토콜은 기능을 정의하고 제시할 뿐, 스스로 기능을 구현하지 않는다. 프로토콜 정의 프로토콜은 다음과 같이 protocol 키워드를 사용해서 정의할 수 있다. protocol 프로토콜 이름 { /* 프로토콜 정의 */ } 그리고 다음과 같이 프로퍼티, 메서드, 이니셜라이저..