.NET 버전 이해하기: .NET Core, .NET Standard, .NET Framework 및 기타
.NET, .NET SDK, .NET Core, .NET Standard, .NET Framework 와 같은 용어들 때문에 .NET 생태계를 탐색하는 것은 혼란스러울 수 있습니다. 이러한 기능들은 각각 Visual Studio 2022를 사용하는 C# 개발 환경에서 고유한 역할을 수행하며, 프로젝트에 적합한 대상 프레임워크를 선택하려면 이러한 기능들의 차이점을 이해하는 것이 중요합니다.
이 글은 Tim Corey의 " .NET 버전 설명 - .NET, .NET Core, .NET Standard, .NET Framework 등 " 동영상을 기반으로 작성되었으며, 이러한 용어들을 간소화하고 어떤 버전을 언제 사용해야 하는지에 대한 명확한 지침을 제공하는 것을 목표로 합니다.
.NET Core 존재해야 했던 이유
.NET Framework 흔히 간단히 .NET 이라고도 불리며, 20년 이상 소프트웨어 개발 및 데스크톱 런타임 분야에서 핵심적인 역할을 해왔습니다. 하지만 이러한 한계로 인해 .NET Core 탄생하게 되었습니다. 팀 코리는 몇 가지 핵심적인 이유를 강조합니다.
패치 및 해결 방법 : 시간이 지남에 따라 .NET Framework 수많은 패치와 해결 방법이 누적되어 속도가 상당히 느려졌습니다(1:35).
Windows 종속성 : .NET Framework Windows와 긴밀하게 통합되어 있어 다른 플랫폼에서 사용하기 어렵습니다. 이러한 의존성으로 인해 크로스 플랫폼 개발이 어려워졌습니다(2:03).
모놀리식 설계 : .NET Framework 모든 것을 하나의 패키지에 포함하도록 설계되었는데, 이는 편리했지만 결과적으로 시스템이 비대해지고 효율성이 떨어졌습니다(2:25).
- 시대에 뒤떨어진 개념 : 20년 전에 개발된 .NET Framework 현대 인터넷 및 모바일 사용을 염두에 두고 설계되지 않았습니다(3:20).
.NET 애플리케이션의 구조
.NET Core의 장점을 이해하려면 .NET 애플리케이션의 구조를 파악하는 것이 중요합니다.

팀 코리가 설명하는 바와 같이:
C# 소스 코드 : 여러분의 C# 코드는 먼저 중간 언어(IL) 코드로 컴파일됩니다(5:49).
- 공용 언어 런타임(CLR) : IL 코드는 CLR에 의해 실행됩니다. .NET Framework 와 .NET Core 서로 다른 CLR을 가지고 있지만 IL 코드를 유사하게 처리하므로 대부분의 소스 코드를 두 플랫폼에서 동일하게 유지할 수 있습니다(6:42).
.NET Core 가 .NET Framework 보다 가지는 장점
.NET Core 런타임은 .NET Framework 의 단점을 해결하기 위해 개발된 개발 프레임워크입니다. 팀 코리는 주요 이점을 다음과 같이 강조합니다.
크로스 플랫폼 호환성 : .NET Framework 와 달리 .NET Core Windows, Mac, Linux, Android, iOS, Xbox, IoT 등 다양한 플랫폼에서 실행되도록 설계되었습니다.
성능 : .NET Core 상당한 성능 향상을 제공합니다. 이 버전은 기존 패치를 제거하고 최신 하드웨어 및 소프트웨어 방식을 지원하여 .NET Framework 보다 빠릅니다.
모듈성 : .NET Core 는 모듈형이므로 개발자는 필요한 구성 요소만 포함할 수 있어 오버헤드를 줄이고 효율성을 향상시킬 수 있습니다.
최신 기능 : .NET Core 내장된 종속성 주입 및 로깅과 같은 최신 기능을 기본적으로 제공하여 개발 모범 사례를 촉진합니다.
오픈 소스 : .NET Core 는 오픈 소스이므로 커뮤니티의 기여와 개발 과정의 투명성을 장려합니다.
업계 표준 준수 : .NET Core 업계 표준을 준수하여 최신 기술과의 호환성 및 통합을 보장합니다. 반면 .NET Framework 는 Windows 환경에만 국한됩니다.
- 업그레이드 용이성 : .NET Core 업그레이드는 일반적으로 간단하며, 버전 번호 변경 및 NuGet 패키지 업데이트만 필요한 경우가 많습니다. 마이크로소프트 측의 업그레이드 프로세스는 간소화되었으며, 과거에 더 복잡하고 문제가 많았던 .NET Framework 에 비해 호환성을 깨뜨리는 변경 사항이 적습니다.
.NET Standard
Tim은 .NET Standard 단순한 런타임이 아니라 모든 .NET 플랫폼이 구현해야 하는 API 집합을 정의하는 사양이라고 설명합니다. .NET Standard는 다양한 .NET 구현 간의 코드 호환성을 보장하는 균일한 API를 제공합니다. 즉 , .NET Core 와 .NET Framework 모두에서 작동하는 라이브러리를 작성할 수 있습니다. 33분 35초에 Tim은 최신 버전을 포함한 모든 .NET Standard 버전에 대해 설명합니다. 요약 내용은 아래 스크린샷에 나와 있습니다.

