인프런 커뮤니티 질문&답변
델리게이트 패턴 관련 질문
작성
·
15
0
영상 초반부(00:30 - 04:00)에 대한 의문점이 생겨 질문 남깁니다!
텍스트필드의 경우 VC(뷰컨트롤러)와 '완전히 분리된 객체'이며 유저와 직접적인 커뮤니케이션을 하고, 버튼의 경우 VC와 '직접적인 커뮤니케이션을 한다' 라고 하셨는데, 이 부분에서 살짝 의문이 듭니다.
텍스트필드와 버튼의 차이가 동작의 형태나 이벤트 흐름의 복잡성에서 발생한다는 점에는 공감하지만,
버튼 역시 UITextField와 마찬가지로 VC와는 별도의 객체로 존재하고, 이벤트 발생 시 target–action 메커니즘을 통해 결과를 VC로 전달하는 구조로 이해하고 있습니다.
이런 관점에서 봤을 때, “버튼은 VC와 직접 커뮤니케이션한다”는 표현이
개념적으로 어떤 의미를 가지는지 조금 더 설명을 부탁드려도 될까요?
답변 2
1
아 네 안녕하세요 taehun0933 님!
일단 (스토리보드를 이용하는 것을) 처음 공부하시는 입장에서, 조금 쉽게 이해하시라고 그런 표현을 사용했었던 것 같은데, 말씀하신 대로 정확하게 이해하고 계십니다. :)
당연히 UIKit 프레임워크에서UIButton, UITextField 등 모든 객체는 따로 존재하게 됩니다. 다만, 제가 강의 내용에서 "직접적인 커뮤니케이션"이라고 표현한 것은 단지 UITextFieldDelegate프로토콜을 채택하고, textField.delegate = self와 같은 설정을 굳이 해주지 않아도 UIButton(버튼)의 액션을 (스토리보드를 통해) 뷰컨트롤러의 직접적인 함수와 연결해서(@IBAction함수만 구현해서) 사용할 수 있다 정도의 의미라고만 생각해주시면 될 것 같습니다.
(스토리보드 내부에 숨어있는 메커니즘을 통해 사용 편의성을 높인거죠.)
물론, 뒤에가서 (스토리보드가 아닌) 코드로 구현하면서 직접적으로 target-action을 어떻게 연결하는 지를 보여드리겠지만, (어쨌든 이런 스토리보드 내부적으로 숨어있는 target-action 메커니즘을 아직 모른다고 하더라도) (UITextField와는 다르게) 쉽게 버튼을 사용할 수있는 측면에서 말씀드리고 있는 것뿐이니, 특별한 이론적인 내용이 있어서 그렇게 표현한 것은 아니니 오해는 말아주세요..ㅎㅎ
(말씀하신대로.. 아주 정확하게 따져보면, 당연히 모든 객체는 별도로 존재하고 텍스트필드는 델리게이트 패턴을 통해, 버튼은 target-action메커니즘을 통해 동작을 전달합니다. 다만, 스토리보드 편의성 측면에서 target-action의 내부 메커니즘을 몰라도 쉽게 사용할 수 있게 만들어 놓은 것 뿐입니다.)
감사합니다. :)
0
안녕하세요, 인프런 AI 인턴입니다. taehun0933님!
델리게이트 패턴과 관련해 설명을 드리겠습니다.
텍스트 필드와 버튼은 둘 다 UIView의 서브클래스로, 사용자의 인터페이스 상에서 독립적인 객체로 존재합니다. 하지만 이들의 이벤트 처리 방식에 약간의 차이가 있기 때문에 혼란이 생길 수 있습니다.
텍스트 필드의 경우, UITextFieldDelegate 프로토콜을 채택하여 뷰 컨트롤러로 이벤트를 위임합니다. 이 위임 방식은 텍스트 필드가 직접적인 책임을 갖지 않고, 대신 이벤트 처리를 다른 객체(주로 뷰 컨트롤러)에게 맡기는 구조입니다. 이러한 위임(delegate) 방식을 통해서 유저 인터페이스와의 상호작용을 관리합니다.
반면에, 버튼은 보통 target-action 패턴을 사용하여 이벤트 발생 시 바로 특정 메서드를 호출합니다. 이 패턴에서는 버튼이 직접적으로 목표(target) 객체(보통 뷰 컨트롤러)에 액션을 보내 이벤트를 처리합니다. 이러한 방식 때문에 “버튼은 VC와 직접 커뮤니케이션한다”라는 표현을 사용하게 됩니다.
즉, 차이점은 델리게이트 패턴은 이벤트를 위임하여 처리하는 반면, target-action 패턴은 이벤트를 직접 처리하는 구조로 구성되어 있습니다. 이 개념적 차이가 두 UI 컴포넌트 간의 이벤트 처리 방식에 대한 관점을 형성합니다.
유사한 질문 예시는 아래 링크에서 확인하실 수 있습니다:
- 활용 - 2) 텍스트필드 / 델리게이트 패턴 개념 질문
- 활용-2 앱 / 코드설정하기 (활용 앱 14강) 델리게이트 부분에 궁금한게 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





