1968년 진해에서 태어났다. 마산과 창원에서 중 · 고등학교를 다니며 시를 습작하다가 서울대 국어국문학과에 입학했다. 박사과정을 수료할 때까지 신화와 전설과 민담 그리고 고전소설의 세계에 푹 빠져 지냈다. 진해로 돌아와 해군사관학교에서 해양문학을 가르치며, 첫 장편『열두 마리 고래의 사랑 이야기』와『불멸의 이순신』을 썼다. 대학교수로 재직하며 역사추리소설 백탑파 시리즈를 시작했고,『나, 황진이』『리심』등을 완성했다. KAIST 문화기술대학원 교수를 끝으로, 2009년 여름 대학을 떠났다.
이후 전업 작가로 사회파 소설『거짓말이다』『살아야겠다』등을 잇달아 발표하였다. 장편소설『이토록 고고한 연예』를 쓰며 판소리에 매혹되었고, 소리꾼 최용석과 ‘창작집단 싸목싸목’을 결성하였다. 지금까지 30편의 장편소설과 3권의 단편집과 3편의 장편동화를 냈다.『아름다움은 지키는 것이다』등 다수의 에세이도 출간했다.