0Pricing
Go Academy · 강의

go mod를 사용한 Go 모듈

모듈 초기화, go.mod 및 go.sum

go mod를 사용한 Go 모듈은(는) CoddyKit의 무료 Go Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Go Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Go Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

Go 모듈이란 무엇인가요?

모듈은 루트에 go.mod 파일이 있는 Go 패키지 모음입니다. Go에서 모듈은 코드를 배포하고 버전을 관리하는 단위입니다:

// go.mod — created with: go mod init github.com/myuser/myapp
module github.com/myuser/myapp

go 1.21

require (
    github.com/gin-gonic/gin v1.9.1
    golang.org/x/sync v0.5.0
)

go mod init

go mod init으로 새 모듈을 초기화합니다:

# In project directory:
go mod init github.com/myuser/myapp

# This creates go.mod:
# module github.com/myuser/myapp
# go 1.21

# The module path is the canonical import path prefix
# for all packages in this module

go.sum — 무결성 검증

go.sum에는 모든 의존성의 암호화 체크섬이 기록됩니다. 수동으로 편집하지 마세요. go 명령이 이 파일을 관리합니다:

# go.sum example entries:
github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg=
github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU=

# Commit go.sum to version control — it ensures reproducible builds

go get — 의존성 추가

go get을 사용하여 의존성을 추가하거나 업데이트합니다. 이 명령은 go.mod와 go.sum을 모두 업데이트합니다:

# Add latest version
go get github.com/pkg/errors

# Add specific version
go get github.com/pkg/errors@v0.9.1

# Upgrade to latest patch release
go get -u=patch github.com/pkg/errors

# Remove unused dependency from go.mod
go mod tidy

go mod tidy

go mod tidy는 go.mod와 go.sum에 누락된 요구 사항을 추가하고 사용하지 않는 요구 사항을 제거합니다. 가져오기를 편집한 후 실행하세요:

# After adding/removing imports:
go mod tidy

# What it does:
# 1. Adds any missing module requirements
# 2. Removes requirements for packages no longer imported
# 3. Updates go.sum with needed checksums
# 4. Best practice: run before committing

Semver를 사용한 모듈 버전 관리

Go 모듈은 시맨틱 버전 관리를 사용합니다. 주 버전이 2 이상이면 경로 접미사가 필요합니다:

// v1: github.com/pkg/errors
import "github.com/pkg/errors"

// v2+: module path includes major version
import "github.com/foo/bar/v2"
import "github.com/foo/bar/v3"

// go.mod:
// require github.com/foo/bar/v2 v2.3.1

go mod vendor

벤더 모드는 모든 의존성을 오프라인 빌드를 위해 로컬 vendor/ 디렉터리에 복사합니다:

# Copy deps to vendor/
go mod vendor

# Build using vendor/
go build -mod=vendor ./...

# Useful for:
# - Air-gapped environments
# - Reproducible CI builds without network
# - Code review of dependencies

replace 지시문

go.mod의 replace 지시문은 모듈을 로컬 경로나 다른 버전으로 대체합니다. 로컬 개발에 유용합니다:

module github.com/myapp

go 1.21

require github.com/mylib v1.0.0

// Use local fork during development:
replace github.com/mylib => ../mylib

// Replace with a specific version:
// replace github.com/mylib v1.0.0 => github.com/myfork v1.0.0

go env GOPATH와 GOMODCACHE

Go 모듈의 주요 환경 변수:

# Module cache location (default: ~/go/pkg/mod)
go env GOMODCACHE

# Proxy for downloading modules (default: proxy.golang.org)
go env GOPROXY

# Sum database for checksum verification
go env GONOSUMCHECK

# Disable module proxy (use direct)
export GOPROXY=direct

go list와 go mod graph

다음 명령으로 모듈 의존성을 확인할 수 있습니다:

# List all modules in the build
go list -m all

# Show module dependency graph
go mod graph

# Find which module provides a package
go list -m -json all | grep -A5 gin

# Check for available updates
go list -m -u all

빠른 확인

go mod tidy는 어떤 작업을 수행하나요?

요약: Go 모듈

모듈의 주요 개념:

  • go mod init은 go.mod 파일과 함께 모듈을 생성합니다
  • go.mod에는 모듈 이름, Go 버전 및 의존성이 기록됩니다
  • go.sum에는 체크섬이 저장되므로 커밋해야 합니다
  • go get은 의존성을 추가하거나 업데이트하고, go mod tidy는 정리합니다
  • 로컬 개발용 분기에는 replace를 사용합니다
  • 주 버전 v2 이상에는 경로 접미사가 필요합니다

자주 묻는 질문

“go mod를 사용한 Go 모듈” 강의는 무료인가요?

네 — “go mod를 사용한 Go 모듈” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Go Academy 강의 전체를 잠금 해제할 수 있습니다. Go Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“go mod를 사용한 Go 모듈”에서 뭘 배우나요?

모듈 초기화, go.mod 및 go.sum 브라우저에서 직접 실행하는 실습 코드로 Go Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Go Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Go Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“go mod를 사용한 Go 모듈” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Go Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Go Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 패키지: Go 코드 구성
  2. go mod를 사용한 Go 모듈
  3. 외부 의존성 추가
  4. 내부 패키지와 워크스페이스
← Go Academy(으)로 돌아가기