프롬프트타운
인턴·신입근거: 스마트공장 사업을 중심으로 제조 현장의 업무 프로세스와 요구사항을 파악하고, 내부 개발팀과 협업하여 필요한 시스템과 기능을 개발합니다.
※ 실제 산출물이 아닌 AI 예측 시안입니다.
프롬프트타운은 대구에 본사를 둔 생성형 AI 회사로, 기업과 디자이너가 쓰는 AI 디자인 도구 Crev AI·Kiri AI와 제품 디자인용 Piix를 만들어 왔어요. 2026년 10월 공고에서는 스마트공장 사업을 중심으로 도입기업의 제조 현장 요구사항을 받아 백엔드 API, 데이터 처리, 웹 대시보드와 관리자 기능을 개발하는 FDE 인턴을 뽑아요.
공고는 FDE 가 '스마트공장 사업을 중심으로 제조 현장의 업무 프로세스와 요구사항을 파악하고' 필요한 기능을 개발한다고 적고, 담당업무로 '웹 대시보드 및 관리자 기능 개발'을 꼽아요. 제조 현장의 작업지시에는 마감 시각이 있어서, 라인이 느려지거나 멈추면 남은 수량을 정규 근무 안에 채우지 못하고 잔업으로 메워야 해요. 잔업은 작업자에게 미리 알려야 하니, 생산관리자는 정해진 시각에 라인마다 지금 속도로 마감에 닿는지 알아야 해요.
공고는 스마트공장 소프트웨어 개발 업무로 Python·Java 기반 백엔드 API, 데이터베이스 연동과 데이터 처리, 웹 대시보드와 관리자 기능 개발을 꼽아요.
공고는 스마트공장 도입기업 미팅과 제조 현장 방문을 지원하고, 고객사 업무 프로세스를 파악해 요구사항을 정리한 뒤 개발 과제와 기능 개선사항을 도출하는 일을 맡겨요.
우대사항 첫 줄에 스마트공장·제조·MES·ERP 같은 제조 정보시스템에 대한 이해나 관련 프로젝트 경험을 적었어요. 데이터 처리·분석과 업무 자동화 프로젝트 경험도 우대해요.
생산관리자가 그날 잔업을 정하는 시각에 여는 관리자 페이지예요. 오늘 라인마다 걸린 작업지시가 그 시각까지 양품을 몇 개 채웠는지, 지금 속도로 마감 시각 안에 끝나는지, 라인이 멈춰 있는지 작업지시마다 알려 줘요. 받은 데이터를 담을 DB 설계와 기술·구조, 그리고 지금 속도를 최근 몇 시간의 생산으로 볼지는 지원자가 정해요.
스마트공장을 도입한 중소 제조사의 생산관리 담당자예요. 라인마다 오늘 작업지시 수량이 몇 개 남았고 지금 속도로 마감 안에 끝나는지 보고 잔업을 정해야 하는데, 생산 수량과 라인 정지 기록이 따로 쌓이면 둘을 맞춰 보기 어려워 퇴근 무렵에야 모자란 걸 알게 돼요.
공장이 일한 날마다 한 행이에요. work_date 가 키예요. decision_at 은 그날 생산관리자가 잔업 여부를 정하는 시각이고, 이 기능이 '지금'으로 삼는 시각이에요. 이 데이터에서는 월~목요일은 15시, 금요일은 14시에 잔업을 정해요. 라인 단말이 매시 정각에 보내는 생산 수량 보고는 그 정각에 이미 들어와 있어서, counted_at 이 decision_at 과 같은 보고도 잔업을 정할 때 볼 수 있어요. 주말과 공휴일, 여름휴가처럼 일하지 않은 날은 행이 없어요. 큰 데이터는 2025년 11월 3일부터 2026년 10월 26일까지 일한 날 236일이고, 시작용은 그 마지막 날인 10월 26일(월) 하루를 같은 값으로 잘라 낸 거예요.
전체 1행 가운데 앞 1행이에요.
| work_date | decision_at |
|---|---|
| 2026-10-26 | 2026-10-26T15:00:00+09:00 |
1행 전부를 JSON 파일 하나로 받을 수 있어요.
같은 형식으로 만든 236행이에요. 위 데이터가 이 안에 그대로 들어 있어요(한 줄에 한 행, gzip 압축).
미리보기와 내려받는 데이터 모두 이 형식(JSON Schema)을 따라요.
{
"type": "object",
"description": "공장이 일한 날 하루. 키는 work_date.",
"additionalProperties": false,
"required": [
"work_date",
"decision_at"
],
"properties": {
"work_date": {
"type": "string",
"format": "date",
"description": "작업일(YYYY-MM-DD, 한국 날짜). 이 표의 키예요."
},
"decision_at": {
"type": "string",
"format": "date-time",
"description": "그날 생산관리자가 잔업 여부를 정하는 시각. 한국 시간(+09:00) ISO 8601, 초 단위. 이 기능이 '지금'으로 삼는 시각이에요."
}
}
}그날 라인에 내린 작업지시예요. 한 행이 작업지시 한 건이고 order_id 가 키예요. work_date 는 work_days.work_date 를 가리켜요. 라인은 L1~L6 여섯 개이고, 한 라인에는 하루에 작업지시가 많아야 한 건 걸려요. 작업지시가 없는 날의 라인은 그날 돌지 않았어요. planned_qty 는 그날 채워야 하는 양품 수(개)이고, due_at 은 그 수량을 다 만들어야 하는 마감 시각이에요. 마감은 정규 근무가 끝나는 17시가 가장 많고, 그보다 이른 16시 마감과 잔업을 미리 잡은 18시·19시 마감도 있어요. 같은 날 두 라인에 같은 품목이 걸린 경우와 정규 근무 안에 다 만들기 빠듯한 작업지시가 들어 있고, 큰 데이터에는 코드 앞부분이 같은 다른 품목(BR-A120 과 BR-A140, HS-B07 과 HS-B09)도 있어요. 큰 데이터는 1,328건이고, 시작용은 10월 26일 작업지시 6건 전부예요.
전체 6행 가운데 앞 5행이에요.
| order_id | work_date | line_id | item_code | item_name | planned_qty | due_at |
|---|---|---|---|---|---|---|
| WO-261026-01 | 2026-10-26 | L1 | BR-A120 | 브래킷 A-120 | 2,200 | 2026-10-26T17:00:00+09:00 |
| WO-261026-02 | 2026-10-26 | L2 | HS-B07 | 하우징 B-07 | 1,200 | 2026-10-26T17:00:00+09:00 |
| WO-261026-03 | 2026-10-26 | L3 | CV-C33 | 커버 C-33 | 1,800 | 2026-10-26T17:00:00+09:00 |
| WO-261026-04 | 2026-10-26 | L4 | BR-A120 | 브래킷 A-120 | 1,200 | 2026-10-26T16:00:00+09:00 |
| WO-261026-05 | 2026-10-26 | L5 | BS-D15 | 베이스 D-15 | 2,060 | 2026-10-26T18:00:00+09:00 |
6행 전부를 JSON 파일 하나로 받을 수 있어요.
같은 형식으로 만든 1,328행이에요. 위 데이터가 이 안에 그대로 들어 있어요(한 줄에 한 행, gzip 압축).
미리보기와 내려받는 데이터 모두 이 형식(JSON Schema)을 따라요.
{
"type": "object",
"description": "라인에 내린 작업지시 한 건. 키는 order_id.",
"additionalProperties": false,
"required": [
"order_id",
"work_date",
"line_id",
"item_code",
"item_name",
"planned_qty",
"due_at"
],
"properties": {
"order_id": {
"type": "string",
"pattern": "^WO-[0-9]{6}-[0-9]{2}$",
"description": "작업지시 번호(WO-작업일 YYMMDD-순번). 이 표의 키예요."
},
"work_date": {
"type": "string",
"format": "date",
"description": "작업지시를 내린 작업일. work_days.work_date 를 가리켜요."
},
"line_id": {
"type": "string",
"enum": [
"L1",
"L2",
"L3",
"L4",
"L5",
"L6"
],
"description": "작업지시가 걸린 라인(L1~L6). 한 라인에는 하루에 작업지시가 많아야 한 건 걸려요."
},
"item_code": {
"type": "string",
"pattern": "^[A-Z]{2}-[A-Z][0-9]{2,3}$",
"description": "만드는 품목 코드. 같은 품목은 어느 라인에서나 같은 코드예요."
},
"item_name": {
"type": "string",
"description": "품목 이름. item_code 와 언제나 한 쌍이에요."
},
"planned_qty": {
"type": "integer",
"minimum": 1,
"description": "그날 채워야 하는 양품 수(개)."
},
"due_at": {
"type": "string",
"format": "date-time",
"description": "이 수량을 다 만들어야 하는 마감 시각. 작업일 당일의 한국 시간(+09:00) ISO 8601, 초 단위."
}
}
}라인 단말이 보낸 시간대별 생산 수량이에요. 한 행이 보고 한 번이고 order_id 와 counted_at 묶음이 키예요. order_id 는 work_orders.order_id 를 가리키고, 한 보고는 한 작업지시에만 속해요. 단말은 작업지시가 열려 있는 동안 08시에 세기 시작해 09시부터 매시 정각에 직전 한 시간 동안 센 수를 보내고, counted_at 은 그 한 시간이 끝난 시각이에요. good_qty 는 그 한 시간에 나온 양품, defect_qty 는 불량으로 가려낸 수(개)예요. 라인이 한 시간 내내 멈춰 있었어도 보고는 0 으로 와요. 양품 누계가 planned_qty 에 닿으면 작업지시가 닫혀 그 시간의 보고가 마지막이고, 그 뒤로는 보고가 없어요. 17시까지 못 채운 작업지시는 잔업으로 20시까지 보고가 이어지고, 20시에도 못 채우면 그대로 끝나요. 시각은 work_days·work_orders·line_stops 와 같은 공장 시계 기준 한국 시간(+09:00)이에요. 불량이 늘어 양품이 줄어든 시간, 정지로 수량이 줄거나 0 인 시간, 일찍 다 만들어 보고가 끊긴 작업지시, 잔업한 날의 17시 뒤 보고가 들어 있어요. 큰 데이터는 11,327행이고, 시작용은 10월 26일 작업지시 6건의 보고 55행 전부예요.
전체 55행 가운데 앞 5행이에요.
| order_id | counted_at | good_qty | defect_qty |
|---|---|---|---|
| WO-261026-01 | 2026-10-26T09:00:00+09:00 | 257 | 3 |
| WO-261026-01 | 2026-10-26T10:00:00+09:00 | 262 | 2 |
| WO-261026-01 | 2026-10-26T11:00:00+09:00 | 255 | 4 |
| WO-261026-01 | 2026-10-26T12:00:00+09:00 | 261 | 1 |
| WO-261026-01 | 2026-10-26T13:00:00+09:00 | 259 | 3 |
55행 전부를 JSON 파일 하나로 받을 수 있어요.
같은 형식으로 만든 11,327행이에요. 위 데이터가 이 안에 그대로 들어 있어요(한 줄에 한 행, gzip 압축).
미리보기와 내려받는 데이터 모두 이 형식(JSON Schema)을 따라요.
{
"type": "object",
"description": "라인 단말이 보낸 한 시간 생산 수량 보고. 키는 (order_id, counted_at) 묶음.",
"additionalProperties": false,
"required": [
"order_id",
"counted_at",
"good_qty",
"defect_qty"
],
"properties": {
"order_id": {
"type": "string",
"pattern": "^WO-[0-9]{6}-[0-9]{2}$",
"description": "보고를 보낸 작업지시. work_orders.order_id 를 가리켜요."
},
"counted_at": {
"type": "string",
"format": "date-time",
"description": "센 한 시간이 끝난 시각(매시 정각). 라인 단말이 공장 시계로 찍은 한국 시간(+09:00) ISO 8601, 초 단위."
},
"good_qty": {
"type": "integer",
"minimum": 0,
"description": "그 한 시간에 나온 양품 수(개)."
},
"defect_qty": {
"type": "integer",
"minimum": 0,
"description": "그 한 시간에 불량으로 가려낸 수(개). 양품 수에는 들어가지 않아요."
}
}
}라인이 멈췄던 구간이에요. 한 행이 정지 한 번이고 stop_id 가 키예요. line_id 는 work_orders.line_id 와 같은 라인 코드이고, 정지는 작업지시가 아니라 라인에 걸려요. 그래서 작업지시를 다 만든 뒤 다음 품목을 준비하느라 멈춘 것도 기록돼 있어요. started_at 은 라인이 멈춘 시각, ended_at 은 다시 돌기 시작한 시각이고, production_counts 와 같은 공장 시계 기준 한국 시간이에요. 이 데이터는 하루가 끝난 뒤의 기록이라 모든 정지에 ended_at 이 있고, 정지는 그날 안에 끝나요. 한 라인의 정지는 서로 겹치지 않아요. reason 은 설비 고장·금형 교체·자재 대기·품질 점검 가운데 하나예요. 잔업을 정하는 시각 전에 멈춰 그 뒤에 다시 돈 정지, 그 전에 멈췄다가 이미 다시 돈 정지, 그 시각 바로 뒤에 시작한 정지, 다 만든 라인의 금형 교체가 들어 있어요. 큰 데이터는 823건이고, 시작용은 10월 26일에 시작한 정지 6건 전부예요.
전체 6행 가운데 앞 5행이에요.
| stop_id | line_id | started_at | ended_at | reason |
|---|---|---|---|---|
| ST-00818 | L6 | 2026-10-26T12:10:33+09:00 | 2026-10-26T13:35:20+09:00 | 설비 고장 |
| ST-00819 | L4 | 2026-10-26T14:20:05+09:00 | 2026-10-26T15:50:41+09:00 | 금형 교체 |
| ST-00820 | L3 | 2026-10-26T14:41:37+09:00 | 2026-10-26T15:40:12+09:00 | 설비 고장 |
| ST-00821 | L1 | 2026-10-26T15:06:24+09:00 | 2026-10-26T15:31:05+09:00 | 자재 대기 |
| ST-00822 | L5 | 2026-10-26T15:12:48+09:00 | 2026-10-26T15:58:30+09:00 | 품질 점검 |
6행 전부를 JSON 파일 하나로 받을 수 있어요.
같은 형식으로 만든 823행이에요. 위 데이터가 이 안에 그대로 들어 있어요(한 줄에 한 행, gzip 압축).
미리보기와 내려받는 데이터 모두 이 형식(JSON Schema)을 따라요.
{
"type": "object",
"description": "라인 정지 한 번. 키는 stop_id.",
"additionalProperties": false,
"required": [
"stop_id",
"line_id",
"started_at",
"ended_at",
"reason"
],
"properties": {
"stop_id": {
"type": "string",
"pattern": "^ST-[0-9]{5}$",
"description": "정지 번호. 이 표의 키예요."
},
"line_id": {
"type": "string",
"enum": [
"L1",
"L2",
"L3",
"L4",
"L5",
"L6"
],
"description": "멈춘 라인. work_orders.line_id 와 같은 라인 코드예요."
},
"started_at": {
"type": "string",
"format": "date-time",
"description": "라인이 멈춘 시각. 라인 단말이 공장 시계로 찍은 한국 시간(+09:00) ISO 8601, 초 단위."
},
"ended_at": {
"type": "string",
"format": "date-time",
"description": "라인이 다시 돌기 시작한 시각. started_at 과 같은 시계·같은 날이고 언제나 started_at 보다 늦어요."
},
"reason": {
"type": "string",
"enum": [
"설비 고장",
"금형 교체",
"자재 대기",
"품질 점검"
],
"description": "멈춘 사유."
}
}
}근거: 스마트공장 사업을 중심으로 제조 현장의 업무 프로세스와 요구사항을 파악하고, 내부 개발팀과 협업하여 필요한 시스템과 기능을 개발합니다.