
Go 프로그래밍의 첫 단추, 왜 변수와 상수를 제대로 알아야 할까요?
열심히 코드를 작성했는데, 화면에 “undefined”라는 메시지가 뜨거나 컴파일 에러가 발생해서 당황한 적이 있으신가요? 분명히 값을 넣었는데 프로그램은 그 값을 기억하지 못하고 있거나, 상수로 선언한 값을 바꾸려고 시도하다가 오류를 만나는 상황은 입문자라면 누구나 겪는 일이에요.
Go(Golang) 언어는 매우 엄격하고 명확한 규칙을 가지고 있어요. 이는 대규모 프로젝트에서도 코드의 안정성을 유지하기 위한 설계 방식이지만, 처음 배우는 입장에서는 마치 넘어야 할 높은 벽처럼 느껴질 수 있어요. 변수와 상수를 다루는 방식이 꼬이면 이후에 배우게 될 자료형, 함수, 구조체 활용 단계에서 계속해서 발목을 잡히게 된답니다.
단순히 값을 저장하는 공간이라고 이해하는 수준을 넘어, 메모리를 어떻게 효율적으로 사용하고, 어떤 상황에서 값을 고정해야 프로그램이 안전해지는지를 아는 것이 실력 있는 개발자로 성장하는 핵심이에요. 이 글을 끝까지 읽으시면 더 이상 변수 선언 때문에 헤매지 않고, 상황에 맞는 적절한 도구를 선택할 수 있는 눈을 갖게 될 거예요.
이번 튜토리얼에서는 다음과 같은 내용을 중점적으로 다룰게요.
- 변수와 상수의 근본적인 차이점과 선언 방법
- Go 언어만의 독특한 단축 선언 방식(Short Variable Declaration) 활용법
- 실무에서 자주 마주치는 타입 추론과 제로 값(Zero Value)의 비밀
- 흔히 저지르는 실수들과 이를 방지하는 안전한 코딩 습관
실전 코딩 전 반드시 챙겨야 할 기초 지식과 준비물
본격적으로 코드를 치기 전에, 우리가 무엇을 가지고 무엇을 결정해야 하는지 정리해 볼게요. Go는 정적 타입 언어이기 때문에, 우리가 데이터를 다루기 전에 데이터의 성격(Type)을 미리 정의하는 과정이 매우 중요해요.
1. 개발 환경 준비하기
가장 먼저 Go 언어가 설치되어 있어야 해요. 터미널에서 go version을 입력했을 때 버전 정보가 정상적으로 출력된다면 준비는 끝났어요. 코드를 작성할 도구로는 Visual Studio Code(VS Code)에 Go 확장 프로그램을 설치해서 사용하는 것을 강력하게 추천드려요. 자동 완성 기능이 변수 선언 오류를 미리 잡아주거든요.
2. 핵심 개념 비교해 보기
변수와 상수는 비슷해 보이지만 용도가 완전히 달라요. 아래 표를 통해 그 차이를 명확히 구분해 보세요.
| 구분 항목 | 변수 (Variable) | 상수 (Constant) |
|---|---|---|
| 값의 변경 가능성 | 언제든 변경 가능 | 한 번 정하면 변경 불가 |
| 주요 용도 | 사용자 입력, 계산 결과 저장 | 설정값, 수학적 상수(Pi 등) |
| 선언 키워드 | var 또는 := | const |
| 메모리 할당 시점 | 런타임에 유연하게 관리 | 컴파일 타임에 결정 |
Go에서 변수를 선언할 때는 반드시 타입(Type)을 고려해야 해요. 정수(int), 실수(float64), 문자열(string), 불리언(bool) 중 어떤 것을 사용할지 결정하는 것이 프로그래밍의 시작이에요.
이 차이를 이해하지 못한 채 모든 값을 변수로만 처리하면, 프로그램 중간에 실수로 중요한 설정값이 바뀌어 버리는 대형 사고가 날 수 있어요. 반대로 모든 것을 상수로 만들려고 하면 프로그램이 유연하게 동작하지 못하겠죠? 이제 이 개념을 바탕으로 실제 코드를 작성하는 단계로 넘어가 볼게요.
단계별로 따라 하는 Go 변수와 상수 실전 구현
이제 이론은 충분해요. 직접 코드를 작성하며 몸으로 익히는 것이 가장 빨라요. Go의 변수 선언 방식은 크게 세 가지로 나뉘는데, 각각의 사용 시점이 다르답니다.
STEP 1. 정석적인 변수 선언 (var 키워드)
가장 기본이 되는 방식은 var 키워드를 사용하는 것이에요. 이 방식은 변수의 이름과 타입을 명확하게 명시할 수 있어서 코드의 가독성을 높여줘요.
예를 들어, 사용자의 나이를 저장하는 변수를 만든다면 이렇게 작성해요.
var age int = 25
위 코드에서 age는 변수의 이름이고, int는 정수형이라는 타입을 의미해요. 전역 변수(Global Variable)를 선언할 때는 반드시 이 var 방식을 사용해야 한다는 점을 꼭 기억하세요!
STEP 2. 똑똑한 단축 선언 (:= 연산자)
Go 개발자들이 가장 사랑하는 방식은 바로 := 연산자예요. 이 방식은 타입을 일일이 적지 않아도 Go가 알아서
자주 하는 실수와 해결법 + FAQ
코드를 짜다 보면 분명히 맞게 쓴 것 같은데 오류가 나서 답답할 때가 있죠? 입문자들이 가장 많이 하는 실수들을 정리해 드릴게요.
자주 하는 실수와 해결법
- ❌ 사용하지 않은 변수 오류
→ Go는 선언만 하고 사용하지 않는 변수가 있으면 컴파일 자체를 거부해요.
성공적인 Go 개발을 위한 마무리 요약
오늘 우리는 Go 프로그래밍의 가장 기초이자 핵심인 변수와 상수의 활용법을 깊이 있게 살펴보았어요. 처음에는 엄격한 규칙이 까다롭게 느껴질 수 있지만, 이 규칙들이 결국 여러분의 코드를 더 단단하고 안전하게 만들어준다는 사실을 잊지 마세요.
✅ 핵심 요약- 상수는
const로 선언하며, 프로그램 실행 중 절대 변경할 수 없어요. - 변수는
var나:=를 사용하여 선언하고 언제든 값을 바꿀 수 있어요. :=연산자는 함수 내부에서만 쓸 수 있는 아주 편리한 단축 선언법이에요.- 선언만 하고 사용하지 않는 변수는 Go에서 허용되지 않으니 주의하세요.
- 모든 변수는 선언 시 값이 없으면 타입별 제로 값으로 자동 초기화돼요.
- 변수 이름의 첫 글자가 대문자인지 소문자인지에 따라 접근 권한이 결정돼요.
오늘 배운 내용을 바탕으로 다음 단계로 나아가 볼까요? 지금 바로 아래 미션을 실행해 보세요!
- 오늘 할 일: VS Code를 켜고 위 예제 코드를 직접 타이핑해서 실행해 보기
- 이번 주 할 일: 다양한 데이터 타입(int, float, string, bool)을 섞어서 간단한 계산기 프로그램 만들어 보기
- 실행 직전 할 일: 변수 이름의 대소문자 규칙이 패키지 접근성에 어떤 영향을 주는지 다시 한번 복습하기
실무에서 바로 사용할 수 있는 변수 관리 노하우가 더 궁금하다면, 실무 체크리스트를 저장해 배포 전에 활용해 보세요. 여러분의 코드가 더욱 완벽해질 거예요.
관련해서 더 깊이 있는 내용이 궁금하다면 Go 변수와 상수 완전 가이드 글도 함께 읽어보시길 권장해요.
- 상수는