
고(Go) 또는 고랭(Golang)은 구글이 웹에서 작업하기 위한 편리한 도구를 찾기 위해 2007년 더 간단한 버전의 C와 C++을 고안하며 탄생한 프로그래밍 언어이다. 컴파일된 다중 스레드 프로그래밍 언어로 가비지 컬렉션, 구조 타이핑, CSP 스타일 병행성을 제공하며, 병행성이 뛰어나 프로그램들이 서로 소통하며 상태를 공유하는 동시성 프로그래밍을 쉽게 만들 수 있다.
스택 오버플로에 따르면 Go는 파이썬(Pthon), 자바스크립트(JavaScript)에 이어 프로그래머들이 선호하는 상위 3개 언어에 속한다. Go는 프로그래밍 언어 인기 순위에서도 13위를 기록했는데, 5년 전 기록(30위)에 비해 크게 성장한 것을 알 수 있다. 이는 고랭 언어의 인기가 커지고 있다는 것을 나타낸다.
Go는 왜 배워야 할까?
모든 비즈니스에서 마찬가지로 IT에서도 개발에 소요되는 시간은 지불되는 비용과 비례한다. 고객은 시간과 비용 모두 절약하고 싶어 한다. 따라서 기술 과제를 신속하게 해결하는 것이 중요한데, Go는 비즈니스 문제를 신속하게 해결하는 데 잘 어울린다. 필요한 경우 애플리케이션의 일부를 마이크로 서비스로 가져올 수 있고, 제대로 디자인될 경우 Go와 다른 백엔드 언어를 결합해 경쟁력 있는 제품과 결과를 얻을 수 있다. IT프로포털이 소개한 Go를 선택해야 하는 이유에 대해 알아보자.
Go의 7가지 장점
1. Go는 초보자 친화적이며 배우기 쉽다.
Go는 초기 학습 곡선이 완만하고 자바(Java), C, C++ 또는파이썬을 비교적 처음 사용하는 사용자도 Go 구문을 빠르게 파악해 활용할 수 있다. 클래스, 상속 지원, 예외 및 주석이 없어 코드를 쉽게 변경할 수 있으며, GoDoc 유틸리티를 활용해 코드를 문서화하는 거싱 편리하다.
2. 다양한 라이브러리를 사용할 수 있다.
Go는 개발된 지 10년이 넘으며 Go용으로 구현된 다양한 개방형 소스 코드와 라이브러리 배열 누적되었다. 이를 깃허브(GitHub)에서 확인할 수 있다. 많은 과제에 대해 이미 만들어진 솔루션을 찾을 수 있으며 다양한 통합이 있다. Go의 표준 라이브러리는 다른 언어에 비해 많이 부족하지만, 그럼에도 웹 서버 및 테스트 제품군을 비롯한 많은 유용한 도구가 포함되어있다.
3. 이동 효율성 - 명령 컴파일 및 실행 속도가 빠르다
Go는 C/C++보다 훨씬 빠른 컴파일 속도를 가진다. 또 이진 파일로 컴파일되고 자바와 같은 가상 시스템이 필요하지 않다는 장점이 있다. Go는 교차 플랫폼 언어로 Windows, Linux, macOS 등 모든 플랫폼에서 개발할 수 있다.
Go는 가장 빠르고 효율적인 프로그래밍 언어 중 하나로 워크로드를 처리하는 방식은 PNP, Node.js 루비(Ruby) 등 인터프리터 언어와 비교할 수 없을 정도이다.
4. Go 루틴은 매우 가볍다.
수 메가바이트를 사용하는 자바 스트림에 비해 Go는 문자 그대로 '검색할 수 없다'. 이는 시스템 자원을 상당히 절약하며 Golang 런타임은 수천 개의 Go 루틴을 동시에 실행할 수 있게 한다. 동시에 인프라 유지 보수 비용도 저렴해 호스팅 비용이 저렴하다.
5. 백엔드와 통합이 쉽다.
현재 진행중인 프로젝트를 Go에서 처음부터 재작성하는 것은 비용과 시간이 많이 드는 일일 것이다. 그런데 현재 프로젝트에 Go-백엔드를 통합하면 이러한 시간을 절약할 수 있다. 예를 들어 대용량 PHP 프로그램에 새로운 Go 서비스를 추가하고 두가지를 잘 통합해 사용할 수 있다. 자바, 파이썬 및 기타 백엔드 언어와 통합도 마찬가지이며 Go에 PostgreSQL, MySQL, RabbitMQ, Redis, GraphQL 등 다양한 라이브러리를 통합할 수 있다.
6. 마이크로서비스 아키텍처 구현이 편리하다.
오늘날 대규모 프로젝트에서 마이크로서비스 아키텍처 접근 방식이 인기 있다. 최신 응용 프로그램에는 데이터베이스, 캐시, 검색 엔진, 메시지 대기열 등 많은 외부 서비스가 포함되어있다. 개발자는 미래를 예측해 복잡한 프로젝트를 특정 비즈니스 요구를 충족하는 소규모 프로젝트로 분해한다. 고객은 일부 최종 제품을 특정 사용에게 제공할 수 있으며, 때로는 제3자에게 판매할 수도 있다.
Go는 향후 발전시키는 데 아주 좋다. 비동기 입출력을 사용해 응용 프로그램이 웹 요청을 차단하지 않고 원하는 수의 서비스와 상호작용할 수 있으며 GRPC 프로토콜을 통해 마이크로 서비스들이 서로 원활하게 통신할 수 있다.
7. 광범위한 응용 프로그램을 가진다.
Go에는 대량의 데이터를 처리할 수 있는 (동시) 다중 스레딩 기능이 내장되어 있다. 예를 들어 전자 메일 뉴스레터 및 알림을 만들 대 이와 관련한 웹 서비스 관련 모든 사항을 Go에서 구현하기 쉽다.
Go를 사용하기 적합하지 않은 분야
지금까지 Go를 배워야 하는 7가지 이유를 알아보았다. 그런데 반대로 Go를 사용하기에 적합하지 않는 분야에는 어떤 것이 있을까? Go에서 GUI 인터페이스 구현을 위한 오픈소스 라이브러리를 찾을 수 있을 것이다. 하지만 데스트탑 GUI 애플리케이션은 작성하지 않는 것이 좋다. Go는 웹상의 문제를 해결하기 위해 만들어졌으며 대부분의 Go 애플리케이션은 명령 줄 또는 네트워크 서비스이다.
[저작권자ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]