인프런 커뮤니티 질문&답변

1riberty님의 프로필 이미지
1riberty

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

UI 자동화 #1

리플렉션을 써야하는 이ㅠ

작성

·

186

0

리플렉션을 써야하는 이유를 잘 모르겠습니다.
리플렉션은 가능하면 지양하는게 좋다고 알고 있습니다. 런타임일반화하는 특성상 성능이 떨어질 수 밖에 없다고 알고 있습니다.

그래서 아래과 같이 작성해 보았는데, 이건 어떠신가요?
가독성 때문에 이렇게 작성하신것 같다는 생각도 들긴하는데 아직 충분히 의문이 해소되질 않네요

image.png


답변 2

2

Rookiss님의 프로필 이미지
Rookiss
지식공유자

코드 실행에서 성능의 0.0000001% 를 차지하는 코드를
100배 빠르거나 느리거나 하는 것은 전체적으로 아무런 도움도 되지 않습니다.
매 프레임마다 느린 코드를 호출하는 것이 아닌,
단발성으로 어쩌다 한 번 일어나는 것은 전혀 상관이 없습니다.
제가 오랜 기간 경험해본 결과, 학원에서도 특히 실력이 떨어지는 학생들이 이런 사소한 부분에 연연합니다.
(예를 들면 성능 이유로 a >= 1 보다 a > 0 같은 코드를 써야 하다며 열변을 토하는 친구가 기억나네요)

그리고 typeof를 사용하는 순간, Reflection을 간접적으로 사용하는 것입니다.
그 외 코드 수정은 자유롭게 하시면 되고 이런 부분은 오히려 아주 바람직합니다.

0

1riberty님의 프로필 이미지
1riberty
질문자

답변 감사합니다.
FixedUpdate, Update, LateUpdate 등에 들어가는 로직은 신경을 써야하지만, Start Awake Enable Disable 같은 라이프사이클(호출이 많지 않은)의 로직은 성능보다는 가독성에 초점을 맞추라고 이해하면 될까요?

Rookiss님의 프로필 이미지
Rookiss
지식공유자

네 그렇습니다. 뭐 그렇다고 정말 5중 for문에 1초 걸리는 그런 폭탄은 곤란하겠지만요.

1riberty님의 프로필 이미지
1riberty

작성한 질문수

질문하기