고과법은 고려·조선시대 관리들의 승진과 좌천의 근거가 되는 공로와 과실 등 근무 상태를 조사하던 인사제도이다. 고려와 조선은 이부의 상서고공(尙書考功)과 이조의 고공사(考功司)를 통해 관리들의 근무 상태를 조사하는 고과제를 운영하였다. 중앙관은 출퇴근 시간의 준수나 휴가 일수를 검토했고 소송 건수를 살펴보기도 하였다. 지방관은 수령의 직무 수행을 검토하였다. 고과나 포폄의 작성은 고려의 경우 해당 관부의 장관이나 안찰사, 병마사가 담당하였고, 조선의 경우 당상관이나 제조, 관찰사가 담당하였다. 상서고공과 고공사가 종합하였다.
고려 · 조선시대는 관료제(官僚制)가 발달하여 국가 운영에서 관리들의 역할이 매우 중요했다. 그래서 국가는 관리들의 승진과 좌천을 위한 근거로 삼기 위한 목적으로 그들의 공로와 과실, 곧 근무 상태를 조사하는 고과제(考課制)를 제정하였다.
고려의 고과제는 건국 초부터 있었을 것이나 본격적인 운영은 982년(성종 1) 중국 제도를 도입하여 3성 6부제(三省六部制)를 설치하고 어사선관(御事選官)의 속사(屬司)로서 고과를 담당하는 전담 기구인 사적(司績)을 설치하면서 비롯되었다. 995년 어사선관을 상서이부(尙書吏部)로 개편하고 사적을 상서고공(尙書考功)으로 고쳤다. 고공사(考功司)라고도 불렸다. 문종(文宗) 대에 낭중(郞中, 정5품) 2인, 원외랑(員外郞, 정6품) 2인을 두었다.
1275년(충렬왕 1) 낭중은 정랑(正郎), 원외랑은 좌랑(佐郞)으로 고쳤다. 1298년(충렬왕 24) 충선왕(忠宣王)이 고공사를 전조(銓曹)에 병합하였다. 1356년(공민왕 5)에 고공사를 설치하고 낭중과 원외랑을 두었다. 이후 소속 관직의 명칭은 달라졌으나 고공사는 고려 말까지 계속되었다.
고과의 방식은 중앙관과 지방관으로 구분되었다. 중앙관은 출퇴근 시간의 준수와 휴가 일수를 조사하였다. 출퇴근 시간은 사시(巳時)에서 유시(酉時)까지였는데, 1048년(문종 2)부터 낮이 길 때는 진시(辰時)에, 짧을 때는 사시에 출근하도록 하였다. 출퇴근은 출근부인 공좌부(公座簿)에 기록된 내용을 근거로 살피고, 휴가 일수는 연간 100일을 넘지 않도록 하였다. 소송과 같은 특정 업무를 담당한 관리들은 업무의 처리 건수를 고과의 근거로 삼기도 하였다.
지방관은 수령오사(守令五事)가 고과의 기준이 되었는데, 재판의 처리, 창고의 충실, 백성의 진휼(賑恤), 농상(農桑)의 장려, 요역(徭役)의 부과 등과 같은 것이었다. 양계(兩界)의 지방관은 성곽의 수리나 무기의 비축 등과 같은 항목도 고과의 근거가 되었다.
고과를 총괄한 것이 고공사인데, 이들은 중앙관과 지방관, 품관(品官)과 서리(胥吏)의 고과를 모두 담당하였다. 하지만 관리들의 고과를 직접 작성하여 고공사에 제출한 것은 중앙은 해당 관부의 장관이었고, 지방은 안찰사(按察使)와 병마사(兵馬使)가 담당하였다. 고과의 성적은 상 · 중 · 하로 구분하였고 상은 최(最), 하는 전(殿)이라 하였다. 이러한 성적을 바탕으로 승진과 강등이 이루어졌는데 이는 이부(吏部)와 병부(兵部)가 담당하였다. 다만 관리들의 승진과 강등에 근거가 되는 성적이 어떤 기준으로 분류되었는지 알 수 있는 자료가 전하지는 않는다.
고과는 기본적으로 1년을 단위로 시행되었으나 송사(訟事)를 담당한 관리의 고과는 6개월마다 이루어지기도 하였다. 연간 근무 일수나 휴가 일수는 정리하여 고공사에 보고하는 연종도력법(年終都歷法)이 시행되었다. 관리들의 임기가 3년이었던 만큼 3고(三考)를 바탕으로 승진이나 폄출이 결정되었다.
조선의 고과제는 1392년(태조 1) 관료제를 제정하면서 이조(吏曹)가 고과를 담당하고 고공정랑(考功正郞, 정5품) 1명, 고공좌랑(考功佐郞, 정6품) 1명을 두었던 것에서 시작되었다. 1405년(태종 5)에 육조(六曹)의 직무를 정비하면서 이조의 속사로 고공사를 설치하고, 중앙과 지방에 있는 문 · 무관의 공과(功過)와 선악(善惡)의 고과를 담당하게 하였다.
이러한 과정을 거쳐 『경국대전(經國大典)』에 고과를 수행하는 관부와 규정들이 정비되었다. 이조가 고과를 담당했는데, 구체적으로는 고공사가 문관의 공로와 과실, 부지런함과 태만함, 휴가와 여러 관부의 아전의 근무 일수, 향리(鄕吏) 자손을 분별 처리하는 등의 일을 담당하게 하였다. 무관의 휴가는 병조(兵曹)의 무선사(武選司)가 담당하였다.
고과는 중앙관과 지방관으로 구분되어 운영되었다. 중앙관은 이조가 매년 연말에 근무 일수와 결근 사유를 정리하여 보고하였다. 근무 시간은 묘시(卯時)에 출근하여 유시에 퇴근했는데, 해가 짧을 때는 진시부터 신시(申時)까지 근무하였다. 관리는 질병으로 30일을 결근하면 보고하여 파면하였다. 녹사와 서리는 사유가 있으면 100일, 무단으로 결근하여 30일이 되면 파면하였고, 29일 이하는 속전(贖錢)을 받고 벼슬하게 하였으며, 파면된 후에 복귀를 원하는 경우는 들어주었다. 상(喪)을 당한 경우는 끝나면 복귀하게 하였다. 형조(刑曹) · 한성부(漢城府) · 개성부(開城府) · 장예원(掌隸院)은 계절마다 당하관(堂下官)의 소송 처리 건수를 보고하도록 하여 고과의 근거로 삼았다.
지방관은 관찰사(觀察使)가 수령 7사를 조사하여 국왕에게 보고하였다. 수령 7사는 농상의 융성, 호구(戶口)의 증가, 학교의 번창, 군정(軍政)의 정비, 부역의 균등, 사송(詞訟)의 간결, 간활(姦猾)의 제거 등이었다.
고과의 종합은 이조의 고공사가 담당하였다. 하지만 포폄(褒貶)을 하는 것은 중앙관의 경우 해당 관부의 당상관(堂上官)이나 제조(提調), 속조(屬曹)의 당상관이 맡았고, 지방관은 관찰사가 담당하였다. 매년 6월 15일과 12월 15일까지 등급을 매겨 국왕에게 보고하였다.
중앙관의 임기는 6품 이상은 900일, 7품 이하는 450일, 무록관(無祿官)은 360일이었고, 지방관의 임기는 관찰사 · 도사(都事)는 360일, 수령은 1,800일, 당상관 및 수령 및 훈도(訓導)는 900일이었다. 포폄은 1년에 2회 시행되었으니 임기에 따라 고과의 횟수가 정해졌다. 포폄은 열 번 고과할 때 열 번 상(上)을 받으면 상을 주어 1계(階)를 승진시켰다. 두 번 중(中)을 받으면 무록관에 임명하였고, 세 번 중을 받으면 파직하였다. 5고 ·3고 ·2고의 경우는 한 번이라도 중을 받으면 현직보다 나은 자리로 옮길 수 없었고, 두 번 중을 받으면 파직하였다. 당상관인 수령은 한 번만 중을 받아도 파직하였다.
사헌부(司憲府) · 사간원(司諫院) · 세자시강원(世子侍講院)은 등급의 서열을 매기지 않았다. 수령의 고과는 관찰사가 병마절도사(兵馬節度使)와 함께 논의하였고, 제주도의 세 읍(邑)은 제주목사(濟州牧使)가 등급을 매겨 관찰사에게 보고하였다. 서리의 명부는 이조에서 관인을 찍어 관리하면서 부지런함과 태만함, 간사함과 속임수를 살폈다.
고과는 엄격히 시행되었다. 종친이나 관리들이 병을 핑계로 출근하지 않으면 사헌부와 종부시(宗簿寺)에서 검거하고 아뢰어 벌을 주었다. 포폄에서 하등(下等)을 받거나 사사로운 죄를 범하여 파직된 경우는 2년이 경과해야 서용(敍用)될 수 있었다. 의친(議親)과 공신(功臣)으로 하등을 받은 경우는 1년을 경과해야 하였다.
이처럼 조선은 고려보다 훨씬 정비된 고과와 포폄 제도를 통해 근무의 기강을 진작하고 임용의 근거를 마련하였다.
고려 · 조선시대에 국가는 관리들의 공로와 과실 곧 근무 상태를 조사하여 승진과 좌천을 위한 근거로 삼았다. 이는 관리들의 공적인 업무 수행을 통해 국가가 운영되고 통치가 실현되던 고려와 조선의 국가에서 관료제의 공공성을 확보하기 위해 반드시 필요한 제도였다는 데 의의가 있었다.