데이터를 원천에서 가져와 정리·검증한 뒤 필요한 곳에 넣어 주는 자동화된 처리 흐름으로, 사람이 매번 손대지 않아도 정해진 순서와 일정에 맞춰 같은 작업을 반복한다. AI에서는 학습 데이터 준비, RAG 지식 베이스 갱신, 실시간 추론에 쓸 데이터 공급에 쓴다.
| 단계 | 하는 일 | 예시 |
|---|---|---|
| 수집 | 원천에서 가져오기 | DB, API, 파일 |
| 변환 | 정제, 형식 맞추기 | 중복 제거, 청킹 |
| 검증 | 품질 확인 | 빈 값, 형식 오류 검사 |
| 적재 | 목적지에 저장 | 벡터 DB, 학습용 저장소 |
RAG 시스템의 파이프라인은 문서 파싱 → 청킹 → 임베딩 → 벡터 DB 저장 순서로 흐른다. LlamaIndex나 LangChain의 Document Loader를 쓰면 PDF나 웹페이지 같은 원천을 읽어 오는 코드를 직접 짜지 않아도 된다.
한 번 만들고 끝나는 작업이 아니다. 원천 문서가 바뀌면 파이프라인이 다시 돌면서 재인덱싱해야 답변이 최신 내용을 따라간다.
| 방식 | 동작 | 이럴 때 쓴다 |
|---|---|---|
| 배치 | 정해진 시간에 모아서 처리 | 사내 문서 RAG 야간 갱신, 학습 데이터 준비 |
| 스트리밍 | 들어오는 즉시 처리 | 실시간 추천, 이상 탐지 입력 |
RAG나 학습 작업은 대부분 배치로 충분하다. 스트리밍은 운영이 훨씬 복잡해지므로 몇 분 늦는 것만으로 결과가 달라지는 경우에만 고른다.
처음에는 스크립트 하나와 cron 같은 스케줄러면 된다. 단계가 늘어나고 실패했을 때 재시도·알림·실행 기록이 필요해지면 Airflow, Prefect, Dagster 같은 오케스트레이션 도구로 옮긴다. 이런 도구는 각 단계를 작업 단위로 나눠 순서대로 실행하고, 어디서 실패했는지 보여 준다. 클라우드에서 ML 학습 흐름을 돌린다면 Vertex AI Pipelines 같은 관리형 서비스도 선택지다.
| 상황 | 추천 |
|---|---|
| 문서가 적고 가끔 갱신 | 스크립트 + 수동 실행 |
| 매일 갱신, 단계가 단순 | 스크립트 + cron |
| 원천이 여러 개, 실패 대응 필요 | 오케스트레이터 |
중간에 깨진 데이터가 섞여도 모델은 그대로 받아서 틀린 답을 낸다. 그래서 단계마다 빈 값, 형식 오류, 갑자기 크게 바뀐 건수를 검사하고, 이상하면 적재를 멈추도록 해 두는 게 좋다.
재인덱싱할 때는 바뀐 문서만 다시 처리해야 임베딩 비용과 시간이 줄어든다. 원천에서 지운 문서를 벡터 DB에서도 지우는 일은 자주 빠뜨리니 따로 챙겨야 한다.
AI 쪽에서 가장 흔한 건 사내 문서 검색용 벡터 DB를 정해진 시간마다 갱신하는 배치 파이프라인이다. 그다음으로 학습·파인튜닝 데이터를 준비하거나, 실시간 모델에 들어갈 입력을 공급하는 데 쓴다.
| 어디서 | 어떻게 쓰나 |
|---|---|
| 사내 문서 검색 (RAG) | 밤마다 바뀐 문서만 파싱·청킹·임베딩해 벡터 DB에 넣고, 지운 문서는 함께 삭제 |
| 학습·파인튜닝 데이터 준비 | 로그나 대화 기록을 모아 중복 제거·형식 검사를 거친 뒤 학습용 저장소에 적재 |
| 실시간 추천·이상 탐지 | 들어오는 이벤트를 스트리밍으로 바로 정리해 모델 입력으로 전달 |
| 분석 리포트·대시보드 | 여러 DB·API 데이터를 매일 모아 정리한 뒤 데이터 웨어하우스에 적재 |