Reflect 2

go reflect 이해하기

reflect란?Go 언어는 강력한 정적 타입(Statically Typed) 언어입니다. 하지만 실무를 하다 보면 ORM 라이브러리를 만들거나, Kubernetes 매니페스트 같은 복잡한 YAML/JSON 데이터를 파싱할 때처럼 런타임에 변수의 타입을 검사하고 제어해야 하는 순간이 반드시 찾아옵니다.이럴때 사용할 수 있는게 바로 reflect 패키지입니다. 이번 문서에서는 Golang의 reflect 패키지를 활용해 프레임워크나 공통 라이브러리, 직렬화/역직렬화(예: JSON) 도구 등을 구현할 수 있는 방법에 대하여 알아보겠습니다. reflect 사용하기Reflection의 기초: Type과 KindReflection의 시작점은 `interface{}` (any) 입니다. 빈 인터페이스 내부에는 데이..

Go언어 2026.03.22

Go언어 interface reflect

reflect 사용 이유 reflect는 여러 가지의 사용방법이 있겠지만 저는 종종 협업을 하면서 상대방이 보낸 데이터의 타입 및 종류에 대하여 구분이 필요한 경우 사용하였습니다. reflect를 이용하여 타입 가져오기 인터페이스 형식으로 데이터를 받아 받은 데이터의 타입을 구분할 수 있습니다. package main import ( "fmt" "reflect" ) func ShowType(i interface{}) { fmt.Println(reflect.ValueOf(i).Type()) } func main() { num := 100 ShowType(num) job := "student" ShowType(job) } /* 출력결과 int string */ 코드설명 reflect.ValueOf().Typ..

Go언어 2021.08.15