2023. 12. 12. 08:34, Unity
아래의 내용들의 경우 유니티에서 C#을 기반으로 작성된 코드들을 빌드하고 해당 결과물을 디컴파일 하는데 있어서 나오는 개념들에 대해서 gpt 질문을 통해 정리한 내용이다. 해당 개념들에 대해서 충분히 익숙해지도록 하자.
- Mono:
- Mono는 오픈 소스의 .NET 호환 구현 중 하나입니다. Microsoft의 .NET 프레임워크를 기반으로 하며, Linux, macOS, Windows 등 다양한 플랫폼에서 실행될 수 있도록 설계되었습니다. Mono는 C# 언어로 작성된 응용 프로그램을 다양한 환경에서 실행할 수 있도록 지원하며, Unity 게임 엔진도 Mono를 사용하여 스크립팅을 지원합니다.
- JIT 컴파일러:
- JIT(Just-In-Time) 컴파일러는 프로그램이 실행되는 시점에 중간 언어 코드를 해당 플랫폼의 기계어로 변환하는 컴파일러입니다. Mono의 JIT 컴파일러는 실행 시에 코드를 컴파일하여 바로 실행할 수 있게 해줍니다.
- 중간 언어(IL, Intermediate Language):
- 중간 언어는 고수준 언어로 작성된 프로그램을 플랫폼 독립적인 형태로 컴파일한 언어입니다. .NET 플랫폼에서 사용되는 중간 언어는 Common Intermediate Language(CIL)이라고도 불리며, C# 코드는 CIL로 컴파일됩니다.
- DLL:
- DLL은 Dynamic Link Library의 약자로, 실행 시에 동적으로 로드되어 프로그램이나 다른 DLL에서 사용되는 라이브러리 형태의 파일입니다. Mono에서 C# 코드는 DLL로 컴파일되어 실행됩니다.
- IL2CPP:
- IL2CPP는 Unity에서 사용되는 빌드 옵션 중 하나로, C# 코드를 IL에서 C++ 코드로 변환하는 툴체인입니다. 이를 통해 더 효율적이고 안정적인 실행 코드를 생성할 수 있으며, 디컴파일링에 대한 일부 보안 측면에서 장점을 가집니다.
- 디컴파일링:
- 디컴파일링은 컴파일된 코드를 원래 소스 코드로 역으로 변환하는 프로세스를 의미합니다. 디컴파일링을 통해 원본 코드의 일부나 전체를 복원할 수 있으며, 코드 보안 측면에서 취약점이 될 수 있습니다.
'Unity' 카테고리의 다른 글
유니티 Game view controller bar 에서, Low Resolution Aspect Ratios (0) | 2023.12.14 |
---|---|
유니티 코드 난독화 방법에 대해서 도움이 될만한 블로그 글 (0) | 2023.12.12 |
Lerp에 관한 분석 필요한 코드 내용. (0) | 2023.12.12 |
핸드폰으로 구동되는 프로그램을 종료하고 싶을때 사용할 수 있는 Unity에서의 코드 (0) | 2023.12.10 |
일반적인 함수에 일회성으로 딜레이를 주고 싶으면 invoke() 함수를 사용할 것. (0) | 2023.12.10 |
Comments, Trackbacks