.NET 버전별 상세 분석
.NET Framework 타임라인
.NET Framework 2000년대 초부터 존재해 왔으며 윈도우와 긴밀하게 통합되어 있습니다. 윈도우 데스크톱 및 웹 애플리케이션 개발에는 적합하지만, 크로스 플랫폼 기능 면에서는 제한적입니다.
.NET Framework 1.0 (2002년 1월)
Tim Corey는 .NET Framework 1.0의 초기 출시를 혁명적이라고 설명하며, 여러 프로그래밍 언어가 함께 작동할 수 있도록 하는 공통 중간 언어 개념을 도입했다고 말합니다(40:07). 이 기초 버전은 다양한 언어를 위한 통합 플랫폼을 제공함으로써 향후 개발의 토대를 마련했습니다.
.NET Framework 2.0 (2005년 10월)
3년 후 출시된 .NET Framework 2.0은 상당한 개선 사항과 새로운 기능을 제공하여 플랫폼의 성장을 지속시켰습니다(41:40). 이 버전은 향상된 언어 기능과 더 넓은 범위의 애플리케이션 지원이 특징입니다.
주요 업데이트:
2006년 11월 : .NET Framework 3.0이 도입되었습니다(41:43).
2007년 11월 : 중요한 이정표인 .NET Framework 3.5가 출시되었습니다(41:49).
2010년 4월 : 마지막 주요 버전인 .NET Framework 4.0이 출시되었습니다(42:13).
2012년 8월 : .NET Framework 4.5가 출시되었습니다(42:50).
- 2019년 4월 : 최종 마이너 버전인 .NET Framework 4.8이 출시되었습니다(47:17).
.NET Core 버전
.NET Core 1.0 (2016년 6월)
Tim Corey는 .NET Core 1.0을 .NET Core 의 잠재력을 보여주기 위한 제한된 기능을 가진 개념 증명이라고 언급합니다(43:32). 이 초기 버전은 기반을 마련했지만 기능이 제한적이어서 널리 채택되지는 않았습니다.
.NET Core 2.0 (2017년 8월)
더욱 풍부한 기능을 갖춘 업데이트로 출시된 .NET Core 2.0에는 특히 웹 애플리케이션 개발 분야에서 중요한 발전 사항이 포함되어 있습니다(45:23). 하지만 해당 버전은 LTS 버전이 아니었으며, Tim은 이 버전에 호환성을 깨뜨리는 변경 사항이 포함되어 있어 이후 더 안정적인 버전이 출시되었다고 강조했습니다.
.NET Core 2.1 (2018년 5월)
.NET Core 2.1은 LTS(장기 지원) 버전이었는데, Tim은 이것이 안정성과 확장된 지원이 필요한 기업에게 매우 중요하다고 지적합니다(45:42). 이는 .NET Core 실제 운영 환경에 더욱 적합하게 만드는 중요한 업데이트였습니다.
.NET Core 3.0 (2019년 9월)
.NET Core 3.0은 WinForms 및 WPF를 포함한 데스크톱 애플리케이션에 대한 지원을 도입하여 웹 애플리케이션을 넘어 사용 범위를 확장했습니다(53:04). 이번 릴리스를 통해 .NET Core 더욱 포괄적인 플랫폼이 되었고, 기업들이 .NET Framework 에서 마이그레이션하도록 유도했습니다.
.NET Core 3.1 (2019년 12월)
3.0을 기반으로 구축된 .NET Core 3.1은 데스크톱 및 웹 애플리케이션에 대한 지속적인 지원과 안정성을 제공하는 또 다른 LTS 버전이었습니다(53:16). 팀은 이 버전이 .NET Core 기업 환경에서 사용하기에 기능적으로 완벽하고 안정적인 것으로 간주되는 시점을 나타낸다고 설명합니다.
.NET 5 이상
.NET 5.0 (2020년 11월)
.NET 5가 출시되면서 마이크로소프트는 브랜딩을 단순화하기 위해 이름에서 "Core"를 삭제했습니다(58:03). 팀은 이러한 변경 사항이 .NET Framework 와 .NET Core 간의 혼란을 줄이기 위한 것이라고 설명합니다. .NET 5는 .NET 생태계를 단일 이름으로 통합하는 데 있어 중요한 진전을 나타냈습니다.
.NET 6.0 (2021년 11월)
.NET 6은 .NET 5에서 도입된 연간 릴리스 주기를 계속했습니다(59:56). 팀은 .NET 6을 포함한 각 새 버전이 매년 업데이트되는 주기에 따라 출시되어 정기적인 개선과 기능 추가가 가능하다고 언급했습니다.
.NET 7.0 (2022년 11월)
.NET 7은 연간 릴리스 패턴을 따랐으며 사소한 업데이트와 개선을 통해 플랫폼을 더욱 발전시켰습니다(59:56). Tim은 이번 버전과 이전 버전들이 .NET 생태계의 지속적인 개발과 혁신에 대한 Microsoft의 노력을 어떻게 반영하는지에 대한 자세한 내용을 설명합니다.

