.Net Framework과 .Net Core 중 어떤 .Net을 사용해야 할까?
현재 .Net 진영에는 두 가지 .Net 프레임워크가 존재합니다.
- .Net Framework → .Net Framework 4.8…
- .Net Core → .Net 5,6,7…
MS에서는 현재 서로 간의 호환되게 개발할 계획이 없으며, 둘 중 하나를 선택해서 사용해야 합니다. 두 프레임워크 중 하나를 선택하는 기준은 간단합니다.
기존 앱이 .Net Core에서 사용할 수 없는 경우 .Net Framework를, 아닌 경우에는 .Net Core를 사용해야 합니다.
위 기준은 기존의 사용 중인 .Net Core가 .Net Framework를 계승해야 한다면 .Net Framework를 사용해야 한다는 의미입니다. .Net Core와 호환이 되지 않기 때문에 .Net Core로 새롭게 만들지 않는다면 .Net Framework를 사용하는 것이 좋습니다. 또한 .Net Core에서 지원하지 않는 타사 .Net 라이브러리 사용, NuGet 패키지 사용, .Net Framework만이 가진 기술 등을 사용할 때 .Net Framework를 사용하면 됩니다.
.Net Framework
.Net Framework는 CRL과 .Net Framework 클래스 라이브러리로 구성되어 있습니다. Windows에 종속된 관리형 실행 환경을 가집니다. 현재 MS에서는 4.8 이후 버전에 대한 개발은 없으며, 추후 버전을 올리고자 한다면 .Net Framework에서 벗어나 .NET5인 .Net Core를 사용하라고 권장하고 있습니다. 지속적인 업그레이드가 필요 없는 앱이라면 .Net Framework를 선택하는 것이 좋습니다.
.Net Framework가 가지고 있는 대표 라이브러리는 WPF, Windows Form, ASP.NET이 있습니다. 이를 활용한 프로젝트는 .Net Framework에서만 동작하기 때문에 .Net Framework를 사용하게 됩니다. Core가 나오기 전에 만들어진 윈도우 프로그램과 웹 프로그램이 여기에 속합니다.
.Net Core가 나오기 전에 개발된 앱들은 대부분 .Net Framework로 개발되었습니다. 오래된 프로젝트를 개선하거나 재개발하지 않는 이상 기존 .Net Framework을 사용해도 좋은 성능을 제공합니다.
.Net Core
.Net Core는 .Net Framework의 약점이었던 크로스 플랫폼을 지원합니다. 리눅스, OS X, 윈도우 모든 환경을 지원합니다. .Net Core는 클라우드 사용과 인터넷 연결 앱을 만들기 위한 플랫폼 간 고성능 오픈 소스 프레임워크라고 소개합니다. 오픈 소스라는 점이 특이하며, 클라우드 , IoT 등 다양한 환경에서 동작하기 위해 MS에서 출시한 Next 프로젝트라고 보시면 됩니다.
.Net Core는 .Net Framework가 만들었던 대부분의 프로젝트를 다시 만들 수 있습니다. 다만, .Net Framework만 지원하는 라이브러리와 Nuget은 지원하지 않습니다. MS는 .Net Core를 개발자들이 사용할 수 있도록 다양한 이점을 소개했습니다.
- 웹 UI 및 웹 API를 동일한 과정으로 빌드
- 테스트 가능성을 고려
- Blazor, Razor Page 지원.
- gRPC, 클라우드 환경, 종속성 주입 기본 제공.
- 고성능 모듈식 HTTP 요청 파이프라인 지원(BanchMark)
- 다양한 환경에서 호스트 가능
이렇듯 .Net Core에서는 다른 진영(자바, 파이썬 등)에서 이점이 되는 많은 것들을 가져와 구성했습니다. .Net Core라면 다른 진영에 밀리지 않는 좋은 기능 및 환경을 제공할 수 있습니다.
결론
필자가 생각하는 .Net Core의 가장 큰 장점은 크로스 플랫폼입니다. Windows는 기본적으로 MS에서 제공하는 OS를 사용해야 합니다. 툴 자체도 돈을 내야 하지만 Windows Server는 엄청난 비용으로 연결되어 단점이 되었는데 리눅스 환경에서도 동작하는 것이 가장 큰 장점입니다. 또한, VS Code라는 가볍고 무료인 툴을 개발하면서 MS에 대한 의존도가 올라가고 있다고 생각합니다.
현재 한국은 자바나 파이썬을 많이 사용하고 있습니다. .Net Framework는 비싼 비용과 폐쇄적인 정책으로 한국에서는 외면받았으나 개방적인 기조로 방향을 바꾼 뒤부터는 사용하기 좋은 툴과 개발 환경을 제공하려고 노력한다는 생각이 듭니다.
함께보면 좋은 링크
.NET 5 발표에 따른 변화들 – [C# 시리즈 2]
참고 링크
https://learn.microsoft.com/ko-kr/dotnet/standard/choosing-core-framework-server