어떤 메서드를 호출할 것인지를 결정하여, 그것을 실행하는 메커니즘
Swift에선 Static Dispatch와 Dynamic Dispatch 두 가지 방식이 있음.
호출할 함수를 런타임 시 결정할거냐, 아니면 컴파일타임 시 결정을 할거냐 차이가 있습니다
근데.. 런타임이랑 컴파일타임의 차이점이 뭐죵..?
: 컴파일과정을 마친 프로그램은 사용자에 의해 실행되어 지며, 이러한 응용프로그램이 동작되어지는 때
⇒ 쉽게 말해서 빌드 버튼을 누른 뒤
: 코드를 작성하고 Compile이라는 과정을 통해 기계어 코드로 변환되어 실행 가능한 프로그램이 되며, 이러한 편집 과정을 컴파일타임
⇒ 우리가 코드를 막 적고 있는 그 시기 (잘못된 문법을 작성할때 생기는 오류들도 컴파일에러라고 부름~)
뭔가 이름에서 유추해볼 수 있을 거 같다
Static → 정적인? → 그럼 빌드 되고는 안 바뀌는건가? ⇒ 컴파일 타임에 결정!
Dynamic → 동적인? → 그럼 빌드 되고도 바뀌겠지? ⇒ 런타임에 결정!
Static Dispatch가 Dynamic Dispatch보다 더 좋다