일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Griffiths
- 패널라인
- 이맥스
- 리플렉션
- mopria
- nil
- 스플릿키보드
- emacs
- Golang
- 벤치마크
- go언어
- md600alpha
- doom-emacs
- 엘리스배열
- 키보드
- 체리적축저소음
- 바로코
- 음각몰드
- 터미널
- 양자역학
- 건프라
- mf642cdw
- eslip
- Go
- 다이어트
- driverless
- Go 언어
- Reflection
- 고양이책
- mistel md600 alpha
- Today
- Total
목록리플렉션 (2)
Meandering Trajectory
이전 포스팅에서 리플렉션에 대한 아주 간략한 설명을 했다. 이번 글에서는 간단한 예제 코드를 통해 리플렉션이 어떻게 유용한지 알아보도록 하자. 1 import "reflect" 2 3 var methodMap map[string]reflect.Method 4 5 func initMethodMap(i interface{}) { 6 methodMap = make(map[string]reflect.Method) 7 8 t := reflect.TypeOf(i) 9 for idx := 0; idx < t.NumMethod(); idx++ { 10 m := t.Method(idx) 11 methodMap[m.Name] = m 12 } 13 }initMethodMap 함수는 임의의 구조체 변수를 입력 파라미터로 받은..
리플렉션(reflection)의 사전적 의미는 '반사'다.컴퓨터 프로그래머에게 리플렉션은 이런 사전적 의미 외에 다른 의미가 하나 더 있다. 그들 업계에서 통용되는 리플렉션은 프로그램이 실행 중에 프로그램에 포함된 타입과 메서드에 대한 정보를 조회하고 이렇게 얻은 정보를 바탕으로 메서드 실행까지도 할 수 있도록 해주는 기능이다.사람이 자신의 얼굴을 잘 보려면 거울에 비춰(reflection)봐야 한다. 그런데 프로그램이 스스로에 대한 정보를 실행 중에 알아네는 행동 역시 거울에 비춰보는 행위와 유사하다고 볼 수 있으니 그야말로 적절한 용어선택이다.이렇게 아는 척을 했지만 내가 업계적 의미의 리플렉션을 알게 된 것은 사실은 불과 며칠 전이다. 예기인 즉슨 Go로 된 오픈소스 소프트웨어의 코드를 읽다가 뭔가..