②는 값 칸이 비어 있어도 타입 칸이 차 있어서 nil이 아니다 경우 tab타입 칸 data값 칸 err == nil ① 진짜 nilvar err error nil nil true ② nil 포인터를 담음var p *MyErr *MyErr nil false ③ 정상 에러 값&MyErr{} *MyErr 0xc0… false 두 칸이 모두 nil일 때만 인터페이스가 nil이다 Go · 개념 정리Go 인터페이스 nil 함정err != nil이 참이 되는 이유nil 포인터를 반환했는데 err != nil이 참이 되는 이유는 인터페이스 값이 타입과 데이터 두 칸으로 되어 있기 때문이다. 두 칸 구조에서 메서드셋, 인터페이스를 둘 위치, 동적 디스패치 비용까지 따라간다.2026.08.11