Sign In
한결
Status
Empty
Assignee
Empty
최적화 수준
Debug
최적화 수준은 낮지만 개발자 친화적인 모드로 관리됨
Incremental 방식 - Swift에서는 각각의 파일 개별적으로 컴파일 진행 (파일 단위로 컴파일을 한 다음 파일간의 관계성을 도출)
Release
최적화 수준이 높음
Whole Module Optimization (전체 모듈 최적화) - 전체 파일을 하나의 파일로 관리하여 파일간의 관계성을 만들어 실행하는 컴파일링 방식
💡
컴파일 최적화의 핵심은?
:
서로의 관계가 연결될 필요가 없다면, 최대한 파일간의 연결성을 차단시키는 것
→ final 키워드 같이, 클래스의 추후 상속을 단절시킬 수 있는 키워드를 잘 활용하자!
→ private 키워드 같이, 외부에서 바로 멤버나 메서드를 건드리지 못하도록 제어하자!
→ *Dynamic Dispatch 상태인 메서드를 Static Dispatch 형태로 설정해보자!
*Method Dispatch: 함수를 어떻게 실행시킬지에 대한 명세
컴파일 단계에서 함수가 확정되는지 vs 런타임 단계에서 함수가 실행되는지에 대한 여부
Dynamic Dispatch - 런타임 단계에서 함수 확정 - class (오버라이딩을 하거나 상속을 시킬 수 있어서)
Static Dispatch - 컴파일 단계에서 함수 확정 - struct, enum 내부에서 정의한 메서드
컴파일 단계에서 어떤 시점에 어떤 함수가 어떻게 실행될 지 정해져서 직접 호출하는 메서드
👍