CLR이란
Common Language runtime 이란 의미로 .NET 환경에서 쓰이는 모든 언어의 메모리관리와 실행을 담당하는 가상머신으로 CLR은 닷넷 환경에서 사용 가능한 모든 언어의 실행을 담당한다. 즉 .NET은 실행 환경이고 CLR과 .NET 라이브러리는 .NET을 구성하는 요소들중 하나임.
JIT컴파일 방식으로 코드 수행을 수행하며 CLR에서 사용하는 IL을 MSIL(혹은 Common IL)이라고 부른다. JIT란 Just In Time 의 약자로 실제 실행되는 코드가 실시간으로 컴파일되는 변환 방식으로 반대되는 개념으로 AOT(Ahead of Time)이 있다.
CLR을 통해서 고등 언어가 실제 기계어로 바뀌는 과정은 다음과 같다.
1-컴파일러 선택. 사용자가 선택한 런타임을 표적으로 하는 IL을 생성하기 위한 컴파일러를 선택한다. 언어에 따라 다를수 있으며 .NET버전에(Framework,Core,.NET) 따라 다를 수 있다.
2-컴파일. 작성된 소스코드를 MSIL로 변환한다. MSIL은 개체를 다루고 각종 명령들을 처리하는 데이터와 코드에 형식에 대해 기술된 메타데이터를 포함한다. 이과정중에서 JIT변환 과정을 생략하기 위해 선택적으로 AOT(Ahead of Time) 컴파일 방식또한 지원한다. AOT방식으로 컴파일된 프로젝트는 .NET Native 라고 부른다.
3-네이티브 코드 변환. .NET JIT컴파일러가 MSIL을 네이티브 코드(기계어)로 번역한다.
4-실제 실행. 네이티브 코드로 번역된 언어가 실행되며 동시에 GC등을 수행한다.
CLR은 실행동안 여러가지 작업을 한다
등등.
Git
Git config 에서 user 설정을 해주면 리포지토리를 연동할수 있다.
Git init 으로 리포지토리 생성.
Pull - 외부 리포지토리로 부터 코드를 가져옴
Push - 외부 리포지토리로 현재 내 리포지토리의 갱신된 파일을 보냄.
Commit - 변경점을 리포지토리에 기록함.
출저
https://docs.microsoft.com/ko-kr/dotnet/framework/