.NET 버전 및 지원 수명 주기 이해하기
Tim Corey는 (1:01:27)에서 .NET 버전과 해당 지원 수명 주기에 대한 자세한 설명을 제공합니다. 논의된 주요 내용을 요약하면 다음과 같습니다.
지원 수명주기: STS vs. LTS
팀 코리는 표준 기간 지원(STS) 과 장기 기간 지원(LTS) 이라는 두 가지 유형의 지원 기간의 차이점을 설명합니다.
STS(표준 기간 지원) : 18개월의 지원 기간을 제공합니다. 예를 들어, 2020년 11월에 출시된 .NET 5는 2022년 5월까지 지원되었습니다. 2022년 11월에 출시된 .NET 7도 이와 유사하게 18개월의 지원 기간을 가지며, 2024년 5월에 종료됩니다.
- LTS(장기 지원) : 3년의 더 긴 지원 기간을 제공합니다. 2021년 11월에 출시된 .NET 6은 2024년 11월까지 지원됩니다. 2023년 11월 출시 예정인 .NET 8은 차기 LTS 버전으로, 2026년 11월까지 지원됩니다.
팀은 빠르게 발전하는 앱 개발자들이 최신 기능을 이용하기 위해 STS 버전을 선호할 수 있지만, 기업들은 안정성과 장기적인 지원을 위해 LTS 버전을 선호하는 경우가 많다고 지적합니다.
업그레이드 경로 및 버전 릴리스
팀 코리는 .NET 버전 업그레이드 경로에 대해 설명합니다.
.NET 5에서 .NET 6으로 넘어갈 때 : 두 버전이 모두 지원되는 기간이 1년 동안 겹칩니다.
.NET 6에서 .NET 8로 : .NET 6 지원이 종료되기 전까지 1년 동안 .NET 6에서 .NET 8로 업그레이드할 수 있습니다.
- 향후 업그레이드 : 이와 같은 패턴에 따라, 현재 최신 릴리스인 .NET 8은 .NET 10이 출시될 때까지 지원되므로 업그레이드할 충분한 시간을 확보할 수 있습니다.
팀은 이러한 예측 가능한 출시 주기를 통해 기업들이 자신 있게 업그레이드 계획을 세울 수 있다고 강조합니다.

