1107년(예종 2)에 처음 쌓았고, 1616(광해군 8)∼1672년(현종 13)간에 개축하였다.
이 성은 북으로는 청진, 남으로는 길주 방면으로 통하는 교통상 요충지로서 큰 길이 동문과 서문을 통하게 된 방위상 유리한 자연지리적 위치를 차지하고 있다. 1434년(세종 16)에 김종서(金宗瑞)가 절도사로 와서 이 성을 중심으로 국방을 더욱 튼튼히 하였고, 1616년에는 이미 있었던 성을 확장하여 읍성을 고쳐쌓았다.
이 고쳐쌓은 성은 돌로 쌓은 평지성으로 둘레가 6,180척에 남북으로 좁은 장방형을 이루고 있다. 성벽은 요고형(腰鼓形 : 장구 모양)으로서, 성벽의 높이는 32척에 달하고 아래 부분은 한 변이 3∼4척 되는 대리석으로 쌓았다고 전한다. 성벽 위에는 성가퀴[城堞 : 성 위에 낮게 쌓은 담]를 돌렸는데, 옛문헌에 의하면 510개의 성가퀴가 있었다고 하나 지금은 북벽에 일부만 남아 있다.
성문은 동쪽에 용성문(龍城門), 서쪽에 호위문(扈衛門), 남쪽에 수성문(水城門), 북쪽에 현무문(玄武門) 등 4개의 문루를 세웠는데, 현재는 남문루인 수성문만이 남아 있다. 성 밖에는 5∼6m 깊이의 참호를 파서 성의 방어를 강화하였다. 성 안에는 8개의 포루를 설치하였고, 12개의 작은 못과 54개의 우물이 있었다.