닷넷 프레임워크(.NET Framework)는 Microsoft에서 개발한 소프트웨어 개발 플랫폼입니다.
이는 Windows 운영 체제에서 애플리케이션을 개발하는 데 사용되는
다양한 언어를 지원합니다.
대표적으로 C#, Visual Baisc, C++, F#, DLR(동적 언어 런타임) 등이 있습니다.
.NET Framework는 공통 언어 런타임을 통해 코드 실행을 관리합니다.
이는 .NET Framework의 컴포넌트가 공통 언어 기반 (Common Language Infrastructure)이기 때문입니다.
이를 통해 애플리케이션의 개발 및 실행 시 언어에 종속되지 않은 플랫폼을 제공합니다.
프로그래밍 언어로 작성된 소스 코드는
각 언어의 맞는 컴파일러를 거쳐
.NET 공통 언어 런타임 용 중간 코드인 Common Intermediate Language(CIL)로 컴파일 된 후
.exe
파일로 래핑됩니다.
.NET 공통 언어 런타임은 해당 파일을 Just In Time 컴파일 방식으로 읽어 기계어 번역을 수행합니다.
공통 언어 런타임은 메모리 관리, 예외 처리, 보안, 스레딩 등 기능을 제공합니다.
.NET Framework를 사용하는 모든 언어가 사용할 수 있는 클래스들의 라이브러리가 기본 클래스 라이브러리 입니다.
이를 통해 데이터 구조, 파일 입출력, 네트워킹, DB 작업 등 기능을 제공합니다.
.NET Core는 Microsoft에서 개발한 크로스 플랫폼 소프트웨어 프레임워크로,
다양한 운영체제에서 애플리이케이션 개발이 가능한, .NET Framework의 후속입니다.
.NET Framework | .NET Core | |
---|---|---|
플랫폼 지원 | Windows 기반 앱 개발 최적화 | 크로스 플랫폼 (Windows, macOS, Linux) 지원 |
모듈화 | 전체 프레임워크가 하나의 큰 패키지로 제공 | 모듈화된 구조, 필요한 구성 요소 선택하여 사용 가능 이를 통해 더욱 가벼운 앱 개발 가능 |
성능 | 뛰어난 안정성, 하지만 최신 기술 반영에 한계 | 빠른 실행 속도, 클라우드 환경에서 유리 |
애플리케이션 유형 | 윈도우 전용 애플리케이션, ASP.NET 웹 애플리케이션 WinForms, WPF, ... | 웹 애플리케이션, 클라우드 기반 서비스, ... |
ASP는 Active Server Pages로,
Microsoft가 동적 웹 페이지 생성 용도를 사용할 것을 목적으로 제작된 서버 사이드 스크립트 엔진입니다.
ASP.NET Core는 Microsoft에서 개발한 오픈 소스 웹 프레임워크로,
웹 애플리케이션 및 API 개발에 최적화되어 있습니다.
ASP.NET Core | .NET Core | |
---|---|---|
주요 기능 | 웹 애플리케이션, RESTful API 개발 특화 | 콘솔 애플리케이션, 라이브러리, 서비스 개발 특화 |
구성 요소 | 웹 앱에 필요한 추가 라이브러리와 구성 요소 (MVC, Razor Pages, ...) | 기본적인 런타임과 라이브러리, 앱 개발에 필요한 기능 제공 |
웹 기능 | 웹 요청 처리, 라우팅, 미들웨어, 인증 및 권한 부여 등 제공 | 기본적인 입출력, DB 접근, 파일 시스템 작업 지원 등 제공 |
배포 및 호스팅 | Docker, Nginx 등 다양한 환경에서 웹 앱으로 배포 가능 | 콘솔 애플리케이션이나 서비스로 배포 가능 |
.NET Framework는
데스크톱 계산기 앱과 같이 윈도우 폼 애플리케이션과 같은 개발에 특화되어있고,
.NET Core는
파일 처리 도구와 같이 크로스 플랫폼 콘솔 애플리케이션과 같은 개발에 특화되어있고,
ASP.NET Core는
웹 API 같이 RESTful API, 혹은 웹 애플리케이션 개발에 특화되어 있습니다.
각 프레임워크별 용도와 환경에 맞춰 사용하는 것이 중요합니다.