본문 바로가기

Golang/etc

go init()

728x90
반응형

프로젝트 하면서 배우게 된 사항들은 까먹지 않고 다시 정리하는 습관을 들이려한다. 

 

첫번째.

init() 함수

 

- main을 호출함과 동시에 무조건 호출되는 함수

 

main에서 따로 선언하지 않아도 알아서 호출된다. 

 

func init() {
	fmt.Println("init func called..")
}

func main() {
	fmt.Println("main func called..")
}

분명 main에서 따로 호출하지 않았지만 실행되는 동시에 함수가 호출된 것을 볼 수 있다. 

 

그럼 이 함수를 어디에 사용하는가. 

내가 하고 있는 프로젝트에서는 config파일 읽어올때 주로 쓴다. 

 

func init() {
	if len(os.Args) == 2 {
		configFile = os.Args[1]
	} else {
		if filename, err := config.GetEnvConfigFile(EnvConfig, ServiceConfig); err != nil {
			panic("config file is not found")
		} else {
			configFile = filename
		}
	}
}

 

다음 포스팅에서 쓰겠지만 이런식으로 main 실행전 config 파일을 불러올때 사용한다. 

 

728x90
반응형

'Golang > etc' 카테고리의 다른 글

tcp/ip -02,03  (0) 2022.06.27
tcp/ip - 01  (0) 2022.06.22
Golang Apple Login (애플 로그인)  (0) 2022.06.14
Apple 로그인 JWT, JWK  (1) 2022.06.14
golang .env 파일 환경변수 셋팅  (0) 2022.04.13