핵심 요약
- 한 엔지니어가 2주 만에 Go 언어를 익혀 실무와 사이드 프로젝트에 적극 도입하게 된 경험을 공유했습니다.
- 약 50페이지 수준의 단순한 언어 스펙과 막강한 기본 도구, 빠른 컴파일 속도 덕분에 클라우드 인프라의 표준 언어로 자리 잡았습니다.
- 외부 패키지에 과도하게 의존하는 대신 탄탄한 표준 라이브러리와 보수적인 의존성 철학을 갖춘 점이 핵심 경쟁력으로 꼽힙니다.
요약 엔지니어 벤 호이트(Ben Hoyt)가 기존에 다른 언어를 사용하던 개발자들을 위해 Go 언어의 매력과 핵심 특징을 정리해 화제를 모았습니다. 작성자는 과거 자신의 사이드 프로젝트 서버를 파이썬에서 Go로 포팅하면서 본격적으로 언어를 익혔는데, 출퇴근 버스 안에서 약 2주 정도 공부한 것만으로도 기본기를 익히고 포팅을 마칠 수 있었다고 회고했습니다. 이후 현재 직장인 Compass에서도 전체 200여 개 서비스 중 절반 가까이가 Go로 작성될 만큼 실무에서도 폭넓게 활용되고 있습니다.
작성자가 꼽은 Go의 가장 큰 장점은 '단순함'과 '강력한 기본 도구(Tooling)'입니다. 자바(Java) 언어 명세서가 770페이지에 달하는 것에 비해 Go 언어 명세서는 약 50페이지에 불과해 C 언어처럼 작고 단순하며, 배우고 가르치기 매우 쉽습니다. 또한 고루틴(goroutine)과 채널(channel)을 통한 뛰어난 동시성 처리, 빠른 컴파일 속도, 튜닝이 필요 없는 저지연 가비지 컬렉션, 네이티브 바이너리 빌드 등의 장점이 있습니다. 특히 고(Go)의 공동 창립자인 롭 파이크는 'Go는 C++ 빌드를 기다리다 지쳐서 구상한 언어'라는 농담을 남겼을 정도로 컴파일 속도에 각별한 신경을 썼습니다.
또한 Go는 파이썬처럼 '배터리 포함(batteries included)' 철학을 따르는 고품질의 표준 라이브러리를 갖추고 있어 외부 라이브러리 없이도 즉시 프로덕션 수준의 서버나 CLI 도구를 만들 수 있습니다. 무수한 npm 패키지를 무분별하게 끌어다 쓰는 자바스크립트 생태계와 달리, Go 생태계는 '약간의 복사가 사소한 의존성보다 낫다'는 철학 아래 외부 의존성 추가에 매우 보수적입니다. 도커(Docker)나 쿠버네티스(Kubernetes) 같은 대표적인 클라우드 도구들이 모두 Go로 작성되었으며, 안정적인 하위 호환성 덕분에 수많은 개발자들에게 높은 인기를 얻고 있습니다.
Sponsored · 광고