본관은 의성(義城). 자는 공목(公穆), 뒤에 왕명에 의하여 성사(聖思)로 고쳤으며, 호는 갈천(葛川). 내성(乃城)망도리(望道里) 출생. 김여탁(金汝鐸)의 증손으로, 할아버지는 김경학(金景㶅)이고, 아버지는 증이조참판 김시동(金始東)이며, 어머니는 반남박씨(潘南朴氏)로 박효술(朴孝述)의 딸이다. 처음에는 권사민(權思敏)에게 수학하였으나 뒤에 이상정(李象靖)의 문인이 되었다.
1789년(정조 13) 사마시를 거쳐, 1795년 단풍정친시(丹楓亭親試)에 합격한 뒤 성균관전적으로부터 병조와 예조의 좌랑과 정랑 등을 지냈다. 또한 영해부사·안주목사·우승지·형조참판·한성좌윤·사간원대사간·함길도관찰사 등을 두루 역임하였다.
1798년 홍문관교리 때에는 시폐(時弊)를 상소하여 왕의 흔쾌한 찬성을 얻었고, 1800년에는 교리에 실록편수관(實錄編修官)을 겸하여 『영조실록(英祖實錄)』 편찬에 참여하였다. 1806년(순조 6)에는 안악군수(安岳郡守)로서 교육제도가 부실하여 정교(政敎)가 미치지 못하는 것을 개탄하여, 사재(私財) 수백냥을 투자하여 강소(講所)를 신축, 군내의 영재들을 교육하였다.
만년에 재산(才山)의 갈산리(葛山里)에 갈천정(葛川亭)을 짓고, 덕봉(德峰) 아래에는 덕봉정사(德峰精舍)를 지어서 자제들의 교육에 힘썼다. 저서로는 『갈천집(葛川集)』 10권이 있다.