GO언어의 중요함

GO언어란?

놀랍게도 만들어진지 10년이 지난 언어이다. 하지만 우리가 평소에 쓰는 Java나 C언어보다는 많은 사람들이 알고 있지 않다.
우연히 GDSC 활동 중 GO 스터디에 들어갈 기회가 생겼고 찾아보았는데 최근 내가 관심있어 하는 블록체인과도 연관이 있다고 한다.
앞으로 GO언어에 대해서 공부하고 내용을 써보려고 한다. 오늘은 GO 언어에 대한 장점들을 나열해보겠다.

고는 배우거나 사용하기 쉽다. 그리고 다른 개발자도 읽기 쉬운 언어를 목표로 설계됐다. 그리고 다른 언어들과 비교하면 기능이 그렇게 많지는 않다.
문법적으로는 C와 비슷해서 C 경험이 풍부한 개발자라면 비교적 쉽게 배울 수 있다. 아예 처음부터 배우는 것이 아닌, C를 바탕으로 공부할 수 있다.
용량이 커도 컴파일이 몇 초만에 된다. 파일 및 라이브러리 등 C 스타일의 오버헤드 상당 부분이 거의 없다.

GO의 특징

편의성: 고는 일반적인 프로그래밍 요구를 충족시킨다는 측면에서 파이썬 같은 스크립팅 언어와 흔히 비교된다.
고루틴(goroutines) 같은 기능 중 일부는 언어 자체에 내장돼 있으며, 추가적인 기능은 고 표준 라이브러리 패키지로 제공된다.
고는 파이썬과 마찬가지로 가비지 수집을 포함한 자동 메모리 관리 기능을 지원하는 등 다양한 기능들을 가지고 있다.

파이썬 등의 스크립팅 언어와 달리 고 코드는 빠르게 실행되는 네이티브 바이너리로 컴파일된다.
또한 C나 C++과 달리 고의 컴파일 속도는 매우 빠르다는 아주아주 중요한 장점이 있다. 추가로 고 빌드 시스템은 다른 컴파일 언어보다 덜 복잡하다.

속도: 고 바이너리의 실행 속도는 C보단 느리지만 속도 차이는 대부분의 애플리케이션에서 무시할 만한 수준이다.
대부분의 작업에서 고의 성능은 C와 대등하며, 일반적으로 개발 속도로 유명한 다른 언어(예: 자바스크립트(JavaScript), 파이썬, 루비(Ruby) 등)보다 훨씬 빠르다.

이식성: 고 툴체인로 실행 파일을 만들면 기본적인 외부 종속성 없이 단독으로 실행할 수 있다.
고 툴체인은 다양한 운영체제 및 하드웨어 플랫폼에서 사용할 수 있으며, 여러 플랫폼에서 바이너리를 컴파일하는 데 쓸 수 있다.

상호운용성: 고는 기반 시스템 액세스를 희생하지 않고 이 모든 장점을 제공한다. 고 프로그램은 외부 C 라이브러리와 통신하거나 네이티브 시스템 호출을 수행할 수 있다.
예를 들어 도커에서 고는 저수준 리눅스 함수, 컨트롤 그룹, 네임스페이스와 연결하여 컨테이너를 활용할 수 있다.

이러한 장점들로 인해 고의 사용량이 늘고 있고, 최근 백엔드 언어의 트렌드는 GO언어로 가고 있는 추세이다. 이 기회로 고 언어를 통한 서버스 개발 도전도 해봐야겠다.

Categories:

Updated:

Comments