Go란?
Go는 Google에서 개발한 프로그래밍 언어입니다. 2009년 Robert Griesemer, Rob Pike 및 Ken Thompson이 오픈 소스 프로젝트로 발표했습니다. 그때부터 Go는 Docker, Kubernetes 및 Terraform 등과 같은 널리 알려진 기술을 개발하는 데 사용되었습니다. Go는 서버 쪽 및 클라우드 소프트웨어에서 많이 사용되지만 매우 다양한 사용 사례가 있는 범용 언어입니다.
Go는 표현력이 뛰어나고, 간결하고 깔끔합니다. 이 언어는 자연스럽게 설계되었으므로 프로그래머는 효율적이고 강력한 코드를 생산적으로 작성할 수 있습니다. Go로 작성한 프로그램은 Linux, macOS 등의 Unix 시스템뿐 아니라 Windows에서도 실행할 수 있습니다. Go의 유명세에는 고유한 동시성 메커니즘이 일조하고 있습니다. 이러한 메커니즘 덕분에 여러 코어를 한 번에 활용할 수 있는 프로그램을 쉽게 작성할 수 있습니다. 이 언어의 대부분은 강력한 고정 형식의 언어입니다. 즉, 컴파일 시간에 변수 형식을 알 수 있습니다. 그러나 동적 형식 기능도 일부 제공합니다.
TIOBE 인덱스에 따르면 Go는 2009년과 2016년에 올해의 프로그래밍 언어로 선정되었습니다. Go는 2016년에 정점에 도달했으며, 여전히 높은 평점을 유지하고 있습니다. 연간 Stack Overflow 개발자 설문 조사에 따르면 Go는 여전히 가장 애용되는 언어입니다.
Go는 C와 유사성이 많으며 제어 흐름 문, 기본 데이터 형식, 포인터 및 기타 요소 등, C 구문의 여러 측면을 상속합니다. 그러나 이 언어의 구문 및 의미 체계는 C를 능가합니다. Java, C#, Python 등과도 유사성이 있습니다. 일반적으로 Go는 대부분의 복잡성은 제외하고 다른 프로그래밍 언어의 기능을 많이 가져와 조정하는 경향이 있습니다. 예를 들어, Go에서는 일부 OO(개체 지향) 프로그래밍 기능과 디자인 패턴을 사용할 수 있지만 전체 OO 패러다임이 완전히 구현되지는 않습니다. 이 학습 경로의 후반부에서 그 이유를 알아봅니다.
Go의 원칙
다음은 Go 프로그래밍 언어의 기본적인 주요 이점입니다.
- Go 라이선스는 100% 오픈 소스입니다.
- Go 프로그램은 자체 포함 단일 이진 파일로 컴파일되므로, 쉽게 공유하고 배포할 수 있습니다.
- Go는 다양한 플랫폼 및 운영 체제로의 교차 컴파일을 지원합니다.
- Go는 언어를 작고 단순하게 유지하여 적은 수의 코드 줄로 더 많은 작업을 수행하는 것을 목표로 합니다.
- 동시성은 최고의 리소스로, 프로그래머는 큰 어려움 없이 모든 함수를 경량 스레드로 실행할 수 있습니다.
- Go는 가비지 수집을 비롯한 자동 메모리 관리를 제공합니다.
- 컴파일 및 실행 속도가 빠릅니다.
- Go에서는 모든 코드를 사용해야 하며, 그러지 않으면 오류가 throw됩니다.
- 여러 프로젝트에서 일관성을 유지하는 데 도움을 주는 공식 서식이 있습니다.
- Go에는 크고 포괄적인 표준 라이브러리가 있으며 타사 종속성 없이 많은 애플리케이션을 빌드할 수 있습니다.
- Go는 이전 버전 언어와의 호환성을 보장합니다.
Go 사용 사례
- 시스템 수준 애플리케이션
- 웹 애플리케이션
- 클라우드 네이티브 애플리케이션
- 유틸리티 및 명령줄 도구
- 분선 시스템
- 데이터베이스 구현