IMCAT.DEV
로그인 가입
Go 입문 기초

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

코드 한 줄씩 동작 설명:

  1. package main - 이 코드는 main 패키지에 속합니다.
  2. import "fmt" - fmt 패키지를 가져옵니다. 이 패키지는 출력 기능을 제공합니다.
  3. const Pi = 3.14 - 원주율을 상수로 선언합니다. 이 값은 변하지 않습니다.
  4. radius := 5.0 - 반지름을 변수로 선언하고 5.0으로 초기화합니다.
  5. area := Pi radius radius - 원의 면적을 계산합니다. 상수 Pi와 변수 radius를 사용합니다.
  6. fmt.Println("원의 면적은:", area) - 계산된 면적을 출력합니다.
  7. 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)) // 정상 작동

    6. 정리

    • 상수는 변하지 않는 값을 표현하며, 코드의 가독성과 유지보수성을 높여줍니다.
    • const 키워드를 사용하여 상수를 선언합니다.
    • 상수는 실생활의 고정된 가격과 유사하며, 안정적인 데이터 처리를 가능하게 합니다.
    • 다음에 학습하면 좋은 주제: 변수(Variables), 데이터 타입(Types), 제어문(Control Structures)