Go init 함수 남발은 코드 흐름을 망친다
페이지 정보

영삼이
본문
✅ init 함수 남발은 코드 흐름을 망친다
자동 실행된다는 건 추적이 어렵다는 뜻이다
Go에선 init()
함수를 파일마다 정의할 수 있고,
패키지 로딩 시 자동 실행된다:
func init() {
log.Println("패키지 초기화")
}
❌ 문제 상황
-
init()
이 여러 파일에 흩어져 있으면 -
실행 순서를 예측하기 어려움
-
사이드 이펙트 발생 시 디버깅 어려움 극대화
✅ 언제 써야 할까?
-
단순한 상수 초기화
-
패키지 스코프 내 기본 설정
그 외에는 init()
대신 명시적 초기화 함수 사용 권장:
func InitConfig() {
// 명확한 호출 위치
}
✔️ 자동은 편하지만 흐름이 안 보인다.
init
은 최소화하고, 명시적인 초기화가 유지보수에 강하다.
- 이전글panic/recover는 예외 처리용이 아니다 25.03.28
- 다음글map은 쓰레드 세이프하지 않다 25.03.28
댓글목록
등록된 댓글이 없습니다.