CS

.NET

khh7052 2025. 7. 7. 12:24
반응형

✅ .NET이란?

.NET은 마이크로소프트가 개발한 개발 프레임워크로,
C#, F#, VB.NET 등의 언어로 앱, 웹, 게임, 서버, 모바일 등 다양한 프로그램을 만들 수 있게 도와주는 개발 플랫폼.


🧱 구성요소 정리

구성 요소설명
CLR (Common Language Runtime) .NET의 실행 엔진. C# 코드 → 중간 코드(IL) → 실행 시 JIT 컴파일
BCL (Base Class Library) 자주 쓰는 클래스들 (List, String, IO, Thread 등등) 모음
언어 지원 C#, F#, VB.NET 등
NuGet .NET에서 사용하는 패키지 관리 시스템
 

🧰 .NET으로 만들 수 있는 것들

분야기술설명
웹 서버 ASP.NET Core 백엔드 웹 서버
데스크탑 WinForms / WPF 윈도우 GUI 앱
게임 Unity (C#) Unity 엔진은 내부적으로 .NET Mono 기반
모바일 Xamarin, .NET MAUI iOS/Android 앱 제작
콘솔 앱 Console App 간단한 터미널 기반 프로그램
클라우드 Azure + .NET 마이크로소프트 클라우드 플랫폼에서 사용
 

🔄 실행 과정 간단 요약

  1. C# 코드 작성
  2. 컴파일 → 중간 코드(IL) 생성
  3. 실행 시 CLR이 JIT 컴파일로 IL을 기계어로 바꿈
  4. 프로그램 동작!

JIT: Just-In-Time 컴파일. 실행할 때 필요한 부분만 컴파일함


🧪 .NET Framework vs .NET Core vs .NET (현행)

이름설명
.NET Framework 예전 윈도우 전용 버전 (Windows 한정)
.NET Core 크로스 플랫폼 가능, 성능 향상
.NET 5+ / .NET 6 / .NET 8 (현재) 통합된 차세대 .NET. Windows, macOS, Linux 모두 지원
 

🧩 쉽게 비유하자면...

  • C# = 언어
  • .NET = C#이 돌아가는 무대, 플랫폼, 엔진

 

.NET이 그래서 정확하게 뭘 해주는걸까?


🎯 .NET이 실제로 "하는 일" 요약

✅ 1. 코드 실행 관리 (CLR)

  • C#으로 짠 코드는 그냥 실행할 수 없다.
    → .NET이 IL(중간 코드) 로 바꾼 뒤,
    CLR이라는 엔진이 그걸 실행 가능한 기계어로 바꿔서 실행한다.
  • 이때 가비지 컬렉션, 예외 처리, 스레드 관리 같은 것도 .NET이 자동으로 관리해줌.

📌 예시

int a = 10; Console.WriteLine(a);
 

→ 위 코드를 작성하면
.NET이 알아서 메모리 잡고, 출력해주고, 끝나면 메모리 정리까지 함.


✅ 2. 기본 라이브러리 제공

  • List, Dictionary, File, Http, Thread, Task, DateTime, Json, Math 같은
    기본 기능들을 전부 내장해서 제공한다.

📌 예시

List<int> list = new List<int>(); list.Add(5);

 

→ 이런 기본 자료구조를 쓸 수 있는 것도 .NET이 라이브러리로 다 제공해서임.


✅ 3. 다양한 플랫폼 지원

  • .NET 하나만 배우면 다음도 전부 개발 가능:
    • 웹 서버 (ASP.NET)
    • 데스크탑 앱 (WPF, WinForms)
    • 모바일 앱 (Xamarin, MAUI)
    • 게임 (Unity)
    • IoT, 콘솔 앱, 클라우드 서버 등등

✅ 4. 보안 + 성능 + 확장성 제공

  • 코드가 위험한 짓(예: 메모리 침범) 안 하도록 안전한 실행환경 제공
  • C++보다 느리지만, JIT 컴파일러최적화로 일반적으론 충분히 빠름
  • NuGet으로 외부 라이브러리 쉽게 설치 가능 (게임에 DLL 넣듯이)

🔁 다시 요약하면

.NET이 해주는 일
코드 실행 IL을 기계어로 바꿔서 실행 (CLR)
메모리 관리 가비지 컬렉션으로 자동 정리
기능 제공 수많은 API (파일, 네트워크, 스레드 등)
앱 지원 웹, 게임, 모바일, 데스크탑 앱 개발 가능
보안과 안정성 오류 방지 + 예외 처리 체계 제공

.NET이 여러 기능을 제공한다고 하는데..

C#에서 System 라이브러리도 .NET에서 제공하는건가?


📦 System 네임스페이스 = .NET의 핵심 라이브러리

System은 C#에서 가장 기본적으로 사용하는 .NET의 Base Class Library (BCL) 안에 포함된 최상위 네임스페이스.
즉, C# 코드에서 우리가 자주 사용하는 클래스들(문자열, 리스트, 파일 등)은 전부 .NET이 제공하는 System` 계열에 속함.


🔍 예시로 보는 System 클래스들

클래스설명
System.Console 콘솔 입출력 (Console.WriteLine())
System.String 문자열 처리 (Replace, Substring, Length)
System.Math 수학 함수 (Math.Sqrt(), Math.Pow())
System.Collections.Generic.List<T> 제네릭 리스트
System.IO.File 파일 읽고 쓰기
System.Net.Http.HttpClient 웹 요청 보내기
System.Threading.Tasks.Task 비동기 처리 (async/await)
 

📂 어디서 오느냐?

이 클래스들은 실제로는 DLL로 되어 있는 .NET 런타임 라이브러리 안에 정의되어 있음.
예를 들어:

  • System.Console → System.Console.dll
  • System.Collections → System.Collections.dll
  • System.Runtime → System.Runtime.dll

이런 파일들이 .NET SDK에 포함되어 있고, C# 컴파일러가 이걸 자동으로 참조해줌.


⚙️ C# 언어 vs .NET 라이브러리

항목역할
C# 문법, if, for, class, interface, 타입 정의 방법 등
.NET (System 포함) 문자열, 리스트, 파일 등 실질적인 기능 제공

 

관련 링크

컴파일 과정

NuGet

반응형

'CS' 카테고리의 다른 글

더티 플래그 (Dirty Flag)  (0) 2025.08.08
ANSI  (1) 2025.07.22
유니코드  (1) 2025.07.10
코드 컨벤션 (Code onvention)  (0) 2025.07.07
C#  (0) 2025.07.07