본관은 청풍(淸風). 자는 성보(城甫), 호는 송재(松齋). 할아버지는 청원부원군(淸原府院君) 김시묵(金時默)이고, 아버지는 공조참의 김기대(金基大)이다.
일찍이 이술원(李述源)으로부터 글을 배운 뒤 박윤원(朴胤源)·오윤상(吳允常)의 문인이 되었다. 정조에 의해 특별히 척신(戚臣)으로 기용되어 돈녕부주부(敦寧府主簿)가 되었으며, 1800년 순조가 즉위하면서 의령현감을 역임한 뒤 승지·도승지가 되어 매번 강연(講延)에 나아갔다. 1809년(순조 9) 형조참판을 거쳐 이듬해 우윤(右尹)이 되었다.