GO · 기초 문법
초기화 순서와 init 함수
init() 함수는 패키지 초기화 시 자동 실행됩니다. 패키지 변수 초기화 → init() → main() 순서로 실행됩니다.
기초 문법중급initinitializationpackagestartup
핵심 설명
init() 함수는 패키지 초기화 시 자동 실행됩니다. 패키지 변수 초기화 → init() → main() 순서로 실행됩니다.
Go code
package main
import "fmt"
var global = initGlobal()
func initGlobal() int {
fmt.Println("1. 패키지 변수 초기화")
return 42
}
func init() {
fmt.Println("2. init() 실행")
// DB 연결, 설정 로드 등
}
func init() {
// 같은 파일에 여러 init 가능
fmt.Println("3. 두 번째 init() 실행")
}
func main() {
fmt.Println("4. main() 실행")
fmt.Println("global =", global)
}학습 팁
init()은 같은 파일과 패키지에 여러 개 정의할 수 있으며, 파일 내에서는 위에서 아래로, 파일 간에는 파일명 알파벳 순서로 실행됩니다.
주의할 점
init()에서 무거운 작업(네트워크 호출 등)을 수행하면 테스트와 디버깅이 어렵습니다. 의존성 주입을 고려하세요.
자주 묻는 질문
초기화 순서와 init 함수란 무엇인가요?
init() 함수는 패키지 초기화 시 자동 실행됩니다. 패키지 변수 초기화 → init() → main() 순서로 실행됩니다.
초기화 순서와 init 함수 학습 시 주의할 점은 무엇인가요?
init() 에서 무거운 작업(네트워크 호출 등)을 수행하면 테스트와 디버깅이 어렵습니다. 의존성 주입을 고려하세요.
Continue Learning
Go 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.