0Pricing
Go Academy · 강의

상수와 iota

상수를 정의하고 열거형에 iota를 사용하는 방법을 학습합니다.

상수와 iota은(는) CoddyKit의 무료 Go Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Go Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Go Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

상수란 무엇인가요?

상수는 실행 중에 절대 변경되지 않는 값을 저장합니다.

  • const로 선언합니다
  • 컴파일 시점에 계산할 수 있어야 합니다
  • 타입이 지정되거나 지정되지 않을 수 있습니다
  • 문자열, 불리언, 숫자 및 룬 리터럴을 사용할 수 있습니다

타입 지정 상수와 타입 미지정 상수

타입 미지정 상수는 더 높은 정밀도를 가지며 유연하게 사용할 수 있습니다:

  • const Pi = 3.14159 — 타입 미지정 부동 소수점 값이며 문맥에 맞게 조정됩니다
  • const Pi float64 = 3.14159 — 타입이 지정된 float64
  • 타입 미지정 정수 상수는 모든 정수 타입과 함께 사용할 수 있습니다

상수 표현식

컴파일 시점에 다른 상수로부터 상수를 계산할 수 있습니다:

const (
    KB = 1024
    MB = 1024 * KB
    GB = 1024 * MB
)

iota: 자동 증가 값

iota는 각 const 블록에서 0으로 재설정되고 블록 안의 각 상수마다 1씩 증가하는 내장 카운터입니다.

const (
    Sunday = iota  // 0
    Monday          // 1
    Tuesday         // 2
    Wednesday       // 3
)

표현식과 함께 사용하는 iota

iota를 표현식과 결합하면 강력한 열거형을 만들 수 있습니다:

const (
    _  = iota             // skip 0
    KB = 1 << (10 * iota) // 1024
    MB                     // 1048576
    GB                     // 1073741824
)

문자열 상수

문자열 상수는 컴파일 시점에 값이 결정되는 불변 문자열 값입니다:

const (
    AppName    = "GoApp"
    AppVersion = "1.0.0"
    Greeting   = "Hello, " + AppName
)

불리언 상수

true와 false는 Go에서 미리 선언된 타입 미지정 불리언 상수입니다. 기능 플래그에 사용할 고유한 불리언 타입 상수를 정의할 수도 있습니다:

const (
    EnableMetrics = true
    DebugMode     = false
)

상수와 변수의 차이

주요 차이점은 다음과 같습니다:

  • 상수는 불변이므로 선언 후 할당하면 컴파일 오류가 발생합니다
  • 상수에는 상수가 아닌 표현식(예: 함수 호출)을 사용할 수 없습니다
  • 상수는 더 효율적입니다. 컴파일러가 인라인으로 삽입할 수 있습니다
  • 가독성을 높이려면 의미 없는 숫자에 상수를 사용합니다

iota를 사용한 열거형

정의된 타입과 iota를 결합하면 타입 안전 열거형을 만들 수 있습니다:

type Direction int

const (
    North Direction = iota
    East
    South
    West
)

열거형 가독성을 위한 Stringer

열거형 타입에 Stringer 인터페이스를 구현하면 원시 정수가 아닌 사람이 읽기 쉬운 이름으로 출력할 수 있습니다. stringer 도구가 이 코드를 자동으로 생성해 줍니다.

iota 비트마스크 패턴

iota를 비트 시프트와 함께 사용하면 플래그 집합을 만들 수 있습니다:

type Permission uint

const (
    Read    Permission = 1 << iota // 1
    Write                          // 2
    Execute                        // 4
)

func main() {
    access := Read | Write // 3
    _ = access
}

빠른 확인

새로운 const 블록에서 iota는 어떤 값부터 시작하나요?

복습: 상수와 iota

이제 Go의 상수를 이해하게 되었습니다:

  • const는 컴파일 시점의 불변 값을 선언합니다
  • 타입 미지정 상수는 유연하고 정밀도가 높습니다
  • iota는 const 블록 안에서 0부터 시작하여 자동으로 증가합니다
  • iota를 표현식과 결합하면 파일 크기, 비트 플래그, 열거형을 표현할 수 있습니다
  • 정의된 타입과 iota를 사용하여 타입 안전 열거형을 만들 수 있습니다

다음 학습 내용: 명시적 타입 변환과 타입 별칭을 살펴봅니다.

자주 묻는 질문

“상수와 iota” 강의는 무료인가요?

네 — “상수와 iota” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Go Academy 강의 전체를 잠금 해제할 수 있습니다. Go Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“상수와 iota”에서 뭘 배우나요?

상수를 정의하고 열거형에 iota를 사용하는 방법을 학습합니다. 브라우저에서 직접 실행하는 실습 코드로 Go Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Go Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Go Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“상수와 iota” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Go Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Go Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Go에서 변수 선언
  2. Go의 기본 제공 타입
  3. 상수와 iota
  4. Go의 타입 변환
← Go Academy(으)로 돌아가기