Delegate라는 단어를 처음 만나면 되게 생소하다. Delegate는 대신해서 움직여주는 역할이다. protocol을 이용하여 다른 클래스에게 권한을 위임할 수 있다. (protocol은 내부에 method, property를 선언하고 protocol을 상속받는 곳에서 protocol stubs를 사용할 수 있다.) 아무튼 delegate는 구성해 놓은 작업들을 대신해 주는 역할이다. 한 줄로 끝나는 delegate지만 한 번에 이해하기 어렵다.. 쉽게 이해하기 위해서 예를 들어 살펴보자 내가 인기 있는 카페 여러 매장을 가지고 있는 사장이라고 가정해 보자. (상상만으로 즐겁네) 모든 카페에서 내가 직접 커피를 내리고 계산을 하는 것은 불가능하다. 따라서 아르바이트생이나 매니저들(대리자)을 구한 뒤 ..