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 modulego.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 buildsgo 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 tidygo 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 committingSemver를 사용한 모듈 버전 관리
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.1go 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 dependenciesreplace 지시문
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.0go 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=directgo 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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 패키지: Go 코드 구성
- go mod를 사용한 Go 모듈
- 외부 의존성 추가
- 내부 패키지와 워크스페이스