프로세스 메모리 구조, Stack, Heap
프로세스 메모리 구조는 운영체제가 실행 중인 프로그램에 나눠 주는 가상 주소 공간을 용도별로 나눈 그림입니다. 보통 실행 코드가 놓이는 Code, 전역 변수가 놓이는 Data, 실행 중에 크기가 정해지는 객체가 놓이는 Heap, 함수 호출 정보와 지역 변수가 놓이는 Stack으로 나눠 설명합니다.핵심 답부터 정리하면 이렇습니다. C에서는 개발자가 malloc으로 Heap 메모리를 받고 free로 직접 돌려줘야 하며, 빠뜨리면 C 메모리 누수가 생깁니다. Go에서는 Go GC(가비지 컬렉터)가 더 이상 도달할 수 없는 Heap 객체를 회수하고, 변수가 Stack에 놓일지 Heap에 놓일지는 컴파일러의 Escape Analysis가 결정합니다. 그래서 Go에는 free가 없지만, 필요 없는 객체를 계속 참조..