프로그래밍 언어는, 컴퓨터에게 특정 명령을 수행하라고 전달해주는 수단입니다.
여러분이 사용하게 될 많은 언어들은, 크게 2가지로 나눌 수 있습니다.
Unmanaged Language는, GC, 즉 Garbage Collector 가 실행되고 있지 않는 언어를 말합니다.
메모리를 할당하고 해제하는 과정이 온전히 프로그래머의 책임인 언어들을 말하죠.
이런 언어는 다른 언어들 보다 실행 속도가 빠르고 컴퓨터의 내부 구조와 밀접하게 작동하여 최적화가 용이하지만, 프로그래머가 실수를 할 경우 Memory Leak 이라는, 치명적인 문제가 발생할 수 있습니다.
이를 막기 위해서, 요즘 나오는 Unmanaged Language 들은 메모리의 할당과 해제를 쉽게 해 주는 기능을 탑재하고 있기도 합니다.
Managed Language는 Unmanaged와 반대로, GC가 실행되고 있는 언어를 말합니다.
안 쓰이는 메모리를 자동으로 찾아서 해제해줌으로써 Memory Leak을 방지하죠.
이런 언어는 메모리 관리가 편해 코딩이 빠르고 간편하고, 대부분의 경우 제공하는 기본 라이브러리가 다양합니다.
대신, 속도가 상대적으로 많이 느리고, GC로 인해 예기치 못한 상황에서 속도 저하가 발생할 수 있어 생각보다 신중한 코딩이 필요합니다.