| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- dfs
- raycast
- 티스토리챌린지
- Unity
- GetComponent
- 드롭다운
- 너비탐색
- 유니티
- articulation body
- sparkmain(clone)
- 행동트리
- 오블완
- readonly
- 디지털트윈
- 크루스칼
- 유니티 sparkmain(clone)
- 트리구조
- list clear
- 습관형성 #직장인자기계발 #오공완
- Simulation
- unity korea
- 최단거리 알고리즘
- removeAll
- 깊이탐색
- 최소신장트리 mst
- navisworks api
- dropdown
- C#
- sparkmain(clone) 무한생성
- unity sparkmain(clone)
- Today
- Total
낑깡의 게임 프로그래밍 도전기
29일차 : '한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지' 강의 후기 본문

오늘도 점심먹고 강의 한편~!

졸렸지만 꾹 참고 들었다.

시작 부분을 캡쳐해놓고 저장을 안해서 종료밖에 없다. 하지만 오늘은 한클립 들었으니 뭐..
리플렉션을 강의 시간내에 다 담기 힘드므로 따로 좀더 찾아보았다.
C#에서 리플렉션은 게임 클라이언트 개발에서도 은근 자주 쓰이는데, 특히 런타임에 타입을 모를 때 동적으로 인스턴스를 생성하거나 내부 멤버를 호출해야 할 때 쓴다고한다. 예를 들어 유니티 에디터 확장할 때, 프로퍼티 창 자동화하거나 시리얼라이즈 안 된 필드까지 에디팅하려 할 때 리플렉션 써주면 딱이다.
Type 객체를 얻는 방식은 대표적으로 typeof(SomeClass)나 someObject.GetType()이 있는데, GetType()은 런타임 타입 기준이고 typeof는 정적으로 타입 정보를 가져온다. 타입 비교할 때는 GetType()으로 가져온 Type끼리 ==로 비교하거나 is 연산자 쓰면 되고, 더 확장된 정보가 필요하면 TypeInfo로 캐스팅해서 접근하면 된다. 근데 여기서 중요한 건 리플렉션은 성능이 구리다는 점. 내부적으로 문자열 기반으로 매서드 찾고 invoke 하기 때문에 일반 메서드 호출보다 훨씬 느리다. 그래서 동일 멤버 반복 호출이 필요하면 Delegate를 미리 만들어놓고 캐싱해서 쓰는 게 좋다.
CreateDelegate로 델리게이트 만들 수 있고 이건 invoke보다 훨씬 빠름. 덤으로 private 필드나 메서드도 BindingFlags.NonPublic만 주면 그냥 접근되고 호출도 됨. 약간 반칙 느낌이긴 한데 유용하다. 타입 인스턴스를 만들고 싶으면 Activator.CreateInstance() 쓰면 되는데, 생성자에 인자가 있으면 오버로드 맞춰서 args 배열로 넘기면 된다. 제너릭 타입 만들 땐 MakeGenericType()으로 닫힌 타입 만든 다음에 인스턴스화 하면 되고. 이벤트도 마찬가지로 EventInfo.AddEventHandler()나 RemoveEventHandler() 써서 런타임에 동적으로 핸들러 연결하거나 해제할 수 있다.
마지막으로 진짜 중요한 팁 하나, 리플렉션으로 모든 타입 다 핸들링하면 메모리나 퍼포먼스 문제 생길 수 있으니까, 가능하면 interface 기반 설계하고 리플렉션은 fallback 용도로만 쓰는 게 이상적이다. 이거랑 저거랑 다 해봤는데, 결국은 “리플렉션은 필요할 땐 진짜 요긴하지만 남용하면 독 된다”가 결론이다.

디지털 필기와 함께 인증샷 한컷~!

오늘부로 44클립을 들었다.
내일도 파이팅!
'인강 후기' 카테고리의 다른 글
| 31일차 : '한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지' 강의 후기 (4) | 2025.07.31 |
|---|---|
| 30일차 : '한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지' 강의 후기 (4) | 2025.07.30 |
| 28일차 : '한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지' 강의 후기 (4) | 2025.07.28 |
| 27일차 : '한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지' 강의 후기 (5) | 2025.07.27 |
| 26일차 : '한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지' 강의 후기 (3) | 2025.07.26 |