피드로 돌아가기
Go do zero: var vs :=
Dev.toDev.to
Backend

Go 언어의 var와 := 선언 방식에 따른 스코프 및 타입 추론 최적화 전략

Go do zero: var vs :=

Renato O da Silva2026년 5월 2일5beginner

Context

Go 언어 내 변수 선언 방식의 차이로 인한 컴파일 에러 및 런타임 Shadowing 문제 발생 가능성 존재. 특히 Package level과 Function level의 선언 제약 사항에 따른 코드 일관성 확보가 필요함.

Technical Solution

  • Package level 선언 제약에 따른 var 키워드 강제 사용 및 global state 관리
  • Short variable declaration(:=)을 통한 타입 추론 및 함수 내 보일러플레이트 코드 제거
  • Zero value 할당을 통한 불필요한 메모리 할당 방지 및 var 선언 활용
  • Redeclaration 규칙(최소 하나 이상의 신규 변수 필요)을 통한 에러 핸들링 패턴 최적화
  • Blank identifier(_) 도입을 통한 미사용 변수 컴파일 에러 해결 및 리소스 낭비 방지
  • Nested scope 내 Shadowing 발생 기전을 파악하여 변수 오염 방지 설계

- Package level 변수는 반드시 var 사용 - 명시적 Zero value(nil slice 등)가 필요한 경우 var 선언 활용 - 함수 내 리턴 값 수신 및 지역 변수 선언 시 := 사용 - 중첩 블록 내 동일 변수명 사용 시 Shadowing 발생 여부 검토 - 사용하지 않는 리턴 값은 _로 처리하여 컴파일 최적화

원문 읽기