[ASP.NET] .NET Core란 무엇이고 왜 이것이 중요한가?

2016. 11. 7. 10:16WEB

1990년 후반부터 .NET Framework 개발이 시작되었고 그간 많은 변화를 겪어왔습니다. .NET Framework가 처음 등장했을 때는 VB, C#, C++ 등 어떤 언어에도 사용할 수 있는 방대한 라이브러리를 제공한다는 점이 강점이였습니다. 더불어 .NET으로 제작된 소프트웨어는 Common Language Runtime(CLR)환경에서 동작하게 되는데, CLR은 가상머신으로써 보안, 메모리관리, 예외처리 등 개발생산성을 높이는 여러가지 이점을 제공하였습니다.

이후로 .NET은 수많은 프로그래머와 개발자들의 폭넓은 지지를 받아왔는데 .NET 환경의 일관된 개발모델, 보안에 대한 직접적인 지원, 간결하고 편리한 개발/디버깅 환경을 그 이유로 꼽을 수 있습니다. 또한 .NET은 개발 및 유지보수 작업을 보다 직관적으로 만들었으며 파편화된 무수한 Assembly들을 .NET Framework 하나로 단순화 하였습니다. 이러한 장점들을 통해 .NET은 좀더 광범위하게 사용되고 인기를 누리게 되었습니다.

끊임없이 변화하는 IT산업 속에서 .NET Framework는 지속적으로 변화해왔으며, 최근에는 .NET Core라는 새로운 프레임워크가 발표되었습니다. 이 포스트에서는 .NET Core란 무엇인지, 어떠한 강점이 있는지 좀더 상세하게 다룰 예정입니다.

.NET Core란 무엇인가?

.NET Framework의 주요한 한계 중 하나는 플렛폼(=운영체제) 간에 코드를 공유할 수 없다는 점입니다. 주로 Windows 운영체제를 지원했으며, Linux 등 다른 운영체제로 코드를 포팅하려면 코드 수정 및 테스트가 수반되어야 했습니다. 하지만 .NET Core는 여러 플렛폼에 배포할 수 있는 프레임워크를 제공할 것입니다. 또한 .NET Core 라이브러리들은 모듈화를 통해 꼭 필요한 라이브러리만 프로젝트에 포함하여 개발할 수 있도록 할 것입니다.

.Net Core Runtime은 open-source community에 릴리즈되었으며 .NET 팀과 함께 플렛폼을 개선하고 확장할 수 있습니다. MIT Open Source 라이센스로서 제공되며 Server, Cloud Application을 제작하는데 있어 필요한 오픈소스 크로스플렛폼 .NET 환경을 제공합니다. .NET Core는 컴파일러와 CLR 뿐만 아니라 .NET Base Class 라이브러리, 상위레벨 .NET Web, Data, API Framework까지도 오픈소스로 제공합니다.

.NET Core는 ASP.NET Core 5를 기반으로 한 최적화된 작은 Runtime입니다. 지금은 Windows에서만 동작하지만 곧 Linux와 Mac에서도 동작하도록 확장될 것입니다.

2가지 주요 컴포넌트

.NET Core는 다음과 같은 2가지 주요한 컴포넌트로 구성되어 있습니다..

  1. Runtime
    1. .NET Framework CLR과 동일한 코드베이스에서 개발되었습니다.
    2. 동일한 GC, JIT(RyuJIT)를 포함합니다.
    3. Application Domain, Code Access Security는 포함하지 않습니다.
    4. Nuget(Microsoft.CoreCLR Package)를 통해 배포됩니다.
  2. Base Class Libraries
    1. .NET Framework와 동일한 Class Library이지만 의존성은 포함하지 않기 때문에 좀더 쉽게 추가하고 사용할 수 있습니다.
    2. Nuget(System.* Package)를 통해 사용할 수 있습니다.

장단점

.NET Core를 가장 특별하게 만드는 특징은 Nuget을 통해 배포된다는 점입니다. 따라서 프로젝트마다 특정 버전의 .NET Core Framework를 포함할 수 있습니다. 이를 통해 다른 프로그램의 버전들은 프로그램들의 동작에 영향을 미칠 수가 없습니다.

.NET Core는 Widnows 뿐만아니라 Linux, Mac 플렛폼도 지원할 예정입니다. 개발자들은 어떤 플렛폼서도 동작하는 Cloud 기반 프로그램이나 웹사이트를 개발할 수 있게 됩니다.

Microsoft에서 개발한 Open Source Application은 무료로 사용할 수 있는 Visual Studio Community를 통해 빌드할 수 있습니다. Visual Studio Community는 과거의 Express 버전의 Visual Studio와 다르게 완전한 VisualStudio 개발환경을 제공합니다.

.NET Core기반의 ASP.NET 5 개발환경은 Front-End 개발자를 위해 Gulp, Grunt Bower, NPM을 지원할 예정입니다. 개발자들은 손쉽게 이용가능한 다양한 버전의 빌드를 사용할 수 있게 됩니다.

Links to more information