내가 Go를 좋아하는 이유

lu 님의 블로그를 의역/요약한 글입니다


---

몇 주전, 한 인터뷰에서 “Go 언어를 왜 좋아하고 사용하는지 이유를 알려주세요”라는 질문을 받았다. 순간적으로 나는 그동안 수많은 프로젝트를 Go 개발 언어로 진행했음에도 그 이유에 대해 깊게 생각해본 적이 없음을 깨달았다.


그 생각의 결과를 두 가지 관점에 공유하겠다. Ops (운영) 관점과 Dev (개발) 관점이다.


Ops 관점

  • 성능: Go는 준수한 성능을 뽑아내는 개발 언어이다. 서버리스처럼 런타임 시간에 제한이 있는 환경이나 미니멀한 환경에서도 잘 돌아간다. 서버리스 환경에서 런타임 성능은 중요한데 그 이유는 과금이 함수 실행 시간만큼 되기 때문이다. 물론, Rust나 C++ 만큼 효율적이라고 볼 수는 없지만 Python 개발 언어에서 넘어온 나에게 Go 성능은 합리적이다.

  • 크로스-컴필레이션: 다수의 환경과 아키텍처에 손쉽게 배포를 감행할 수 있는 것은 매우 중요하다. 작성하는 서비스를 보면 클라우드, 일반 서버, 노트북, 라즈베리파이 등 여러 환경에서 돌아가야 한다. 특히 Arm64 서버가 제공되기 시작하면서, 내 노트북과 CI 및 클라우드에서 동일하게 잘 작동할 수 있어야 한다.

  • 정적 바이너리와 컨테이너화: 앞서 말한 것처럼, 배포 환경이 다양한데 이 때 자주 사용되는 방식이 컨테이너화 된 앱을 구동하는 것이다. Go 프로그램을 컨테이너화 하는 것은 쉽고 심지어 정적 바이너리 덕분에 상당히 가벼운 이미지 파일로 컨테이너를 구동 시킬 수 있다.

  • 시작 시간: Kubernetes나 AWS ECS 등 컨테이너 오케스트레이션 툴을 사용할 때 컨테이너들이 빠르게 구동되는 것은 중요하다. 이는 롤링 배포나 스케일 아웃 시 직접적인 영향을 미치기 때문이다. 또한, 짧은 시작 시간은 서버리스 환경에서도 더 적은 구동 시간을 뜻한다.


Dev 관점

  • 로우 레벨과 하이 레벨 언어 그 사이 어딘가: Go 개발 언어를 배우기 전, 난 Python으로 개발을 많이 했었다. Python은 하이 레벨 언어다. Go는 좀 더 로우 레벨에 가깝다. 물론 C 언어 만큼은 아니지만 Python과 비교 하자면 그렇다. 이는 딱 적절한 균형이 잡힌 개발 언어인 것 같다. 세세한 디테일을 모두 알 필요 없을 만큼 고차원 적이고 필요할 때는 로우 레벨 코드로 작성할 수 있어서 좋다.

  • 타입 시스템: 이건 지극히 주관적이다. 난 컴파일 타임에 에러를 잡아주는 정적 타이핑을 선호한다. Go 언어는 구조적 타이핑을 지원하고 있는데 나는 이게 일반 타이핑 보다 더 직관적으로 이해하기 편하다.

  • 잘 설계 된 동시성 프로그래밍: Go 언어라고 동시성 프로그래밍이 쉽다는 뜻은 아니다. 동시성 프로그래밍은 어렵다. 다만, Go 개발 언어에서는 gorountines와 channel로 이를 좀 더 쉽게 작성할 수 있게 해준다.

  • 스탠다드 툴: 요즘 나오는 대부분의 개발 언어처럼, Go 언어도 패키지 매니저, 테스트, 빌드, 포맷, 및 벤치마크 툴을 기본적으로 제공해준다.

  • 일관된 코드 작성 방식: Go 언어는 대부분 직관적인 struct 뿐이라서 코드로 잔재주를 부리기 어렵다. 주니어나 시니어나 일관된 코드 작성 방식을 지킬 수 있다.

---

원글: https://lu.sagebl.eu/notes/what-i-like-about-go/

What I like about Go

sagebl.eu

What I like about Go

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 3월 3일 오후 2:58

 • 

저장 96조회 6,364

댓글 1

함께 읽은 게시물

스토리북 9 출시 소식

... 더 보기

Storybook 9

Storybook Blog

Storybook 9



Build a UIKit app with the new design

W

... 더 보기

Build a UIKit app with the new design (feat. WWDC 2025)

iOYES

Build a UIKit app with the new design (feat. WWDC 2025)


《현실세계 접점으로서 오프라인이 갖는 우위》

... 더 보기