.NET
의 발전 속도가 무섭다.
.NET CORE
가 2016년 출시되어, 벌써 6년이 지났다.
어느덧 크로스 플랫폼을 지향하던 .NET CORE
는 2019년 .NET CORE 3
를 거쳐, .NET 5
로 통합되면서 .NET {버전}
으로 브랜딩하고 있다.
국내에서는 자바를 필두로 한 JVM
이 득세 중이며, 오히려 Go
나 Node.js
보다 못한 인지도를 가지고 있지만, ModuleCounts
기준, 3위권의 패키지 수로 올라왔으며, 하루마다 증가되는 패키지 갯수 181개로 Maven
의 171개보다 소폭 앞서며, 파이썬의 181개와 동일한 수치를 보여주며, 2위권을 형성하고 있다.
물론 패키지 수가 사용자와 정비례 한다고 볼 순 없겠지만, 어느 정도 연관 지표로써 동작하는 것도 사실이니, 큰 사용자 수 성장 속도의 반증 중 하나라고 볼 수 있을 것이다.
그런 .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
의 발전 속도에 감탄하며 잘 사용하는 중이며, 앞으로도 좀 더 넓은 저변과 사용자 확대의 기회가 국내에도 있었으면 하는 바램으로 간략하게 정리를 해봤다.