일단 스위프트에는 static dispatch와 dynamic dispatch가 있다. static dispatch 위 처럼 drawAPoint 메소드가 Point안의 struct의 draw 메소드인 경우, 호출 타이밍이 너무 명확한 경우 컴파일러는 static하게 디스패치 해버린다. 이 경우 drawPoint 호출시 이중으로 스택에 불필요하게 세팅되었을 오버헤드가 사라진다. dynamic dispatch 스위프트에서 다이나믹 메소드 디스패치가 사용되는 경우는 위처럼 다형성이 사용되는 경우일 수 있다. (다형성 객체의 메소드라고 무조건 다이나믹 디스패치는 아님; 호출 시점이 명확하면 컴파일러가 알아서 스태틱 디스패치로 하기도한다 함) 어쨌든, 위 경우를 보면 drawables가 다형성에 의한 배열이라 d..