Go 언어란?

이재홍 http://www.pyrasis.com 2014.12.17 ~ 2015.02.07

가비지 컬렉션

Go 언어는 가비지 컬렉션(Garbage Collection, GC)을 제공합니다. C, C++는 메모리를 할당하면 반드시 해제를 해주어야 합니다. 이렇게 되다 보니 C, C++ 프로그래밍은 로직 작성보다 메모리 관리에 더 많은 노력과 시간을 소모하고 있어서 생산성이 많이 떨어집니다. 이후 메모리를 알아서 관리해주는 가비지 컬렉션 기술이 나왔고, 이 기술을 사용한 Java와 C#이 등장했습니다. 마찬가지로 Python, Ruby, JavaScript 등의 스크립트 언어들도 각 언어의 가상 머신에서 가비지 컬렉션 기술을 사용하고 있습니다.

그림 1-4와 같이 Go 언어는 메모리를 관리해주는 가비지 컬렉터(Garbage Collector)가 실행 파일안에 내장되어 있습니다. 가상 머신 위에서 실행되는 언어들처럼 가상 머신이 메모리 관리를 해주는 것과 차이가 있습니다. 즉 Go 언어는 C, C++ 실행 파일 방식의 간결함과 가상 머신의 가비지 컬렉션 기능을 함께 가지고 있습니다.


그림 1-4 Go 언어와 가상 머신의 가비지 컬렉터

Go 언어는 메모리 관리에 신경 쓰지 않고, 로직 작성에 집중할 수 있습니다. 따라서 스크립트 언어(가상 머신 위에서 실행되는 언어)처럼 생산성이 높고 C, C++처럼 빠른 성능이 장점입니다.


저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.

Published

01 June 2015