.NET 용어 정리

Posted by 엘키의 주절 주절 on January 11, 2022

.NET의 발전 속도가 무섭다.

.NET CORE가 2016년 출시되어, 벌써 6년이 지났다.

어느덧 크로스 플랫폼을 지향하던 .NET CORE는 2019년 .NET CORE 3를 거쳐, .NET 5로 통합되면서 .NET {버전}으로 브랜딩하고 있다.

국내에서는 자바를 필두로 한 JVM이 득세 중이며, 오히려 GoNode.js 보다 못한 인지도를 가지고 있지만, ModuleCounts기준, 3위권의 패키지 수로 올라왔으며, 하루마다 증가되는 패키지 갯수 181개로 Maven의 171개보다 소폭 앞서며, 파이썬의 181개와 동일한 수치를 보여주며, 2위권을 형성하고 있다.

module_counts_01

module_counts_02

물론 패키지 수가 사용자와 정비례 한다고 볼 순 없겠지만, 어느 정도 연관 지표로써 동작하는 것도 사실이니, 큰 사용자 수 성장 속도의 반증 중 하나라고 볼 수 있을 것이다.

그런 .NET은 국내에서 주로 얘기를 나눌 때, 많이들 헷갈려 한다.

프로그래머 분들에게도, 국내의 대중적인 인식으로 .NET Framework, .NET Core, .NET Standard, .NET을 구분해내기란 쉽지 않은가보다. (그리고 대부분은 .NET Framework 수준의 인식에 머물러 있다.)

.NET Framework

JVM과 같은 가상 머신을 지칭하며, 클래스 라이브러리 집합체이기도 하다.

Windows에서만 구동되던 레거시 구현체라고도 볼 수 있다.

.NET CORE

윈도우 이외의 운영체제에서도 동작할 수 있게끔 새로 구현된 가상머신이자, 구현체이다.

3.0 이후 윈도우 한정 GUI를 지원한다. (Winform, WPF)

.NET Standard

.NET Framework, .NET CORE 모두에서 호환 가능한 표준들로만 구성된 구현체이다.

.NET Standard로 생성된 DLL은 양쪽 모두에서 동작한다.

.NET

.NET Framework.NET CORE를 통합해, .NET 5를 출범시켰다.

이후 버전은 .NET {버전명}으로 불릴 예정이며, .NET 6가 첫 LTS이다.

이제는 .NET 은 윈도우 외에 모든 운영 체제에서 동작을 목표로 하고 있으며, .NET 6 에서 강화된 M1, ARM 지원 강화등으로 다양한 CPU 아키텍쳐에서도 동작하는 말 그대로 Run anywhere를 이룩해내고 있는 중이다.

.NET의 파편화를 막기 위해 네이밍한 것이지만, 사실상 이런 다양한 명칭이 더 큰 혼동을 가져다 주고 있는 것도 아직까지는 사실이다.

하지만 .NET이 꾸준히 오픈 소스 기반에, Run anywhere와 빠른 발전 속도를 보여준다면 앞으로는 혼란 없이, .NET은 멀티 운영체제와 멀티 CPU 아키텍쳐에서 동작하며 높은 호환성과 안정된 동작을 보장하는 가상 머신이라고 인식 될 수 있을 것이다.

대 다수의 Dev Toy를 C#으로 하고 있는 나로써는, C#.NET의 발전 속도에 감탄하며 잘 사용하는 중이며, 앞으로도 좀 더 넓은 저변과 사용자 확대의 기회가 국내에도 있었으면 하는 바램으로 간략하게 정리를 해봤다.