Go 언어란?

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

컴파일 언어와 인터프리터 언어

Go 언어는 컴파일 언어입니다. 프로그래밍 언어는 크게 컴파일 언어와 인터프리터 언어로 나눌 수 있고, 보통 인터프리터 언어는 스크립트 언어라고 부릅니다.


그림 1-1 컴파일 언어와 인터프리터 언어

그림 1-2과 같이 컴파일 언어는 텍스트 형태의 소스 코드를 컴파일하여 기계어 형태로 된 실행 파일(바이너리)을 만들어냅니다. 실행 파일은 CPU에서 바로 실행되기 때문에 속도가 빠르고 간결한 것이 장점입니다.

스크립트 언어는 인터프리터가 텍스트 형태의 소스 코드를 해석하여 실행합니다. 최근에는 인터프리터의 느린 성능을 개선하기 위해 JIT(Just-In-Time) 컴파일러라고 하여 실행 시점에 기계어로 바로 컴파일하는 방식이 등장했습니다. 하지만 스크립트 언어는 텍스트 형태를 직접 처리하므로 컴파일 언어에 비해 성능상 한계가 있습니다.


그림 1-2 컴파일 언어와 스크립트 언어의 실행 방식

Go 언어는 컴파일 언어이면서 네이티브 바이너리 형식이기 때문에 C, C++처럼 완전한 실행 파일을 만들어냅니다. 그림 1-3처럼 Java, C#은 컴파일 언어지만 실행 파일이 아닌 바이트코드, IL(Intermediate Language, 중간 언어)을 생성합니다. 그리고 바이트코드와 IL은 가상 머신(Virtual Machine) 위에서 실행됩니다. Go 언어는 Java, C#과는 달리 프로그램 실행을 위해 덩치가 큰 가상 머신을 설치하지 않아도 되므로 실행 환경이 복잡하지 않습니다.


그림 1-3 네이티브 바이너리와 가상 머신


저작권 안내

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

Published

01 June 2015