마이크로소프트의 지원 전략
Tim은 Microsoft의 지원 및 개발 접근 방식에 대해 논의합니다.
비용 및 복잡성 : 이전 버전에 대한 지원을 확장하는 것은 여러 버전에 걸쳐 보안 업데이트를 유지 관리해야 하므로 비용이 많이 들고 복잡할 수 있습니다. 이것이 바로 마이크로소프트가 보다 예측 가능하고 관리하기 쉬운 지원 전략을 채택한 이유입니다.
- 모듈형 프레임워크 : .NET Core 와 .NET의 모듈형 접근 방식은 신속한 기능 업데이트와 보다 관리하기 쉬운 지원 수명 주기를 가능하게 합니다.
.NET Framework 와 .NET Core 중 선택하기
팀 코리는 다양한 .NET 버전을 언제 사용해야 하는지에 대해 조언합니다.
.NET Framework : 기존 프로젝트 또는 Windows XP와 같은 이전 운영 체제를 지원할 때 사용합니다.
- .NET Core (현재 .NET) : 새 프로젝트의 경우 최신 버전의 .NET 으로 시작하세요. 이전 버전의 .NET Framework 에서 .NET 으로 업그레이드하면 성능이 크게 향상될 수 있습니다.
ASP.NET vs. ASP.NET Core
Tim은 ASP.NET 과 ASP.NET Core 의 차이점을 설명합니다.
ASP.NET : .NET Framework 기반으로 구축되었으며 웹 폼, MVC 및 웹 API를 지원합니다. 특히 웹 폼은 ASP.NET Core 에 포함되어 있지 않습니다.
- ASP.NET Core : .NET Core 기반 웹 애플리케이션 구축을 위한 모듈형 프레임워크입니다. 여기에는 Razor Pages, MVC, API, Blazor Server 및 Blazor WebAssembly가 포함됩니다. ASP.NET Core 이전 버전에 비해 더욱 유연하고 현대적인 방식으로 설계되었습니다.
Tim은 1시 21분에 ASP.NET Core 새로운 기능과 향상된 모듈성을 통해 웹 개발을 지속적으로 지원하는 반면, ASP.NET (프레임워크)은 보다 전통적이며 이전 .NET 버전으로 제한된다고 명확히 밝혔습니다.
결론
팀 코리는 .NET Framework 의 역사적 배경부터 .NET Core 및 그 이후의 최신 기능에 이르기까지 .NET 생태계를 탐색하는 데 있어 명확하고 통찰력 있는 가이드를 제공합니다. 그의 영상은 .NET 버전의 발전 과정, .NET Core 의 필요성, 그리고 모듈화 및 크로스 플랫폼 호환성의 이점에 대해 설명합니다. .NET Framework 와 .NET Core 중에서 선택하든, 다양한 .NET 버전의 지원 수명 주기를 이해하든, Tim의 설명은 정보에 입각한 개발 결정을 내리는 데 유용한 로드맵을 제공합니다.
더 자세한 설명과 실용적인 코딩 예제를 보려면 Tim Corey의 YouTube 채널인 IAmTimCorey를 방문하세요.


