리플럭스
경력근거: 웹에이젼시 솔루션제작 온라인이벤트 web개발 맟 전자상거래 개발사업을 하고 있습니다.
※ 실제 산출물이 아닌 AI 예측 시안입니다.
리플럭스는 2003년에 세운 웹에이전시로, 공공기관과 민간기업의 웹사이트·인터넷 쇼핑몰·업무시스템을 수주해 만들고 유지보수(SI·SM)해요. 지자체·정보원 같은 공공기관과 제약사·법무법인·대학병원 같은 민간기업이 발주처예요.
공고는 회사가 '웹에이젼시 솔루션제작 온라인이벤트 web개발 맟 전자상거래 개발사업을 하고 있습니다'라고 밝히고, 이 자리에 'AI 기반 기술을 기반한 개발 업무 전체'를 맡겨요. 회사 소개는 공공기관과 민간기업의 SI·SM을 사업으로 꼽고, 회사 사이트의 포트폴리오에도 법무법인 홈페이지와 시 홈페이지 유지보수가 있어요. 유지보수를 고객사마다 월 시간과 처리 기한을 달리 정해 계약한다면, 여러 고객사의 요청이 한곳에 쌓일 때 달마다 고객사별로 쓴 시간과 늦은 요청을 따로 세야 해요.
공고는 회사를 2003년에 설립한 9명 규모 중소기업으로 소개하고, 웹에이전시·솔루션 제작·온라인 이벤트·웹 개발과 전자상거래 개발 사업을 한다고 밝혀요.
담당업무는 AI 기반 기술을 바탕으로 한 개발 업무 전체예요. 스킬로 Git, JAVA, JSP, Oracle, RestAPI, Spring, Spring Boot, Python, TypeScript를 꼽아요.
우대사항으로 쇼핑몰 구축 경험자와 AI Native 프로젝트 경험자를 꼽아요. 핵심역량에는 성실성·협동심과 함께 계획성과 꼼꼼함을 넣었어요.
PM이 달마다 고객사 웹 담당자에게 유지보수 결과를 보고하기 전에 여는 관리자 페이지예요. 그 달 유지보수 계약이 있는 고객사마다 계약한 월 시간 안에서 작업했는지, 처리 기한을 넘겨 끝난 요청이 있는지, 말일까지 끝나지 않고 기한을 넘긴 요청이 남았는지 알려 줘요. 받은 데이터를 담을 DB 설계와 기술·구조, 그리고 계약 시간을 얼마나 넘겨야 넘김으로 볼지는 지원자가 정해요.
리플럭스에서 여러 고객사의 홈페이지·쇼핑몰 유지보수를 맡는 PM이에요. 고객사마다 계약한 월 유지보수 시간과 처리 기한이 다르면, 요청과 작업 기록이 한곳에 쌓일 때 월말 보고서를 쓰려고 고객사별로 쓴 시간과 늦은 요청을 손으로 골라내게 돼요.
유지보수 계약을 맺은 고객사예요. 한 행이 고객사(사이트) 하나이고 client_id 가 키예요. 한 기관이 사이트마다 따로 계약하면 고객사도 따로 있어서, 이름 앞부분이 같은 다른 고객사(같은 의료원의 통합 홈페이지와 건강검진센터)가 들어 있어요. 큰 데이터는 2023년 11월부터 36개월 동안 계약했던 고객사 16곳이고, 시작용은 그 가운데 2026년 10월 1일에 계약이 유효한 12곳이에요. 시작용 행은 모두 큰 데이터에 같은 ID·같은 값으로 들어 있어요.
전체 12행 가운데 앞 5행이에요.
| client_id | client_name |
|---|---|
| CL-01 | 가람법무법인 홈페이지 |
| CL-02 | 한빛의료원 통합 홈페이지 |
| CL-03 | 한빛의료원 건강검진센터 |
| CL-04 | 다온몰 쇼핑몰 |
| CL-05 | 누리문화재단 홈페이지 |
12행 전부를 JSON 파일 하나로 받을 수 있어요.
같은 형식으로 만든 16행이에요. 위 데이터가 이 안에 그대로 들어 있어요(한 줄에 한 행, gzip 압축).
미리보기와 내려받는 데이터 모두 이 형식(JSON Schema)을 따라요.
{
"type": "object",
"description": "유지보수 고객사(사이트) 하나. 키는 client_id.",
"additionalProperties": false,
"required": [
"client_id",
"client_name"
],
"properties": {
"client_id": {
"type": "string",
"pattern": "^CL-[0-9]{2}$",
"description": "고객사 번호. 이 표의 키예요."
},
"client_name": {
"type": "string",
"description": "고객사와 맡은 사이트를 함께 부르는 이름. 같은 기관이라도 사이트마다 따로 계약하면 이름이 달라요."
}
}
}고객사와 맺은 유지보수 계약이에요. 한 행이 계약 한 건이고 contract_id 가 키예요. client_id 는 sm_clients.client_id 를 가리키고, 한 고객사는 기간이 겹치지 않게 계약을 여러 번 이어 맺어요. 계약은 어느 달의 1일(starts_on)에 시작해 어느 달의 말일(ends_on)에 끝나고, 두 날 모두 포함해요. monthly_hours 는 계약서에 적힌 한 달 유지보수 시간(정수 시간)이고, due_days 는 계약서에 적힌 처리 기한으로 요청이 들어온 시각부터 처리 완료 시각까지를 하루 24시간으로 센 일수예요. 기간 중간에 월 시간을 늘려 새로 계약한 고객사와, 계약이 끝나 더는 유지보수하지 않는 고객사가 들어 있어요. 큰 데이터는 계약 전부이고, 시작용은 10월에 계약이 유효한 12곳이 2026년 9~10월에 맺고 있던 계약이에요.
전체 13행 가운데 앞 5행이에요.
| contract_id | client_id | starts_on | ends_on | monthly_hours | due_days |
|---|---|---|---|---|---|
| CT-0003 | CL-01 | 2025-11-01 | 2026-10-31 | 12 | 3 |
| CT-0006 | CL-02 | 2025-11-01 | 2026-09-30 | 6 | 2 |
| CT-0007 | CL-02 | 2026-10-01 | 2027-09-30 | 12 | 2 |
| CT-0010 | CL-03 | 2026-05-01 | 2027-04-30 | 7 | 3 |
| CT-0013 | CL-04 | 2025-11-01 | 2026-10-31 | 9 | 2 |
13행 전부를 JSON 파일 하나로 받을 수 있어요.
같은 형식으로 만든 43행이에요. 위 데이터가 이 안에 그대로 들어 있어요(한 줄에 한 행, gzip 압축).
미리보기와 내려받는 데이터 모두 이 형식(JSON Schema)을 따라요.
{
"type": "object",
"description": "유지보수 계약 한 건. 키는 contract_id.",
"additionalProperties": false,
"required": [
"contract_id",
"client_id",
"starts_on",
"ends_on",
"monthly_hours",
"due_days"
],
"properties": {
"contract_id": {
"type": "string",
"pattern": "^CT-[0-9]{4}$",
"description": "계약 번호. 이 표의 키예요."
},
"client_id": {
"type": "string",
"pattern": "^CL-[0-9]{2}$",
"description": "계약한 고객사. sm_clients.client_id 를 가리켜요."
},
"starts_on": {
"type": "string",
"format": "date",
"description": "계약 시작 날짜(한국 날짜, 그날 포함). 언제나 어느 달의 1일이에요."
},
"ends_on": {
"type": "string",
"format": "date",
"description": "계약 끝 날짜(한국 날짜, 그날 포함). 언제나 어느 달의 말일이에요."
},
"monthly_hours": {
"type": "integer",
"minimum": 1,
"description": "계약서에 적힌 한 달 유지보수 시간(시간, 정수). 계약 기간의 모든 달에 같아요."
},
"due_days": {
"type": "integer",
"minimum": 1,
"description": "계약서에 적힌 처리 기한(일). 요청이 들어온 시각부터 처리 완료 시각까지를 하루 24시간으로 센 일수예요(주말 포함)."
}
}
}고객사 웹 담당자가 넣은 유지보수 요청이에요. 한 행이 요청 한 건이고 req_id 가 키예요. client_id 는 sm_clients.client_id 를 가리켜요. requested_at 은 요청 접수 시스템이 요청을 받은 시각이고, done_at 은 같은 시스템에서 처리 완료로 바꾼 시각이에요(둘 다 같은 시스템 시계, 한국 시간). 기록은 2026년 11월 1일 0시 직전까지이고, done_at 이 비어 있으면 그때까지 끝나지 않은 요청이에요. 처리 기한을 넘겨 끝난 요청, 말일까지 끝나지 않은 요청, 말일 직전에 들어와 아직 기한 안인 요청, 앞 달 말에 들어와 이번 달 초에 끝난 요청이 들어 있어요. 큰 데이터는 36개월 동안의 요청 전부이고, 시작용은 시작용 12곳의 요청 가운데 2026년 10월에 들어왔거나, 10월 1일 0시에 아직 끝나지 않았거나, 10월에 작업 기록이 있는 요청 전부예요.
전체 40행 가운데 앞 5행이에요.
| req_id | client_id | title | requested_at | done_at |
|---|---|---|---|---|
| REQ-01230 | CL-01 | 세미나 신청 게시판 추가 | 2026-09-29T11:09:05+09:00 | 2026-10-01T12:59:03+09:00 |
| REQ-01232 | CL-02 | 예약 안내 문구 수정 | 2026-09-30T15:16:07+09:00 | 2026-10-01T09:09:05+09:00 |
| REQ-01233 | CL-06 | 상품 상세 레이아웃 수정 | 2026-09-30T15:46:53+09:00 | 2026-10-01T18:49:49+09:00 |
| REQ-01234 | CL-11 | 자료실 첨부파일 오류 수정 | 2026-10-01T10:53:43+09:00 | 2026-10-01T17:29:27+09:00 |
| REQ-01235 | CL-11 | 행사 안내 페이지 제작 | 2026-10-01T18:21:31+09:00 | 2026-10-02T18:46:03+09:00 |
40행 전부를 JSON 파일 하나로 받을 수 있어요.
같은 형식으로 만든 1,270행이에요. 위 데이터가 이 안에 그대로 들어 있어요(한 줄에 한 행, gzip 압축).
미리보기와 내려받는 데이터 모두 이 형식(JSON Schema)을 따라요.
{
"type": "object",
"description": "유지보수 요청 한 건. 키는 req_id.",
"additionalProperties": false,
"required": [
"req_id",
"client_id",
"title",
"requested_at",
"done_at"
],
"properties": {
"req_id": {
"type": "string",
"pattern": "^REQ-[0-9]{5}$",
"description": "요청 번호. 이 표의 키예요."
},
"client_id": {
"type": "string",
"pattern": "^CL-[0-9]{2}$",
"description": "요청한 고객사. sm_clients.client_id 를 가리켜요."
},
"title": {
"type": "string",
"description": "고객사 웹 담당자가 적은 요청 제목."
},
"requested_at": {
"type": "string",
"format": "date-time",
"description": "요청 접수 시스템이 요청을 받은 시각. 한국 시간(+09:00) ISO 8601, 초 단위."
},
"done_at": {
"type": [
"string",
"null"
],
"format": "date-time",
"description": "같은 요청 접수 시스템에서 처리 완료로 바꾼 시각. 한국 시간(+09:00) ISO 8601, 초 단위. 비어 있으면 기록이 끝나는 2026-11-01T00:00:00+09:00 까지 끝나지 않은 요청이에요."
}
}
}개발자가 요청을 처리하며 작업한 날마다 남긴 작업 시간이에요. 한 행이 한 요청에 한 날 남긴 기록이고 log_id 가 키예요. req_id 는 sm_requests.req_id 를 가리켜요. worked_on 은 작업한 한국 날짜이고, work_minutes 는 그날 그 요청에 쓴 시간(30분 단위 정수 분)이에요. 한 요청을 여러 날에 걸쳐 작업한 기록과, 앞 달 말에 들어온 요청을 이번 달 초에 작업한 기록이 들어 있어요. 큰 데이터는 36개월 동안의 작업 기록 전부이고, 시작용은 2026년 10월에 남긴 기록 전부예요.
전체 45행 가운데 앞 5행이에요.
| log_id | req_id | worked_on | work_minutes |
|---|---|---|---|
| WL-001496 | REQ-01232 | 2026-10-01 | 120 |
| WL-001497 | REQ-01233 | 2026-10-01 | 120 |
| WL-001498 | REQ-01234 | 2026-10-01 | 30 |
| WL-001499 | REQ-01235 | 2026-10-01 | 30 |
| WL-001500 | REQ-01236 | 2026-10-02 | 60 |
45행 전부를 JSON 파일 하나로 받을 수 있어요.
같은 형식으로 만든 1,540행이에요. 위 데이터가 이 안에 그대로 들어 있어요(한 줄에 한 행, gzip 압축).
미리보기와 내려받는 데이터 모두 이 형식(JSON Schema)을 따라요.
{
"type": "object",
"description": "한 요청에 한 날 남긴 작업 시간. 키는 log_id.",
"additionalProperties": false,
"required": [
"log_id",
"req_id",
"worked_on",
"work_minutes"
],
"properties": {
"log_id": {
"type": "string",
"pattern": "^WL-[0-9]{6}$",
"description": "작업 기록 번호. 이 표의 키예요."
},
"req_id": {
"type": "string",
"pattern": "^REQ-[0-9]{5}$",
"description": "작업한 요청. sm_requests.req_id 를 가리켜요."
},
"worked_on": {
"type": "string",
"format": "date",
"description": "작업한 날(한국 날짜)."
},
"work_minutes": {
"type": "integer",
"minimum": 30,
"multipleOf": 30,
"description": "그날 그 요청에 쓴 시간(분, 30분 단위 정수)."
}
}
}