Unity로 게임을 개발하다 보면.NET이라는 키워드를 종종 볼 수 있습니다. 오늘은 Unity에서 .NET이 어떤 기능을 제공하는지 살펴보도록 하겠습니다.
.NET 의 개념과 역사
.NET: Microsoft에서 제작하였으며, 애플리케이션 개발에 필요한 라이브러리와 런타임 환경을 제공하는 무료 오픈소스 프레임워크
Unity에선 다중 플랫폼을 제공하기 위해 Mono를 사용하기 시작했습니다.
Mono는 .NET 기반으로, 이때부터 Unity는 .NET 프로젝트를 진행하였습니다.
과거 .NET은 Standard, Core, XAMARIN으로 나뉘어져 있었습니다.
하지만 위 플랫폼들은 서로 다른 API를 지원했고,
Microsoft는 모든 API를 하나로 통합하기 위해 .NET Standard를 출시하였습니다.
하지만 .NET Standard는 다음과 같은 문제가 발생했습니다.
- 라이브러리가 너무 많아짐
- 일부 타사 라이브러리 미지원
- 컴파일 결과를 Windows에서만 이식 가능
- 좀 더 통합적이고 다양한 플랫폼 지원이 필요
그래서 Microsoft는 새로운 대책을 세우기 시작했습니다.
.NET Core의 등장
2016년, Microsoft는 .NET Core를 출시하였습니다.
이를 통해 Windows 환경에만 의존했던 한계를 해결하였으며,
Linux, Web, Mobile, Game, Cloud, IoT, AI 와 같은 크로스 플랫폼을 제공하기 시작했습니다.
.NET 통합
2020년, Microsoft는 .NET Core와 .NET Framework를 하나로 통합하여 .NET 5를 출시하였습니다.
이때부터 모든 앱을 단일 코드 기반으로 모든 플랫폼에서 실행 가능하게 되었습니다.
그 후로 .NET 6, 7, 8 등 새로운 버전이 계속해서 등장하고 있습니다.
Unity가 .NET을 사용하는 이유
Unity의 멀티 플랫폼 기능 지원
Unity는 출시 초기부터 멀티 플랫폼 지원을 목표로 하였습니다.
이 과정에서 Mono를 채택하여 C#과 .NET 기술 스택을 사용하기 시작했습니다.
Unity 엔진과 사용자 스크립트의 상호작용
Unity 엔진 내부는 빠른 실행을 위해 C++ 네이티브 코드로 동작합니다.
하지만 개발자의 편의성과 높은 생산성을 위해 사용자 스크립트를 C#으로 작성하도록 요구했습니다.
( 초기 스크립팅 언어인 JavaScript와 Boo 지원을 중단 )
즉, C++ 네이티브 코드와 사용자 C# 스크립트가 서로 상호작용할 수 있는 기술이 필요합니다.
그래서 Unity는 .NET 기술을 통해 런타임 환경을 제공하여 C#과 C++이 서로 상호작용할 수 있도록 구성하였습니다.
이러한 이유 때문에 지금까지도 Unity와 .NET은 뗄래야 뗄 수 없는 관계가 된 것입니다.
정리
오늘은 Unity와 .NET의 관계에 대해 알아보았습니다. 다음에는 .NET과 관련하여 Unity가 어떤 기능을 제공하고 있는지 살펴보도록 하겠습니다.
참고 자료
https://dotnet.microsoft.com/ko-kr/learn/dotnet/what-is-dotnet
.NET란? 오픈 소스 개발자 플랫폼.
.NET은 플랫폼 간 무료 오픈 소스 개발자 플랫폼입니다. .NET에는 웹, 모바일, 데스크톱, 게임 및 IoT용으로 빌드할 언어, 편집기 및 라이브러리가 있습니다.
dotnet.microsoft.com
https://youtu.be/I_GVaacIbq8?si=W6ZPTVNfKG6tPM_X
'유니티(Unity) > 이론 정리' 카테고리의 다른 글
[Unity] 직렬화(Serialization)란 무엇인가? (1) | 2024.11.19 |
---|---|
[Unity] Mono & IL2CPP 컴파일 방식의 차이 (0) | 2024.11.18 |
Unitask의 개념과 사용법 (0) | 2024.11.14 |
코루틴(Coroutine)의 개념과 동작 원리 (4) | 2024.11.13 |
[Unity Korea] 객체 지향 설계 원칙 (SOLID) (0) | 2024.11.12 |