Managed Code
•
Visual Basic. NET, C# 컴파일러가 만들어냄
•
IL(Intermediate Language - 중간 언어) 라고 불리는 코드를 생성
→IL은 컴퓨터에서 바로 실행되기 위한 machine code(기계언어)가 아님
•
CLR(Common Language Runtime)환경에서 동작
→ 자신이 작성한 코드가 실행될 때 다양한 형태의 서비스를 지원
→CLR이 현재 프로그램이 돌아가는 컴퓨터의 환경에 적합한 기계언어를 생성
→ JIT(Just In Time)컴파일링 사용
JIT컴파일링이란?
•
메모리 관리를 알아서 해줌
Unmanaged Code
•
Visual Studio .NET 2002가 나오기 전에 만든 코드(Visual Basic 6, Visual C++6)
•
내가 컴파일을 수행하는 바로 그 컴퓨터에 적합한 기계 코드를 생성
→ 칩 및 하드웨어 구성이 다른 컴퓨터에서는 실행 불가
•
메모리 관리를 사용자가 직접 해야함
→ 단, COM과 같이 발전된 형태의 라이브러리들은 스스로 관리가 가능
Native Code
•
Unmanaged Code와 동의어로써의 의미
•
JIT컴파일로부터 생성된 코드의 의미
→JIT는 managed code에만 사용되면서 IL코드는 아닌 해당 컴퓨터에 적합한 기계언어
→Native Code라고 해서 무조건적으로 Unmanaged 코드는 아님