20241223

Go 도구 및 명령어 -Golang

Go 명령어

bug         start a bug report

Go 언어의 문제를 보고하기 위한 명령어. 

Go 프로젝트의 공식 GitHub 저장소에 버그 리포트를 시작할 수 있는 템플릿 웹페이지를 엽니다.

사용방법: go bug

               웹페이지가 열리고, 버그리포트 할수 있슴.


build       compile packages and dependencies

패키지와 그 의존성을 컴파일하여 실행 파일을 생성.

현재 디렉토리에, 실행파일(바이너리) 생성됨.

사용방법: go build [패키지]

               go build main.go

clean       remove object files and cached files

컴파일된 객체 파일 및 캐시 파일을 삭제

-cache: 빌드 캐시 삭제.

-testcache: 테스트 캐시 삭제.

사용방법: go clean


doc         show documentation for package or symbol

패키지나 심볼에 대한 문서를 표시(궁금하면 도움말을 검색할수 있는 기능)

사용방법: go doc [패키지 또는 심볼]

               go doc fmt.Println  //fmt.Println 관련 설명 도움말이 표시됩니다.

env         print Go environment information

현재 Go 환경 변수 값을 출력

- 여러 환경 변수 리스트가 출력됨.

사용방법: go env


fix         update packages to use new APIs
코드를 최신 API로 업데이트
사용방법: go fix [패키지]

fmt         gofmt (reformat) package sources

Go 코드를 포맷. 코드 스타일을 일관되게 유지할 때 사용

- 들여쓰기 및 공백 정리

- 불필요한 괄호 제거

- 코드 스타일 일관성 유지

사용방법: go fmt [패키지]

               go fmt hello.go   컴파일 전에 한번 실행해주면, 코드가 정리되서 아주 좋음.

               go fmt ./...      현재 디렉토리의 모든 Go 파일을 포맷팅 방법


generate    generate Go files by processing source

주석에 포함된 명령을 처리하여 Go 소스 파일을 생성

사용방법: go generate [패키지]

               주석 //go:generate를 포함한 명령을 실행


get         add dependencies to current module and install them

현재 모듈에 의존성을 추가하거나, 외부 패키지를 다운로드

사용방법: go get [패키지]

               go get github.com/aaaa/bbbb

install     compile and install packages and dependencies

패키지를 컴파일하고, 실행 파일을 설치 경로에 복사

설치버젼 만드는 방법임.

사용방법: go install [패키지]


list        list packages or modules

패키지 또는 모듈 목록을 표시

사용방법: go list [패키지]


mod         module maintenance

Go 모듈 관리 명령어. 모듈 초기화, 정리 등을 수행

사용예제: go mod init [모듈 이름]

               go mod tidy


work        workspace maintenance

워크스페이스(workspace)를 관리하기 위한 명령어

워크스페이스는 여러 모듈을 한꺼번에 관리하고 개발 환경에서 함께 작업할 수 있도록 설정을 제공

-워크스페이스를 사용하면 모듈을 통합 관리할 수 있슴.

-여러 모듈을 별도의 리포지토리로 관리하지 않고, 하나의 워크스페이스에서 개발 가능

-워크스페이스 내에서 모듈 간 변경사항을 실시간으로 반영 가능

-모든 모듈을 한 번에 테스트 가능

여러 모듈을 동시에 개발하거나, 모듈 간 의존성을 더 쉽게 처리하려는 경우에 유용

워크스페이스는 go.work 파일로 정의되며, 워크스페이스에 포함된 모듈 경로와 Go 환경을 정의함.

워크스페이스는 주로 로컬 개발 환경에서 사용되며, 배포 시에는 각 모듈을 독립적으로 관리해야함.

사용방법:

                 go work init [모듈 경로...]

                 go work init ./module1 ./module2

                 ./module1./module2가 포함된 워크스페이스가 생성됨.

                 새로운 워크스페이스를 초기화하고, 현재 디렉토리에 go.work 파일을 생성


                 go work use [모듈 경로...]

                 go work use ./module3

               ./module3이 워크스페이스에 추가됨.

                 기존 워크스페이스에 새로운 모듈을 추가됨.

                 go work drop [모듈 경로...]
                 워크스페이스에서 특정 모듈을 제거함.
                 go work drop ./module2
                 ./module2이 워크스페이스에서 제거됨.

                 go work edit [옵션]
                 go work edit -fmt
                go.work 파일의 포맷이 자동으로 정리
                go.work 파일을 수동으로 편집하지 않고 명령어를 통해 수정할 수 있슴.

               go work sync
                 워크스페이스 내 모듈의 상태를 동기화함.
                 워크스페이스 내 모든 모듈이 올바르게 동작하도록 의존성을 조정함.

run         compile and run Go program

Go 코드를 컴파일하고 실행

주로 테스트에 사용함. 임시로 컴파일하고 실행되고, 종료시 지워짐.

사용방법: go run main.go


test        test packages

Go 테스트 파일(*_test.go)을 실행

사용방법: go test [패키지]


tool        run specified go tool

Go에서 제공하는 특정 도구를 실행

사용방법: go tool [도구 이름]


version     print Go version

현재 설치된 Go의 버전을 출력

사용방법: go version


vet         report likely mistakes in packages

코드를 분석하여 잠재적인 문제를 보고함
사용방법: go vet [패키지]


추가 도움말:

buildconstraint      build constraints
특정 조건에서만 파일을 빌드하도록 제어하는 주석 구문
실행 예제: // +build windows

buildmode       build modes
Go 프로그램 빌드 시 사용할 빌드 모드를 지정

c               calling between Go and C
C와 Go 간의 호출(cgo)에 대한 설명

cache           build and test caching
빌드 및 테스트 캐싱 동작에 대한 설명

environment     environment variables
Go와 관련된 환경 변수 정보

filetype        file types
Go 파일의 유형에 대한 설명

go.mod          the go.mod file
Go 모듈 정의 파일의 역할과 사용법

gopath          GOPATH environment variable
GOPATH의 구조와 사용법

goproxy         module proxy protocol
모듈 프록시 설정에 대한 정보

importpath      import path syntax
패키지를 임포트하는 경로 구문

modules         modules, module versions, and more
Go 모듈의 구조와 사용법

module-auth     module authentication using go.sum
go.sum 파일을 통한 모듈 인증 방법

packages        package lists and patterns
패키지 목록과 패턴

private         configuration for downloading non-public code
비공개 코드를 다운로드하는 설정

testflag        testing flags
테스트 시 사용할 플래그 설명

testfunc        testing functions
테스트 함수 작성법

vcs             controlling version control with GOVCS
GOVCS로 버전 제어 관리