매니지드(Managed)와 언매니지드(Unmanaged)란?

chanto11

·

2021. 1. 9. 22:36

메모리의 종류에는 (Code, Data, Heap, Stack) 영역들이 있습니다. 각 영역의 역활은 아래와 같습니다.

 

Code  실행할 코드(프로그램)
Data  전역변수, 정적변수
Heap 사용자 동적할당 (런타임에 결정)
Stack 지역변수, 매개변수

 

메모리 영역 중 프로그래머가 관리하는 Heap영역을 관리 여부에 따라 Managed와 Unmanaged로 나뉘게 됩니다.

 

Unmanaged 언매니지드

  대표적으로 C, C++로 메모리의 할당과 해제를 통해 직접 메모리를 관리하여 메모리 누수가 없게 관리해줘야 하지만 managed 에 비해 속도가 빠릅니다.

 

Managed 매니지드

  대표적으로 C#, Java 등으로 메모리의 할당과 해제를 통해 메모리 관리없이 언어 자체적으로 메모리를 관리합니다. 또한, 메모리를 구체적인 관리를 할 수 없기 때문에 프로그래밍의 자유도가 낮으며 비정기적인 메모리 정리가 이루집니다.