학습
Go 상수 (Constants)
Go 상수 (Constants) — 초급
상수 (Constants)
1. 도입 (왜 배워야 하는가)
프로그램을 작성할 때, 값이 변하지 않는 데이터가 필요할 때가 많습니다. 이때 사용하는 것이 상수입니다. 상수를 사용함으로써 코드의 가독성을 높이고, 실수로 값을 변경하는 것을 방지할 수 있습니다. 만약 상수를 사용하지 않고 하드코딩된 값을 여러 군데에 사용하면, 나중에 해당 값을 변경해야 할 때 모든 부분을 찾아 수정해야 하는 불편함이 생깁니다. 이는 유지보수를 어렵게 만들고 버그를 유발할 수 있습니다.
2. 핵심 개념 설명
상수는 변하지 않는 값을 의미합니다. Go에서는 const 키워드를 사용하여 상수를 선언합니다. 실생활에서 비유하자면, 상수는 고정된 가격의 상품과 같습니다. 예를 들어, 커피의 가격이 정해져 있다면, 이 가격은 변하지 않기 때문에 상수로 표현할 수 있습니다.
| 용어 | 설명 |
|---|---|
| 상수 (Constant) | 변하지 않는 값을 의미하는 데이터 타입 |
| 변수 (Variable) | 변할 수 있는 값을 의미하는 데이터 타입 |
3. 기본 코드 예제
상수를 선언하고 사용하는 기본적인 예제를 살펴보겠습니다.
package main
import "fmt"
const Pi = 3.14 // 원주율을 상수로 선언
func main() {
radius := 5.0 // 반지름을 변수로 선언
area := Pi radius radius // 원의 면적 계산
fmt.Println("원의 면적은:", area) // 면적 출력
}
실행 결과:
원의 면적은: 78.5
코드 한 줄씩 동작 설명:
package main- 이 코드는 main 패키지에 속합니다.import "fmt"- fmt 패키지를 가져옵니다. 이 패키지는 출력 기능을 제공합니다.const Pi = 3.14- 원주율을 상수로 선언합니다. 이 값은 변하지 않습니다.radius := 5.0- 반지름을 변수로 선언하고 5.0으로 초기화합니다.area := Pi radius radius- 원의 면적을 계산합니다. 상수Pi와 변수radius를 사용합니다.fmt.Println("원의 면적은:", area)- 계산된 면적을 출력합니다.- 상수는 변하지 않는 값을 표현하며, 코드의 가독성과 유지보수성을 높여줍니다.
const키워드를 사용하여 상수를 선언합니다.- 상수는 실생활의 고정된 가격과 유사하며, 안정적인 데이터 처리를 가능하게 합니다.
- 다음에 학습하면 좋은 주제: 변수(Variables), 데이터 타입(Types), 제어문(Control Structures)
4. 실전 활용 예제
예제 1: 쇼핑몰에서 장바구니의 세금 계산
쇼핑몰에서는 항상 세금 비율이 일정합니다. 이를 상수로 정의하여 사용합니다.
package main
import "fmt"
const taxRate = 0.1 // 세금 비율
func main() {
price := 100.0 // 상품 가격
total := price + (price * taxRate) // 총액 계산
fmt.Println("총액은:", total) // 총액 출력
}
상황 설명: 장바구니의 상품 가격에 세금을 더하여 최종 금액을 계산할 때, 세금 비율이 변하지 않기 때문에 상수로 정의하면 코드의 가독성과 유지보수성이 높아집니다.
예제 2: 달력에서 연도 계산
연도를 기반으로 특정 값을 계산할 때 상수를 사용할 수 있습니다.
package main
import "fmt"
const daysInYear = 365 // 1년의 일수
func main() {
years := 5
totalDays := years * daysInYear // 총 일수 계산
fmt.Println("총 일수는:", totalDays) // 총 일수 출력
}
상황 설명: 5년 동안의 총 일수를 계산할 때, 1년의 일수는 변경되지 않으므로 상수로 설정하여 사용합니다.
5. 흔한 실수와 주의사항
실수 1: 상수와 변수를 혼동하기
const myValue = 10 // 상수
myValue = 20 // 오류 발생: 상수는 변경할 수 없음
올바른 코드: 상수는 선언 후 변경할 수 없으므로, 변수로 선언해야 합니다.
var myValue = 10 // 변수
myValue = 20 // 정상 작동
실수 2: 상수의 데이터 타입 지정 오류
const myConst = "Hello" // 문자열 상수
fmt.Println(myConst + 5) // 오류 발생: 문자열과 정수는 연결할 수 없음
올바른 코드: 문자열과 정수를 연결하기 위해서는 정수를 문자열로 변환해야 합니다.
const myConst = "Hello"
fmt.Println(myConst + strconv.Itoa(5)) // 정상 작동