[golang] reflect 패키지를 사용한 외부 패키지의 private 필드 접근하기
·
Language/Go
서론Go 언어에서 이 소문자로 시작하는 필드는 private 필드로 외부 패키지에서 접근할 수 없다. 그렇다고 private 필드에 접근이 완전히 불가능한 것은 아니다. 하지만 private 필드는 외부에 공개되지 않기 때문에 패키지가 업데이트될 때 내부 구현이 변경될 수 있으며 이로 인해 해당 필드에 의존하는 코드가 예상치 못한 동작을 하거나 오류가 발생할 위험이 있다. 따라서 테스트 목적으로만 사용하거나 해당 필드가 제거되거나 변경될 경우를 대비해 오류 처리를 할 수 있는 상황에서만 사용해야 한다. 이 글에서는 reflect 패키지를 사용하여 외부 패키지의 private 필드에 접근하는 방법을 간략하게 정리해본다. private 모든 값 가져오기package mainimport ( "fmt" "tim..