1강. 닷넷프레임워크와 C#언어

InSung-Na·2023년 7월 25일
0

나우캠퍼스_C#

목록 보기
2/7

1. .Net Framewrok

운영체제와 닷넷 프레임워크

  • 과거에 각 운영체제에 닷넷 프레임워크를 추가해서 사용했으나
  • 닷넷 프레임워크가 운영체제 안으로 들어가서 대부분의 OS에서 사용가능

구성요소

  • 클래스 라이브러리와 CLR(Common Langugage Runtime)

클래스 라이브러리

  • BCL(Basic Class Library): 기본 클래스
  • Window Form: 윈도우 응용 프로그램 제작을 위한 클래스 라이브러리
  • ASP.NET: 웹 클래스 라이브러리
  • ADO.NET: 데이터베이스 클래스 라이브러리

CLR(Common Language Runtime)

  • 컴파일된 C# 코드(.exe)를 실행하는 역할
  • MSIL, IL, Common Intermediate Language, CIL, 중간언어
    • 닷넷 프레임워크의 장점은 대부분의 기기에서 사용가능한 것이다
    • 코드를 컴파일하면 생성되는 코드로 각 CPU와 OS에 맞는 코드를 생성함

*용어 알기

  • *.exe, *.dll을 실행파일이 아닌 어셈블리 라고 한다

CTS와 CLS

Common Type System

  • 공통 데이터형과 형식 정의
    • int => System.Int32
    • float => System.Single

Common Lanuguage Specifiaction

  • 공통 언어 사양 정의
  • 닷넷 언어가 지켜야 할 최소 코드 규칙

2. C# 언어에 대한 개요

C# 언어

  • C# 언어 = C++ 언어 기반 + java 장점
  • 사용범위
    • XML, Web, Network, 데이터베이스, 게임, IoT 등
  • C#은 포인터를 거의 사용하지 않는다
    • 객체 생성 new는 있지만 해제는 없다
    • 메모리 관리는 Garbage Collector가 담당

C# 프로그램 실행 과정


3. 정리

  • 닷넷 프레임워크의 구성 요쇼와 역할 이해
    • BCL, IL, CLR, JIT, CTS 등...
  • 컴파일부터 실행까지의 과정을 이해
  • 인문학 서작 읽기 추천
    • 사고력 키우기

4. 닷넷 환경의 컴파일 과정

JIT(Just-In-Time) 컴파일

  • C/C++로 작성된 프로그램은 정적인 네이티브 코드(.exe, .dll)를 생성해 배포하기 때문에 빠르다
  • Java, C#과 같은 언어들은 컴파일러가 생성한 IL 코드를 가지고 있다가 프로그램 실행 시에 CLR 코드를 해석해서 동적인 네이티브 코드를 생성하게 된다
  • 이러한 가상머신에 의한 런타임 컴파일 방식을 JTL 컴파일 이라고 한다
  • 그렇기 때문에 첫 수행이 아주 느리고, 이후 수행부터는 빠른 속도를 갖게 된다

AOT(Ahead-Of-Time) 컴파일

  • JIT 컴파일 방식의 느린 속도를 해결하기 위해 만들어진 컴파일 방식
  • 목표 시스템의 기계어와 무관하게 중간 언어 형태로 배포된 후 목표 시스템에서 인터프리터JIT 컴파일 등 기계여 번역을 통해 실행되는 중간 언어를 미리 목표 시스템에 맞는 기계어로 번역하는 방식

5. References

0개의 댓글