개발 지식

개발 지식

Go init 함수 남발은 코드 흐름을 망친다

페이지 정보

profile_image
영삼이
0건 102회 25-03-28 15:07

본문

✅ init 함수 남발은 코드 흐름을 망친다

자동 실행된다는 건 추적이 어렵다는 뜻이다

Go에선 init() 함수를 파일마다 정의할 수 있고,
패키지 로딩 시 자동 실행된다:

func init() {
	log.Println("패키지 초기화")
}

❌ 문제 상황

  • init()이 여러 파일에 흩어져 있으면

  • 실행 순서를 예측하기 어려움

  • 사이드 이펙트 발생 시 디버깅 어려움 극대화


✅ 언제 써야 할까?

  • 단순한 상수 초기화

  • 패키지 스코프 내 기본 설정

그 외에는 init() 대신 명시적 초기화 함수 사용 권장:

func InitConfig() {
	// 명확한 호출 위치
}

✔️ 자동은 편하지만 흐름이 안 보인다.
init은 최소화하고, 명시적인 초기화가 유지보수에 강하다.

댓글목록

등록된 댓글이 없습니다.