Go 언어란?

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

Go 언어는 구글이 개발한 프로그래밍 언어입니다. 2007년에 켄 톰슨, 롭 파이크, 로버트 그리즈머가 최초 설계를 시작했으며 2008년부터 본격적으로 개발되었습니다. 특히 C 언어의 모체가 된 B언어와 유닉스의 개발자로 유명한 켄 톰슨이 참여하여 큰 화제가 되었습니다.

Go 언어는 빠른 성능, 안정성, 편의성, 쉬운 프로그래밍을 목표로 개발되었으며 범용 프로그래밍 언어입니다.

Go 언어의 큰 특징은 다음과 같습니다.

  • 정적 타입, 강 타입
  • 컴파일 언어
  • 가비지 컬렉션
  • 병행성(Concurrency)
  • 멀티코어 환경 지원
  • 모듈화 및 패키지 시스템
  • 빠른 컴파일 속도

Go 언어의 문법은 C 언어를 기반으로 하고 있으며, C++의 복잡한 문법 대신 간단하고 간결한 문법을 추구하고 있습니다.

정적 타입과 동적 타입

프로그래밍 언어에서 타입은 우리말로 자료형을 뜻합니다. 그리고 자료형에는 보통 정수, 실수, 불, 문자열, 객체 등이 있습니다. 여기서 자료형을 컴파일할 때(Compile-time) 결정하면 정적 타입이고, 실행할 때(Run-time) 결정하면 동적 타입이라 합니다.

요즘 흔히 사용하는 Python, Ruby, JavaScript 등의 스크립트 언어는 동적 타입(Dynamic Typing) 언어입니다. 따라서 동적 타입 언어의 변수는 자료형이 정해져 있지 않으며 실행할 때 결정됩니다. 다음과 같이 Python은 변수만 선언한 뒤 다양한 형태의 값을 바로 저장할 수 있습니다.

Python

value1 = 10
value2 = 1.3
value3 = "Hello, world!"
value4 = True
# ↑
# 코드상에 타입이 없다.

반면 C, C++, Java, C# 등의 언어는 정적 타입(Static Typing) 언어입니다. 이 언어들은 값의 형태에 따라 각각 자료형을 가지며 자료형에 맞지 않는 값을 대입하면 컴파일할 때 에러가 발생합니다. 다음과 같이 C 언어는 변수를 선언할 때 자료형에 따라 키워드가 달라집니다.

C 언어

int value1 = 10;
float value2 = 1.3f;
char value3 = 'a';
char value4[] = "Hello, world!";
int value5 = "Hello, world!"; // 컴파일 에러
//↑
// 코드에서 타입을 미리 지정한다.

저작권 안내

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

Published

01 June 2015