
유니티의 Mono와 IL2CPP 스크립팅 백엔드의 차이점에 대해 설명하세요.
Mono와 IL2CPP는 유니티에서 C# 코드를 변환하는 두 가지 방식입니다.
Mono는 JIT 컴파일 방식으로 런타임 중 컴파일 하는 방식이고, IL2CPP는 AOT 컴파일 방식으로 빌드 시점에 컴파일합니다.
Mono는 빠른 빌드 시간과 디버깅의 편의성을 제공하지만, IL2CPP는 더 나은 런타임 성능과 플랫폼 호환성을 제공하기 때문에 개발 단계에서는 Mono를, 배포 단계에서는 IL2CPP를 사용하는 것이 일반적입니다.
C# 스크립트 → IL(Intermediate Language) 코드 → 런타임에 JIT(Just-In-Time) 컴파일 → 실행
=> 빠른 빌드와 테스트 + 디버깅 = 개발 단계에서 사용
C# 스크립트 → IL 코드 → C++ 코드 변환 → 네이티브 컴파일 → 실행
=> 플랫폼 호환성 + 최적화된 성능 = 배포 단계에서 사용
| 구분 | Mono | IL2CPP |
|---|---|---|
| 런타임 성능 | 보통 | 우수 |
| 보안성 | 보통 | 우수 |
| 메모리 사용 | 많음 | 적음 |
| 시작 시간 | 느림 (JIT) | 빠름 |
| 디버깅 | 쉬움 | 어려움 |
| 플랫폼 지원 | 제한적 | 전체 |
| 빌드 크기 | 작음 | 큼 |
| 빌드 시간 | 빠름 | 느림 |
두 백엔드는 각각의 목적이 다르다:
참고자료
Mono VS IL2CPP