구당은 본래 ‘임무(任務)에 당(當)한다’는 뜻으로, 994년(성종 13)에 처음으로 압록도(鴨綠渡)구당사를 두었던 것에서 그 기원을 찾아볼 수 있다.
기능을 보면 성종 때에 하공진(河拱辰)을 북방 변경에 보내어 압록의 구당사로 삼아, 낮에는 나가서 동쪽 물가를 감독하고 밤에는 들어와 내성(內城)에서 숙직하게 하였다는 기사로 미루어보아, 압록강 등 외국을 내왕하는 큰 강의 나루에 파견하여 도강(渡江)을 관리하고 경비하는 일을 맡아본 것으로 보인다. 그러나 뒤에는 탐라(耽羅 : 제주도)를 포함한 모든 나루터에 구당사를 두게 되었다.