본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
통합형 Loader 인터페이스
- loader 객체 : 다양한 로더 도구를 활용하여 loader 객체 생성
- 생성된 loader 객체의 load() 함수는 전체 문서를 로드하여 반환
- 생성된 loader 객체의 load_and_split() 함수는 문서를 split 한 결과를 반환함
- 반환된 document 구조는 page_content 와 metadata 속성값을 포함함. page_content는 문서 내용을, metadata는 파일명, 페이지 번호, 그 밖에 유용한 메타정보를 포함함.
PyPDF
from langchain_community.document_loaders import PyPDFLoader
# PDF 파일 로드, 파일의 경로 입력
loader = PyPDFLoader("파일경로")
# 페이지 별 문서 로드
docs = loader.load()
print(f"문서의 수 : {len(docs)}")
⇒ 페이지 단위로 각각의 문서를 생성
docs[0]
⇒ 이 때 나오는 Document 객체가 매우 중요!
- page_content
해당 페이지의 내용 - metadata
pdf 파일에서 내용을 발췌할 때, 파일명과 저자, 페이지 정보를 같이 주게 되면 LLM이 답변에 그 내용들을 포함시켜서 제공.
메타데이터는 {key : value} 로 구성되어 있음. → {'source' : 파일명, 'page' : 페이지 번호}
이 때, '페이지 번호'는 일반적으로 우리가 보는 pdf 페이지 번호와 차이가 있음. pdf는 1페이지 부터 시작하는데, 여기서는 0페이지부터 시작함. 따라서, 나중에 출처를 밝힐 때 주어진 페이지 번호에 +1 한 값을 출처에 남겨야함.
print(docs[10].page_content)
⇒ 페이지 내용들을 볼 수 있음.
print(docs[10].metadata)
⇒ 메타데이터를 확인할 수 있음
* PDF loader에 따라 불러오는 정보에 차이가 있을 수 있음. ⇒ 벤치마크 상으로는 PDFPlumberLoader 가 좋음.
오늘은 LangChain에서 제공하는 통합형 Loader 인터페이스와 PyPDFLoader의 동작 방식을 중심으로 학습했어요. Loader는 다양한 파일 형식(PDF, CSV, TXT, Word 등)을 동일한 방식으로 불러올 수 있도록 만든 공통 인터페이스라고 합니다. 이 구조 덕분에 나중에 문서 형식이 바뀌더라도 RAG 전체 파이프라인 구조를 거의 수정하지 않고도 그대로 유지할 수 있다는 점이 너무 효율적이라고 느꼈어요.
loader.load() 는 문서를 페이지 단위의 Document 객체 리스트로 반환하는데, 이 방식은 원문 검증이나 메타데이터 확인, 전처리 과정에서 매우 유용하게 쓰이죠. 반면 loader.load_and_split()은 문서를 자동으로 분할한 결과를 바로 반환해 주기 때문에 벡터 DB에 바로 넣을 수 있는 RAG 전처리 단계에 최적화된 기능이라고 합니다. 두 메서드의 역할이 명확히 구분된다는 점에서 실무에서도 활용도가 아주 높을 것 같아 보였어요.
강사님께서 '메타데이터'에 대해 강조하셨는데, 메타데이터는 단순한 부가 정보가 아니라 LLM 답변의 신뢰도를 높여주는 핵심 요소라고 해요. 예를 들어 '이 정보는 1페이지에서 가져왔습니다' 처럼 출처가 포함된 답변이 가능해지고, 사용자가 원문을 다시 검증할 수 있기 때문에 RAG 기반 시스템의 신뢰성과 설명력이 크게 향상된다고 합니다. 또,,,PDF 로더는 종류에 따라 성능 차이도 있다고 해요. '어차피 PDF 파일을 읽어오는건 마찬가지인데, 뭐가 다르지?' 했는데, 어떤 로더는 문장 앞에 'n' 글자가 더해지기도 하고, 어떤 로더는 내용을 누락시키고 읽어오기도 하더라고요?! 벤치마크 기준으로는 PDFPlumberLoader가 표, 문단 구조, 줄 간격 인식 측면에서 더 우수하다고 하셨어요. 특히 스캔된 PDF의 경우에는 OCR 기반 Loader를 사용해야 정상적인 텍스트 추출이 가능하다는 점도 중요한 포인트였죠!
요즘 대부분 문서가 PDF 형태로 저장되거나 제출되곤 하죠...제가 갖고 있는 파일들도 대부분이 PDF 파일이네요. 근데 이런 Loader 도구를 통해서 문서를 불러오고, 필요한 부분만 정확하게 추출해서 질문에 대한 답변으로 활용할 수 있다는 점이 아주 효율적이라고 느껴졌어요. Loader는 단순히 '파일 읽기 도구'가 아니라, RAG 시스템 품질을 결정하는 가장 첫 번째 요소라는 점을 확실히 알게 됐어요. 앞으로 잘 활용해볼게요!!




커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스
성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.
fastcampus.co.kr
'RAG' 카테고리의 다른 글
| 패스트캠퍼스 환급챌린지 30일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.12.11 |
|---|---|
| 패스트캠퍼스 환급챌린지 29일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.12.10 |
| 패스트캠퍼스 환급챌린지 27일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.12.08 |
| 패스트캠퍼스 환급챌린지 : 테디노트의 RAG 비법노트 강의 중간 점검 (1) | 2025.12.07 |
| 패스트캠퍼스 환급챌린지 26일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.12.07 |