이렇게 생긴 버튼들의 집합을 구현하기 위해 ButtonsView라는 클래스를 만들었습니다.그리고 ViewContoller와 Delegate를 통해 데이터를 주고받도록 했습니다.사실 ButtonsView 클래스에서 onTapLike() 와 같은 함수를 두어서 buttonsView.onTapLike() 이런식으로 직접 조작을 할 수도 있었을 것입니다.하지만, 왜 Delegate Pattern을 "굳이" 썼는지 정리해보고자 합니다. 1. 구조VC는 Delegate를 구현하는 방식으로 의존하고, ButtonsView는 Delegate를 선언하고 사용하는 방식으로 의존합니다.ButtonsView 입장에서는 함수들을 "직접 구현"하는 것이 아니라, "위임"하게 됩니다. 그래서 명칭이 Delegate Pattern입..