[go] reflect 패키지의 사용 예시

이번에는 Go 언어에서 reflect 패키지를 사용하는 방법에 대해 알아보겠습니다.

1. reflect 패키지란?

reflect 패키지는 Go 언어의 런타임 타입 리플렉션을 지원하는 패키지입니다. 리플렉션은 프로그램이 자신의 구조를 검사하거나 수정할 수 있는 능력을 의미합니다.

2. 예시: 구조체의 필드 정보 가져오기

아래는 reflect 패키지를 사용하여 구조체의 필드 정보를 가져오는 간단한 예시 코드입니다.

package main

import (
	"fmt"
	"reflect"
)

type User struct {
	Name string
	Age  int
}

func main() {
	user := User{Name: "Alice", Age: 30}

	userType := reflect.TypeOf(user)
	numFields := userType.NumField()

	for i := 0; i < numFields; i++ {
		field := userType.Field(i)
		fmt.Printf("Field %d: %s - %s\n", i, field.Name, field.Type)
	}
}

위 코드를 실행하면 User 구조체의 필드 정보가 출력됩니다.

3. 결론

reflect 패키지를 사용하면 런타임에서 타입 정보를 검사하거나 수정할 수 있어 매우 유용합니다. 다만, 성능 저하유연하게 코드를 작성하는 것보다는 정적 타입을 활용하는 것이 선호됩니다.

이상으로 Go 언어에서 reflect 패키지의 간단한 예시에 대해 알아보았습니다. 더 많은 정보는 공식 문서를 참고하시기 바랍니다.