본래 구화현(仇火縣)이었던 것을 신라의 경덕왕이 고구현(高丘縣)으로 고쳤다. 『대동여지도』에는 고악(高岳)으로 표기되어 있다. 고려 현종 때안동부의 임내(任內)로 하였다가, 공양왕이 의성군에 합속시켰다. 세종 때 이곳에 잠실(蠶室)을 두고 누에를 길렀으며, 1914년 행정구역개편 때 점곡면 등에 분속되었다.
‘고구’라는 지명은 높은 언덕이라는 뜻보다 구(仇)와 고(高), 화(火)와 구(丘)가 고어의 발음상 비슷하여 만들어진 것일 뿐이며, 실제의 의미는 대읍(大邑)이라는 뜻이다. 지형상으로 낙동강의 지류인 독천(禿川)의 중상류를 차지하는 분지에 고구현이 발달하였으므로 큰 마을의 뜻이 타당하다고 본다.
동쪽으로 청송, 남쪽으로 의성, 북쪽으로 안동과 접하는데, 하천을 따라 안동ㆍ의성으로 갈 수 있고, 다른 지역과는 도로로 연결되지 않았다. 진산인 마산에 마령성(馬嶺城)이 있고, 마산의 봉수가 의성의 성산봉수와 연결되어 군사적 의미가 큰 지역이었다.