닷넷 프레임워크 (.NET Framework) 부터 ASP닷넷 코어 (ASP.NET Core) 까지 - 기능과 비교

이도형·2024년 10월 8일
0
post-thumbnail

.NET Framwork 개념

닷넷 프레임워크(.NET Framework)는 Microsoft에서 개발한 소프트웨어 개발 플랫폼입니다.
이는 Windows 운영 체제에서 애플리케이션을 개발하는 데 사용되는


.NET Framework 특징

언어 호환성

다양한 언어를 지원합니다.
대표적으로 C#, Visual Baisc, C++, F#, DLR(동적 언어 런타임) 등이 있습니다.

공통 언어 런타임 (Common Language Runtime, CLR)

.NET Framework는 공통 언어 런타임을 통해 코드 실행을 관리합니다.

이는 .NET Framework의 컴포넌트가 공통 언어 기반 (Common Language Infrastructure)이기 때문입니다.
이를 통해 애플리케이션의 개발 및 실행 시 언어에 종속되지 않은 플랫폼을 제공합니다.

출처 : wikipedia.org

프로그래밍 언어로 작성된 소스 코드는
각 언어의 맞는 컴파일러를 거쳐
.NET 공통 언어 런타임 용 중간 코드인 Common Intermediate Language(CIL)로 컴파일 된 후
.exe 파일로 래핑됩니다.
.NET 공통 언어 런타임은 해당 파일을 Just In Time 컴파일 방식으로 읽어 기계어 번역을 수행합니다.

공통 언어 런타임은 메모리 관리, 예외 처리, 보안, 스레딩 등 기능을 제공합니다.

기본 클래스 라이브러리 (Basic Class Library)

.NET Framework를 사용하는 모든 언어가 사용할 수 있는 클래스들의 라이브러리가 기본 클래스 라이브러리 입니다.
이를 통해 데이터 구조, 파일 입출력, 네트워킹, DB 작업 등 기능을 제공합니다.


.NET Framework vs. .NET Core

.NET Core는 Microsoft에서 개발한 크로스 플랫폼 소프트웨어 프레임워크로,
다양한 운영체제에서 애플리이케이션 개발이 가능한, .NET Framework의 후속입니다.

.NET Framework.NET Core
플랫폼 지원Windows 기반 앱 개발 최적화크로스 플랫폼 (Windows, macOS, Linux) 지원
모듈화전체 프레임워크가 하나의 큰 패키지로 제공모듈화된 구조, 필요한 구성 요소 선택하여 사용 가능
이를 통해 더욱 가벼운 앱 개발 가능
성능뛰어난 안정성, 하지만 최신 기술 반영에 한계빠른 실행 속도, 클라우드 환경에서 유리
애플리케이션 유형윈도우 전용 애플리케이션,
ASP.NET 웹 애플리케이션
WinForms, WPF, ...
웹 애플리케이션,
클라우드 기반 서비스, ...



ASP.NET Core

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, 혹은 웹 애플리케이션 개발에 특화되어 있습니다.

각 프레임워크별 용도와 환경에 맞춰 사용하는 것이 중요합니다.

profile
열심히 살고 싶습니다! 일하고 싶습니다 :)

0개의 댓글