PHpullh
학습 라이브러리/Go/패키지 초기화와 사이드 이펙트 import

GO · 기초 문법

패키지 초기화와 사이드 이펙트 import

import _ "pkg"로 패키지의 init()만 실행합니다. 데이터베이스 드라이버 등록에 흔히 사용됩니다.

기초 문법중급importblank-importinitside-effect

핵심 설명

import _ "pkg"로 패키지의 init()만 실행합니다. 데이터베이스 드라이버 등록에 흔히 사용됩니다.

Go code

package main

import (
	"fmt"
	// 사이드 이펙트 import 예시:
	// _ "github.com/lib/pq"             // PostgreSQL 드라이버 등록
	// _ "image/png"                       // PNG 디코더 등록
	// _ "net/http/pprof"                  // pprof 핸들러 등록
)

// 별칭 import
// import (
//     chi "github.com/go-chi/chi/v5"   // 별칭
//     . "math"                          // 도트 import (비권장)
// )

func main() {
	fmt.Println("사이드 이펙트 import: init()만 실행")
	fmt.Println("  _ "database/sql/driver" → 드라이버 등록")
	fmt.Println("  _ "image/png"           → 포맷 등록")
	fmt.Println("  _ "net/http/pprof"      → 프로파일링")
}

학습 팁

사이드 이펙트 import는 init()에서 sql.Register()image.RegisterFormat() 등을 호출하여 전역 등록을 수행합니다.

주의할 점

도트 import(. "math")는 네임스페이스 오염을 일으키므로 테스트 파일 외에는 사용하지 마세요.

자주 묻는 질문

패키지 초기화와 사이드 이펙트 import란 무엇인가요?

import _ "pkg" 로 패키지의 init() 만 실행합니다. 데이터베이스 드라이버 등록에 흔히 사용됩니다.

패키지 초기화와 사이드 이펙트 import 학습 시 주의할 점은 무엇인가요?

도트 import( . "math" )는 네임스페이스 오염을 일으키므로 테스트 파일 외에는 사용하지 마세요.