본관은 광산(光山). 자는 사수(士修), 호는 우계(愚溪) 또는 보가재(寶稼齋). 아버지는 김광택(金光澤)이며, 어머니는 문화유씨(文化柳氏)로 유진택(柳震澤)의 딸이다.
처음 유숙기(兪肅基)의 문하에서 글을 배웠고, 뒤에 정복천(鄭復天)에게 사사받았다. 경종 때 사마시에 합격하고 성균관에 들어갔다.
경종이 허약하여 세제책봉의 논의가 있을 때 유봉휘(柳鳳輝)와 조태구(趙泰耉) 등이 반대하자, 성균관의 유생을 인솔하고 규탄하는 상소를 하였다. 뜻이 이루어지지 않음을 개탄하여 성균관을 물러나와 학문에 열중하였다.
1755년(영조 31) 음보(蔭補)로 선공감감역(繕工監監役)을 지내고, 뒤에 담양군수와 제천군수 등을 역임하였다. 고을에 흉년이 들자 세금과 부역을 경감하고 경비를 절용하여 모범을 보였고, 서원을 중수하여 학문을 권장하였다. 저서로는 『우계만록(愚溪謾錄)』이 있다.