GOROOT와 GOPATH란 무엇인가.

2 minute read

GOROOT

  • GOROOT는 Go 언어의 설치 디렉토리를 가리키는 환경 변수입니다. Go 컴파일러, 표준 라이브러리, 도구 등이 이 디렉토리에 위치합니다.
  • 일반적으로 Go를 설치하면 GOROOT는 자동으로 설정되며, 사용자가 직접 변경할 필요는 없습니다.
  • 예를 들어, Go가 /usr/local/go에 설치되어 있다면 GOROOT는 다음과 같이 설정됩니다:
    export GOROOT=/usr/local/go
    
  • GOROOT는 Go 도구 체인이 Go 표준 라이브러리와 컴파일러를 찾는 데 사용됩니다.
  • Go 1.8 이후로는 GOROOT를 수동으로 설정할 필요가 거의 없으며, Go 설치 시 기본값이 자동으로 사용됩니다.
  • Go 도구 체인은 GOROOT를 사용하여 표준 라이브러리와 도구를 찾습니다.
  • 예를 들어, go build 명령어는 GOROOT에 있는 표준 라이브러리를 참조하여 코드를 컴파일합니다.

GOPATH

  • GOPATH는 Go 작업 공간의 루트 디렉토리를 가리키는 환경 변수입니다. 이 디렉토리는 사용자가 작성한 Go 코드, 외부 패키지, 바이너리 파일 등이 저장되는 위치입니다.
  • GOPATH는 사용자가 직접 설정해야 하며, 일반적으로 홈 디렉토리 아래에 go 디렉토리를 생성하여 설정합니다.
  • 예를 들어, 홈 디렉토리에 go 디렉토리를 생성하고 GOPATH를 설정하려면 다음과 같이 합니다:
    export GOPATH=$HOME/go
    
  • GOPATH는 Go 도구 체인이 사용자 코드와 외부 패키지를 찾는 데 사용됩니다.
  • GOPATH 디렉토리 구조는 다음과 같습니다:
    $GOPATH/
      src/        # Go 소스 파일이 위치하는 디렉토리
      pkg/        # 컴파일된 패키지가 저장되는 디렉토리
      bin/        # 컴파일된 바이너리 파일이 저장되는 디렉토리
    
  • src 디렉토리에는 사용자가 작성한 Go 코드와 외부 패키지가 위치합니다. 예를 들어, github.com/user/project 패키지는 $GOPATH/src/github.com/user/project에 위치합니다.
  • pkg 디렉토리에는 컴파일된 패키지가 저장됩니다. 이는 Go 도구 체인이 패키지를 재사용할 때 사용됩니다.
  • bin 디렉토리에는 컴파일된 바이너리 파일이 저장됩니다. 이 디렉토리는 PATH 환경 변수에 추가하여 어디서든 실행할 수 있도록 설정할 수 있습니다.
  • Go 1.11 이후로는 Go 모듈이 도입되면서 GOPATH의 중요성이 줄어들었지만, 여전히 GOPATH를 이해하는 것은 유용합니다. Go 모듈을 사용할 때는 GOPATH 외부에서도 프로젝트를 관리할 수 있습니다.

Categories:

Updated: