닷넷 5에 들어올 예정인 멤버 수준 트리밍(member-level trimming)

닷넷 코어 3에서도 어셈블리 수준 트리밍으로 자체 포함 애플리케이션(self-contained applications)의 용량을 줄일 수 있었는데요. 닷넷 5에서는 한 단계 더 과감하게 멤버 수준 트리밍을 제공하여, 이전보다도 더 크게 용량을 줄일 수 있을 것 같습니다. 애플리케이션에서 한 번도 호출되지 않는 메서드 따위를 링크 시간에 버리는 것입니다.

그러면 리플렉션을 통해 실행 시점에 동적으로 호출되는 멤버도 날아가버리면 어떡하냐는 의문이 들 수도 있습니다. 예를 들어 사용자에게 호출할 메서드 이름을 받아서 리플렉션으로 해당 메서드를 찾아 호출하는 프로그램을 짠다면, 마이크로소프트는 커녕 마이크로소프트 할아버지가 와도 어떤 메서드가 호출되고 어떤 메서드가 호출되지 않을지 빌드 시점에는 알 수 없는 노릇이니까요. 이런 문제를 우회하기 위해, 실행 시점에 동적으로 호출될 수도 있는 멤버들을 프로그래머가 미리 표시해 둘 수 있는 [DynamicallyAccessedMembers][DynamicDependency] 같은 특성(attributes)도 함께 들어오는 것 같습니다.

좋아요 2