서버를 여러 대로 늘리고 트래픽을 견뎌야 하는 시대에, 구글은 "빠르고 단순하면서 동시성에 강한" 언어를 원했습니다. 그렇게 태어난 것이 Go(고)입니다. 도커, 쿠버네티스 같은 핵심 인프라 도구들이 Go로 만들어졌다는 사실만으로도 그 위상을 알 수 있습니다.

무엇이 매력인가

Go는 문법이 의도적으로 작고 단순합니다. 배울 게 적어서 며칠이면 기본기를 익힐 수 있고, 컴파일이 빠르며, 결과물이 의존성 없는 단일 실행 파일로 나와 배포가 편합니다.

동시성이 쉽다

package main

import "fmt"

func main() {
    // 고루틴: 가볍게 동시 작업을 띄운다
    go fmt.Println("백그라운드에서 실행")
    fmt.Println("메인에서 실행")
}

go 한 단어로 동시 작업(고루틴)을 띄울 수 있습니다. 수천 개를 띄워도 가벼워서, 대량 요청을 처리하는 서버에 특히 잘 맞습니다.

입문자를 위한 팁

  • "이렇게 하는 게 Go답다"는 관례가 뚜렷합니다. gofmt로 코드 스타일을 자동 통일하세요.
  • 에러를 값으로 다루는 방식(if err != nil)이 처음에는 번거롭지만, 오히려 명시적이라 안전합니다.
  • 클라우드, 백엔드, DevOps 분야로 가고 싶다면 투자 대비 효율이 아주 좋은 언어입니다.

화려한 기능은 없지만, 그 "없음"이 곧 강점인 흔치 않은 언어입니다.

어떤 프로젝트에 잘 맞나

Go는 특히 여러 요청을 동시에 처리하는 서버, API 게이트웨이, CLI 도구, 클라우드 인프라 도구를 만들 때 빛납니다. 컴파일 결과가 의존성 없는 단일 실행 파일이라 배포가 단순하고, 컨테이너 이미지도 가볍게 만들 수 있어 마이크로서비스 환경과 궁합이 좋습니다.

배우는 순서

기본 문법은 하루 이틀이면 훑을 수 있을 만큼 작습니다. 그다음 고루틴과 채널로 동시성을 다루는 법, 에러를 값으로 처리하는 관례, 표준 라이브러리로 간단한 웹 서버를 띄우는 것까지 해보면 실무 감각이 잡힙니다. '적게 배워서 많이 만든다'는 말이 잘 어울리는 언어라, 투자 대비 효율을 중시하는 사람에게 특히 추천합니다.