문제 상황
- 모의고사 생성 API에서 문제 수를 사용자가 선택할 수 있도록 기능을 확장하면서, 한계가 드러났다.
- 문제 수가 늘어날 수록 요구되는 입력 텍스트의 양이 급격히 증가했고, 텍스트가 충분하지 않으면 생성되는 문제의 품질이 눈에 띄게 떨어졌다.
- 특히 PDF 기반 입력에서는 내부 구조가 제각각이기 때문에 해당 문제가 심해졌다. 현재 품질 자체의 문제는 문제 수를 텍스트 양에 따라 자동 조절하면서 해결되었으나, PDF 내 텍스트 양이 방대할 때의 처리 방안이 딱히 없다는 상황은 변함이 없다.
PDF는 생각보다 훨씬 복잡하다.
PDF 입력은 다음과 같은 복잡한 상황들이 존재한다.
- 어떤 PDF는 텍스트 레이어가 존재한다
- 어떤 PDF는 스캔 이미지로만 구성되어 있다
- 어떤 PDF는 텍스트와 이미지, 도표가 혼재되어 있다.
즉, PDF 입력 단계에서부터 누락 없는 텍스트 확보가 중요한 목표가 되었다.
검토 했던 접근 방식들
현재 전략 : OCR 단독 사용
- 가장 확실한 방법이자 이미지 , 도표, 스캔 텍스트를 모두 인식 가능하다.
- PDF 내부 구조와 상관 없이 동작한다.
하지만 비용 문제가 존재했고, PDF 전체를 한 번에 OCR 요청하는 방식은 실패 시 리스크도 컸고 결국 페이지 제한을 두게 된다.
Spring AI Document Reader
- OCR 없이 PDF의 텍스트 레이어를 바로 추출 가능하다.
- 페이지 단위 Document로 분리할 수 있고 비용 부담을 줄여준다.