[Go] get 명령어 정리
2021. 4. 14. 11:42ㆍProgramming Language/Go
반응형
■ get 명령어 정의
GO 언어에서 사용하는 get 명령어는 자신의 프로젝트에서 기본적으로 제공하는 패키지를 제외하고 사용하고 싶은 외부 패키지를 불러와서 사용할 수 있도록 해주는 명령어이다.
!!! 확인
해당 작업은 Go가 설치 되어 있다는 가정하에 진행된다.
설치가 안되어있는경우 아래 페이지에서 확인하길 바란다.
■ 작업 과정
1. GOPATH 정의
GOPATH는 자신의 프로젝트 루트 경로이며, 기본적으로 3개의 폴더를 갖는다.
- src : 외부 패키지의 소스 및 자신의 프로젝트가 저장될 위치
- pkg : 외부 패키지의 컴파일이 끝난 오브젝트 파일들이 저장될 위치
- bin : 실행파일, 바이너리 파일들이 저장될 위치
2. GOPATH 확인
GOPATH는 외부 패키지를 활용하여 자신의 프로젝트를 진행할 위치가 된다.
따라서 자신의 GOPATH를 확인하고 진행한다.
2.1 go env 명령어로 GOPATH의 경로를 확인하는 방법
- 커멘드(cmd)창 실행
- go env 명령어 입력
2.2 시스템 변수로 확인하는 방법
- [제어판 > 모든 제어판 항목 > 시스템] 경로 이동
- 고급 시스템 설정 클릭
- 시스템 속성창
- 고급 탭으로 이동
- 환경 변수 버튼 클릭
- 사용자 변수 GOPATH 편집 또는 없을 경우 새로만들기 버튼 클릭
- GOPATH 변수 값 확인 또는 변경 가능
- 확인 버튼 클릭
3. get 명령어로 외부 패키지 활용
3.1 개인 프로젝트의 루트 경로로 이동
- 커멘드(cmd)창 실행
- GOPATH 경로로 이동
3.2 GO111MODULE 설정값 확인 또는 변경
3.2.1 GO111MODULE 정의
- on : 루트 경로의 src 폴더에 외부 패키지 소스 파일 생성 안됨, pkg 폴더에 외부 컴파일된 파일 생성됨
- off : 루트 경로의 src 폴더에 외부 패키지 소스 파일 생성 됨, pkg 폴더에 외부 컴파일된 파일 생성됨
- auto : on/off를 자동으로 설정됨
3.2.2 GO111MODULE 확인
- 커멘드(cmd)창 실행
- [go env] 명령어 입력
공백이라고 해서 off 라고 확정할 수 없다. 따라서 정확하게 작업하기 위해서
3.2.1 GO111MODULE 정의를 참조 하여 지정하고 작업을 진행하길 바란다.
3.2.3 GO111MODULE 수정
go env 의 환경 설정은 커멘드창이 실행되고 있는 동안에 유지되는
일회성 환경 설정과 커멘드창이 종료되어도 설정이 유지되는 영구 환경 설정이 있다.
영구 환경 설정이라고해서 수정이 불가능 한것이 아니니 걱정하지 않아도 된다.
- 커멘드(cmd) 창 실행
- 일회성 환경 설정 : [set GO111MODULE= (on 또는 off 또는 auto )] 입력
- 영구 환경 설정 : [go env -w GO111MODULE= (on 또는 off 또는 auto)] 입력
3.2.3.1 일회성 환경 설정
명령어 : set GO111MODULE= (on 또는 off 또는 auto)
3.2.3.2 영구 환경 설정
명령어 : go env -w GO111MODULE =(on 또는 off 또는 auto)
3.3 get 명령어 실행
- GO111MODULE 설정값 확인. (필자의 경우 src와 pkg 를 생성하기 위해 off로 설정)
- 설치하고자 하는 외부 패키지 지정(필자의 경우 gin 프레임워크를 설치하고자 한다.)
- go get [외부 패키지] 입력 (get 명령어는 부가 옵션 [-u, -d 등] 여러개가 있지만 필자는 사용하지 않는다.)
- GOPATH/src 또는 GOPATH/pkg 에서 설치된 외부 패키지 확인
3.3.1 GOPATH/src 폴더 확인
3.3.2 GOPATH/pkg 폴더 확인
반응형
'Programming Language > Go' 카테고리의 다른 글
[Go] 로그 파일로 로그 관리 (0) | 2021.10.19 |
---|---|
[Go] Google Gmail SMTP 설정 방법 및 메일 전송 (5) | 2021.09.15 |
[Go] Go 언어 함수(func) & 메소드(Method) 정리 (0) | 2021.01.18 |
[Go] Go 언어 구조체(Struct) 정리 (0) | 2021.01.17 |
[Go] Go 언어 맵(Map) 정리 (0) | 2021.01.16 |