
근본으로 돌아가자(5) - 프로토콜
·
면접준비
최근 현업 개발자분과 커피챗을 하면서 "기본기를 더 본다"는 말씀을 들었습니다. 과연 제가 기본기가 충분한지 의문이 들어서 프로토콜부터 다시 파헤쳐보기로 했어요.프로토콜을 그냥 "요구사항이 들어있는 청사진" 정도로만 알고 있었는데,왜 프로토콜이라는 개념이 나왔는지부터 살펴보니 더 깊은 이해가 되더라고요.다중 상속의 딜레마Swift가 왜 다중 상속을 지원하지 않는지 궁금했습니다. 바로 다이아몬드 문제 때문이에요.Objective-C는 동적 디스패치와 런타임에 의존하는 객체지향 언어로, 다중 상속 X. 코드 재사용성과 확장성에 제약이 존재.왜 그러면 다중 상속이 안될까? 다이아몬드 문제: A클래스를 B,C가 상속받고 D가 B,C를 상속받아 A 메서드 호출할때 어떤 경로인지 모호.class A { /* .....