[go] 구조체(struct)와 변수의 크기 계산 방법

구조체(struct)는 Go 언어에서 여러 개의 필드를 하나의 데이터 타입으로 묶는 데 사용되는 방법입니다. 구조체를 사용하면 관련된 데이터를 하나로 그룹화하여 처리하기 쉽고 효율적으로 사용할 수 있습니다. 이때, 구조체와 변수의 크기를 계산하는 방법에 대해 알아보겠습니다.

구조체 크기 계산 방법

구조체의 크기는 모든 필드의 크기의 합입니다. 각 필드의 크기는 해당 필드의 데이터 타입에 따라 결정됩니다. 일반적으로 구조체의 크기는 필드들의 크기 중 가장 큰 값을 기준으로 정렬됩니다. Go 언어에서는 패딩(bytes padding)을 사용하여 필드들이 정렬되도록 보장합니다.

구조체의 크기를 계산하는 예제를 살펴보겠습니다. 다음은 person이라는 구조체를 선언하고 필드들을 추가한 예제입니다.

type person struct {
    name   string
    age    uint8
    height float64
}

name 필드는 문자열(UTF-8)이므로 용량은 문자열의 길이와 상관없이 고정 크기입니다. age 필드는 uint8 타입이므로 1바이트를 차지합니다. height 필드는 float64 타입이므로 8바이트를 차지합니다. 따라서 이 구조체의 크기는 1바이트 + 8바이트 = 9바이트입니다.

변수의 크기 계산 방법

변수의 크기는 해당 변수의 데이터 타입에 따라 결정됩니다. Go 언어에서 지원하는 기본 데이터 타입들의 크기는 고정되어 있습니다. 일반적으로 정수 타입은 워드 크기에 맞춰 최적화되어 있으며, 부동 소수점 타입은 IEEE-754 표준에 따라 크기가 결정됩니다.

변수의 크기를 계산하는 예제를 살펴보겠습니다. 다음은 age라는 변수를 선언한 예제입니다.

var age uint8

uint8 타입은 1바이트를 차지합니다. 따라서 이 변수의 크기는 1바이트입니다.

참고 자료