스켈터랩스
경력근거: 고객 데이터 소스와 AI 플랫폼 간 Data Pipeline 연동 개발 및 운영(수집·변환·적재, 배치/스트리밍)
※ 실제 산출물이 아닌 AI 예측 시안입니다.
스켈터랩스는 금융·공공·제조 기업과 기관의 온프레미스·폐쇄망을 포함한 고객 환경에 생성형 AI를 직접 구축하고, 그 뒤 운영과 유지보수까지 맡는 회사예요. 사내 문서를 근거로 답하는 질의응답·요약 서비스 BELLA QNA, 업무 에이전트 BELLA Agent, 기업 전용 LLM, 콜센터용 음성인식·음성합성을 경찰청·신한투자증권·KB국민카드 같은 고객에 구축했어요.
공고는 이 자리의 주요 업무로 '고객 데이터 소스와 AI 플랫폼 간 Data Pipeline 연동 개발 및 운영(수집·변환·적재, 배치/스트리밍)'과 '현장 이슈 분석 후 개발팀과 협업하여 수정·개선 반영'을 꼽아요. 스켈터랩스의 BELLA QNA 는 사내 문서를 근거로 답하는 서비스이고, 블로그에 소개한 증권사 구축 사례도 그룹웨어·준법 시스템 게시판의 문서를 근거로 삼았어요. 이런 서비스는 원천 저장소에서 문서를 고치거나 지워도 그 변경이 AI 플랫폼에 다시 적재돼야 답이 바뀌는데, 문서 저장소와 AI 플랫폼은 서로 다른 시스템이라 변경 기록과 적재 기록이 따로 남아요.
공고는 고객 데이터 소스와 AI 플랫폼 사이의 데이터 파이프라인 연동을 수집·변환·적재까지, 배치와 스트리밍으로 개발하고 운영하는 일을 주요 업무로 꼽아요. 자격 요건에도 엔터프라이즈 환경에서 데이터 파이프라인을 연동해 본 경험을 적었어요.
공고는 프로젝트를 위해 고객사에 파견돼 현장의 문제를 직접 해결하고, 현장 이슈를 분석해 개발팀과 함께 수정·개선을 반영하는 일을 이 자리에 맡겨요.
공고는 배포·운영 자동화 스크립트와 도구를 Python·Shell 등으로 개발하는 일을 주요 업무로 꼽고, 우대사항에 LLM/RAG 인프라 구축 경험을 적었어요.
고객사에 파견된 엔지니어가 현업에서 'AI가 고친 규정이 아니라 옛 내용으로 답한다'는 문의를 받았을 때 터미널에서 실행하는 명령줄 도구예요. 게시판을 하나 고르면 그 게시판 문서마다 고친 최신 버전이 AI 답변 근거 색인에 들어갔는지, 원천에서 지운 문서가 아직 AI 검색에 남아 있는지, 새로 만든 문서가 아직 들어가지 않았는지 알려 주고, 문서 하나를 고르면 원천 변경 기록과 적재 기록을 나란히 보여 줘요. 받은 데이터를 담을 DB 설계와 기술·구조는 지원자가 정해요.
고객사에 파견돼 AI 서비스 인프라와 데이터 파이프라인을 맡은 Forward Deployed Engineer예요. 현업이 '규정을 고쳤는데 AI가 옛 답을 한다'고 물어 오면, 문서 저장소의 변경 기록과 AI 플랫폼의 적재 기록이 서로 다른 시스템에 남아 있어서 문서마다 두 기록을 맞춰 봐야 답할 수 있어요.
고객사 원천 시스템 두 곳(그룹웨어 groupware, 준법 시스템 compliance)의 게시판에 한 번이라도 올라온 문서예요. 한 행이 문서 하나이고 doc_id 가 키예요. 한 문서는 board_id 가 가리키는 게시판 하나에만 속하고, 원천 시스템과 AI 플랫폼이 같은 doc_id 를 써요. 이 데이터의 게시판 36개는 모두 AI 플랫폼이 답변 근거로 적재하는 게시판이에요. 원천에서 지운 문서도 이 표에 남아 있고, 지운 기록은 source_doc_events 에 있어요. 제목 앞부분이 같은 다른 문서(지운 문서와 거의 같은 제목으로 새로 만든 문서, 국내 규정과 해외 규정, 해마다 새로 올리는 안내)가 들어 있어요. 한 게시판 안에서는 제목이 겹치지 않고, 게시판이 다르면 제목이 같은 문서가 있어요. 큰 데이터는 게시판 36개의 문서 24,017건이고, 시작용은 그 가운데 게시판 BD-07 의 문서 16건을 같은 ID·같은 값으로 빠짐없이 잘라 낸 것이에요.
전체 16행 가운데 앞 5행이에요.
| doc_id | source_system | board_id | title |
|---|---|---|---|
| DOC-00150 | groupware | BD-07 | 회의실 예약 규칙 |
| DOC-00151 | groupware | BD-07 | 휴가 사용 규정 |
| DOC-00312 | groupware | BD-07 | 정보보안 지침 |
| DOC-00768 | groupware | BD-07 | 경조사 지원 기준 |
| DOC-01452 | groupware | BD-07 | 여비 규정 |
16행 전부를 JSON 파일 하나로 받을 수 있어요.
같은 형식으로 만든 24,017행이에요. 위 데이터가 이 안에 그대로 들어 있어요(한 줄에 한 행, gzip 압축).
미리보기와 내려받는 데이터 모두 이 형식(JSON Schema)을 따라요.
{
"type": "object",
"description": "원천 게시판에 올라온 문서 하나. 키는 doc_id.",
"additionalProperties": false,
"required": [
"doc_id",
"source_system",
"board_id",
"title"
],
"properties": {
"doc_id": {
"type": "string",
"pattern": "^DOC-[0-9]{5}$",
"description": "문서 번호. 이 표의 키예요. 원천 시스템과 AI 플랫폼이 같은 번호를 써요."
},
"source_system": {
"type": "string",
"enum": [
"groupware",
"compliance"
],
"description": "문서가 있는 원천 시스템. groupware 는 그룹웨어, compliance 는 준법 시스템이에요."
},
"board_id": {
"type": "string",
"pattern": "^BD-[0-9]{2}$",
"description": "문서가 올라온 게시판 코드(BD-01~BD-36). 한 문서는 게시판 하나에만 속해요. BD-01~BD-26 은 그룹웨어, BD-27~BD-36 은 준법 시스템의 게시판이에요."
},
"title": {
"type": "string",
"description": "문서 제목. 한 게시판 안에서는 겹치지 않고, 다른 게시판에는 같은 제목이 있을 수 있어요. 이 데이터에서는 문서를 고쳐도 제목이 바뀌지 않아요."
}
}
}원천 시스템이 남긴 문서 변경 기록이에요. 한 행이 변경 한 번이고 event_id 가 키예요. doc_id 는 source_documents.doc_id 를 가리키고, 한 문서에 변경 기록이 여러 행 있어요. event_type 은 created(만듦)·updated(고침)·deleted(지움) 가운데 하나이고, version 은 그 변경으로 생긴 문서 버전이에요. 만들 때 1, 고칠 때마다 1씩 올라가고, 지운 기록에는 새 버전이 없어 null 이에요. 지운 문서는 다시 살아나지 않아요. event_at 은 원천 시스템의 시계로 찍은 저장 시각이에요. 하루에 두 번 고친 문서, 고친 뒤 지운 문서, 만든 뒤 두 번 더 고친 새 문서, 새벽 02:00 몇 분 앞뒤에 고친 문서, 월요일 아침에 고치거나 만든 문서가 들어 있어요. 기록은 2024년 1월 2일부터 2026년 10월 26일 오전 10시까지 받은 것이에요. 큰 데이터는 그 기간 게시판 36개의 변경 기록 50,008건 전부이고, 시작용은 게시판 BD-07 문서의 변경 기록 40건 전부예요.
전체 40행 가운데 앞 5행이에요.
| event_id | doc_id | event_type | version | event_at |
|---|---|---|---|---|
| EV-000150 | DOC-00150 | created | 1 | 2024-01-08T09:55:02+09:00 |
| EV-000151 | DOC-00151 | created | 1 | 2024-01-08T10:20:16+09:00 |
| EV-000312 | DOC-00312 | created | 1 | 2024-01-15T13:05:00+09:00 |
| EV-000783 | DOC-00768 | created | 1 | 2024-02-05T10:03:27+09:00 |
| EV-001509 | DOC-01452 | created | 1 | 2024-03-04T10:12:08+09:00 |
40행 전부를 JSON 파일 하나로 받을 수 있어요.
같은 형식으로 만든 50,008행이에요. 위 데이터가 이 안에 그대로 들어 있어요(한 줄에 한 행, gzip 압축).
미리보기와 내려받는 데이터 모두 이 형식(JSON Schema)을 따라요.
{
"type": "object",
"description": "원천 시스템이 남긴 문서 변경 한 번. 키는 event_id.",
"additionalProperties": false,
"required": [
"event_id",
"doc_id",
"event_type",
"version",
"event_at"
],
"properties": {
"event_id": {
"type": "string",
"pattern": "^EV-[0-9]{6}$",
"description": "변경 기록 번호. 이 표의 키예요."
},
"doc_id": {
"type": "string",
"pattern": "^DOC-[0-9]{5}$",
"description": "바뀐 문서. source_documents.doc_id 를 가리켜요."
},
"event_type": {
"type": "string",
"enum": [
"created",
"updated",
"deleted"
],
"description": "created 는 문서를 만든 것, updated 는 고친 것, deleted 는 지운 것이에요. 문서마다 created 가 맨 처음 한 번 있고, deleted 는 있으면 맨 마지막 한 번이에요."
},
"version": {
"type": [
"integer",
"null"
],
"minimum": 1,
"description": "그 변경으로 생긴 문서 버전. created 는 1이고 updated 마다 1씩 올라가요. deleted 는 새 버전이 없어 null 이에요."
},
"event_at": {
"type": "string",
"format": "date-time",
"description": "원천 시스템이 그 변경을 저장한 시각. 원천 시스템의 시계로 찍은 한국 시간(+09:00) ISO 8601, 초 단위예요. AI 플랫폼의 indexed_at 과 같은 표준 시각에 맞춰져 있어요."
}
}
}AI 플랫폼이 답변 근거를 찾을 때 검색하는 색인에 문서를 넣고 뺀 기록이에요. 이 데이터에서 AI 답변은 색인에 들어 있는 문서 버전만 근거로 써요. 한 행이 문서 하나를 넣거나 뺀 한 번이고 record_id 가 키예요. doc_id 는 source_documents.doc_id 를 가리키고, 한 문서에 기록이 여러 행 있을 수 있어요. action 이 loaded 면 원천 문서의 version 버전을 넣어 그 문서의 앞 버전을 대신한 것이고, removed 면 그 문서를 색인에서 뺀 것이라 version 이 null 이에요. indexed_at 은 AI 플랫폼의 시계로 찍은, 넣거나 빼는 일을 마친 시각이에요. 이 데이터의 AI 플랫폼은 2026년 6월 1일 새벽에 그때 원천에 있던 문서를 한 번에 넣었고, 그 뒤로는 매일 02:00 에 원천의 변경을 읽어 바뀐 문서를 넣고 빼요. 02:00 에 읽은 뒤 생긴 변경은 그날 새벽 작업에 들어가지 않아요. 하루 늦게 들어간 버전, 하루에 두 번 고쳐 마지막 버전만 들어간 문서, 들어가지 않은 고친 버전과 새 문서, 색인에서 빠지지 않아 AI 검색에 남은 지운 문서, 그 게시판 문서의 기록이 하나도 없는 밤이 들어 있어요. 기록은 2026년 10월 26일 오전 10시까지예요. 큰 데이터는 그 기간 기록 33,942건 전부이고, 시작용은 게시판 BD-07 문서의 기록 23건 전부예요.
전체 23행 가운데 앞 5행이에요.
| record_id | doc_id | action | version | indexed_at |
|---|---|---|---|---|
| IX-000135 | DOC-00150 | loaded | 2 | 2026-06-01T02:05:45+09:00 |
| IX-000136 | DOC-00151 | loaded | 2 | 2026-06-01T02:05:46+09:00 |
| IX-000282 | DOC-00312 | loaded | 2 | 2026-06-01T02:07:12+09:00 |
| IX-000702 | DOC-00768 | loaded | 2 | 2026-06-01T02:11:23+09:00 |
| IX-001346 | DOC-01452 | loaded | 2 | 2026-06-01T02:17:54+09:00 |
23행 전부를 JSON 파일 하나로 받을 수 있어요.
같은 형식으로 만든 33,942행이에요. 위 데이터가 이 안에 그대로 들어 있어요(한 줄에 한 행, gzip 압축).
미리보기와 내려받는 데이터 모두 이 형식(JSON Schema)을 따라요.
{
"type": "object",
"description": "AI 플랫폼이 답변 근거 색인에 문서를 넣거나 뺀 한 번. 키는 record_id.",
"additionalProperties": false,
"required": [
"record_id",
"doc_id",
"action",
"version",
"indexed_at"
],
"properties": {
"record_id": {
"type": "string",
"pattern": "^IX-[0-9]{6}$",
"description": "적재 기록 번호. 이 표의 키예요."
},
"doc_id": {
"type": "string",
"pattern": "^DOC-[0-9]{5}$",
"description": "넣거나 뺀 문서. source_documents.doc_id 를 가리켜요."
},
"action": {
"type": "string",
"enum": [
"loaded",
"removed"
],
"description": "loaded 는 그 문서의 version 버전을 색인에 넣어 그 문서의 앞 버전을 대신한 것이에요. removed 는 그 문서를 색인에서 뺀 것이고, 원천에서 지운 문서에만 있어요."
},
"version": {
"type": [
"integer",
"null"
],
"minimum": 1,
"description": "색인에 넣은 원천 문서 버전. source_doc_events.version 과 같은 번호예요. removed 는 null 이에요."
},
"indexed_at": {
"type": "string",
"format": "date-time",
"description": "AI 플랫폼이 색인에 넣거나 빼는 일을 마친 시각. AI 플랫폼의 시계로 찍은 한국 시간(+09:00) ISO 8601, 초 단위예요. 원천의 event_at 과 같은 표준 시각에 맞춰져 있어요."
}
}
}