패스잇
모바일 개발 · 기초

iOS 앱 개발에서 `Delegate` 패턴은 어떤 목적으로 사용되며, 어떻게 구현하는지 기본적인 원리를 설명해주세요.

힌트 · `Delegate` 패턴은 객체 간의 약한 결합을 통해 특정 이벤트를 다른 객체에게 위임하여 처리하도록 하는 디자인 패턴입니다. 프로토콜을 활용합니다.

객체 간 통신느슨한 결합프로토콜메서드 호출위임

모범답안

Delegate 패턴은 iOS 앱 개발에서 객체 간의 통신을 위해 사용되는 디자인 패턴입니다. 핵심은 한 객체가 특정 이벤트나 작업을 다른 객체에게 "위임"하는 것입니다.

구현 원리는 다음과 같습니다. 먼저, 프로토콜을 정의합니다. 이 프로토콜은 위임받는 객체(delegate)가 구현해야 할 메서드들을 선언합니다. 위임하는 객체는 이 프로토콜 타입의 프로퍼티를 가지고, 필요할 때 delegate 프로퍼티에 할당된 객체의 메서드를 호출합니다.

이렇게 하면 위임하는 객체는 위임받는 객체의 구체적인 타입에 의존하지 않고, 프로토콜에 정의된 메서드만 호출하면 되므로 느슨한 결합을 유지할 수 있습니다. 예를 들어, UITableView는 UITableViewDelegate 프로토콜을 통해 테이블 뷰의 동작을 컨트롤러에게 위임합니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 iOS / Swift 면접 질문

← iOS / Swift 면접 질문 전체 보기