이와 유사한 기능의 기관으로는 신라의 공장부(工匠府) · 경성주작전(京城周作典), 그리고 축성 관리를 맡은 수성부(修城府)가 있었으며, 태봉 때는 남상단(南廂壇)이 있었다.
고려 건국 초 관제는 신라와 태봉의 관제를 계승하고 당나라 제도를 참고해 편성됐다. 즉 건국 초에는 이것을 그대로 계속해서 사용하다가 목종 때 이르러 장작감으로 정착되어 감(監) · 소감(少監) · 승(丞) · 주부(注簿)의 직제를 만든 것으로 보인다.
그 뒤 문종 때 고려의 문물제도가 정비되면서 관제도 개혁되었다. 장작감에는 판사(判事, 정3품) · 감(정4품) · 소감(종4품) · 승(종6품) · 주부(종7품)의 관원이 있다. 또 이속(吏屬)으로는 감작(監作) 6인, 기관(記官) 3인, 산사(算士) 1인을 두어 실무를 담당하게 하였다.
그러나 고려 후기 원나라의 내정간섭으로 관제개혁이 실시될 때 고려의 전통적인 관제가 소멸, 격하되었다. 1298년(충렬왕 24) 원나라의 정2품 관서인 장작원(將作院)을 피해 장작감은 선공감(繕工監)으로 바뀌고, 그 직제는 종래의 판사를 대신해 선공감(종3품)을 장관으로 하였다.
1308년 충선왕이 재즉위하면서 관제를 대대적으로 개편하였다. 선공감은 종2품 관서인 선공사(繕工司)로 승격시켰고, 내부감(內府監 : 종래의 少府監)을 병합하고, 궁궐도감 · 창고도감 · 연등도감 · 국신소(國贐所) 등을 흡수해 그 기능을 대폭 확대하였다.
그 뒤 기구가 지나치게 커지자 1331년(충혜왕 1) 소부시(少府寺)를 분리해 독립시켰으며, 뒤에 다시 선공시(繕工寺)로 개칭하였다. 이는 1329년(충숙왕 16) 원나라에서 선공시를 설치함에 따라 고려의 관부 명칭이 바뀌게 된 것으로 보인다.
그 뒤 공민왕은 국권회복을 위해 관제를 개혁하였다. 이 조처로 장작감 체제가 부활되었으나 결국 선공시로 환원되었다. 그러나 선공시는 공역(工役) 때 군졸을 동원, 그들을 지휘 · 감독해야 하였다. 뿐만 아니라 많은 장인(匠人)을 관리하는 등 그 업무가 많아져 일의 효율성이 떨어지게 되었다.
이를 보완하기 위해 1389년(공양왕 1년) 중방(重房)의 상장군 · 대장군 · 낭장 · 별장에게 선공시의 판사 이하의 관직을 겸직하게 하여 원활한 업무가 이뤄지도록 도모하였다. 조선시대 역시 고려의 제도를 계승해 선공감을 세워 토목 및 영선에 관한 일을 맡게 하였다.