[Unity] IL2CPP 정리

2024. 3. 26. 18:13Unity

728x90
반응형

IL2CPP는 Unity의 스크립트 언어인 C#으로 작성된 코드를 C++로 변환한 후 해당 코드를 네이티브 플랫폼의 기계어로 컴파일하는 Unity의 스크립팅 런타임이다.

여기에는 일반적으로 .NET 언어의 코드를 실행하기 위해 사용되는 Common Language Runtime (CLR) 또는 Mono의 가상 머신을 사용하는 대신에 C++ 컴파일러 및 최적화 도구를 사용한다.

 

장점

  1. 성능 향상: C++로의 변환과 네이티브 코드 컴파일은 실행 시간에 일어나는 JIT(Just-In-Time) 컴파일과 관련된 오버헤드를 줄여준다. 이로 인해 더 나은 성능을 제공할 수 있다.
  2. 플랫폼 호환성: IL2CPP는 여러 플랫폼에서 동작하며, 네이티브 코드로 컴파일되므로 플랫폼에 종속되지 않고 동작할 수 있다.
  3. 보안 강화: IL2CPP로 변환된 코드는 C++ 코드로 컴파일되므로 일반적인 .NET 어셈블리와는 다르게 Reverse Engineering을 어렵게 만들 수 있다.
  4. 메모리 최적화: IL2CPP는 메모리 사용을 최적화하는 데 도움이 될 수 있다. 특히, 힙 메모리 할당을 줄이고 가비지 컬렉션을 최소화할 수 있다.

 

단점

  1. 빌드 시간 증가: IL2CPP를 사용하면 빌드 시간이 증가할 수 있다. C++로의 변환과 네이티브 코드 컴파일은 추가적인 처리 시간을 필요로 하기 때문.
  2. 디버깅 어려움: 네이티브 코드로 컴파일된 IL2CPP 코드를 디버깅하기가 일반적으로 .NET 어셈블리보다 어렵다. 이는 오류를 추적하고 수정하는 데 더 많은 시간이 소요될 수 있음을 의미한다.
  3. 크로스 플랫폼 호환성 문제: 특정 플랫폼에서는 IL2CPP가 모든 기능을 지원하지 않을 수 있다. 때로는 특정 플랫폼에 대한 호환성 문제가 발생할 수 있다.
728x90
반응형