[C# / Unity] C#과 Unity에서의 GC(Garbage Collection)
C#에서의 GC기본적으로 C#은 .NET Framework 기반의 언어이기 때문에 .NET의 런타임 환경인 CLR(Common Language Runtime)이 GC를 담당하게 된다.(.NET과 CLR에 대한 정리) 2024.11.06 - [언어(C, C++, C#)] - [C#] .NET, 컴파일 과정, CLS, CTS, CIL, CLI, CLR, JIT 컴파일 이 때, GC는 heap영역의 메모리를 관리하게 된다.두 가지 로직을 베이스로 사용하는데 첫 번째는 세대별 가비지 컬렉션이고, 두 번째는 mark-and-sweep과 compaction이라는 정렬 과정이다.추가적으로 할당 받을 메모리의 크기에 따라 저장될 메모리 공간을 SOH, LOH로 나누게 된다.세대별 가비지 컬렉션GC(Garbage Col..
2025. 4. 11.
[C#] 리플렉션(Reflection)과 속성(Attribute)
리플렉션(Reflection)리플렉션은 프로그램 실행 중 메타데이터를 검사하고 객체의 정보(형식, 이름, 프로퍼티 목록, 메소드 목록, 필드, 이벤트 목록 등)를 탐색, 조작하는 기능을 제공하는 기법이다. 이를 통해 코드가 실행 중에 클래스, 메서드, 프로퍼티, 필드 등의 정보를 조회하고 다룰 수 있으며, 주로 System.Reflection 네임 스페이스에 정의된 클래스를 사용한다.장단점장점유연성 및 확장성 : 코드가 컴파일될 때 타입을 알 필요 없이 런타임에 타입 정보를 가져와 동적으로 조작할 수 있다. 이로 인해 애플리케이션이 런타임에 새로운 타입을 로두하고 사용할 수 있다.동적 로딩 및 실행 : 리플렉션은 Assembly.Load, Type.GetType 등의 기능을 통해 외부 라이브러리나 플러그..
2024. 11. 14.