Overview
법원도서관의 판례 정보 및 사법행정간행물을 대국민에게 공개하는 통합 검색 시스템 고도화 프로젝트입니다. PDF에 대한 전문 검색(Full-text search)을 지원하고, 신규 판례 데이터를 Apache Solr로 제공하며 통합 검색 포인트가 늘어났음에도 검색 속도는 개선을 진행했습니다.
내 역할: 4인 개발팀 리더 — Solr 검색엔진 도입 전략 수립부터 API 설계, PDF 텍스트 추출, 통합 검색 로직 개선, 공개 자료 항목에 대한 접근 권한 제어
Tech Stack & 선택 근거
- Apache Solr — 핵심 검색 엔진 - Java / Spring — 검색 API 및 색인 파이프라인 개발 - Oracle — 원본 판례 및 행정 데이터 소스 - MyBatis — 복잡한 쿼리 매핑 - PDF 텍스트 추출 — 판례 원문 PDF의 전문 검색 환경 구축
Troubleshooting
Problem
공개 문헌의 저작권 동의 데이터를 관리하기 위해 연동이 필요한 내부 시스템과의 협조가 어려운 상황
Cause
공개 대상 문헌을 보유한 내부 시스템 운영 업체와 사법행정간행물 담당 부서 모두 외부 접근을 최소화하려는 입장이었으며, 자체 테이블로 이중 관리 시 저작권 동의 데이터 동기화 문제가 발생하는 구조
Alternatives
1) 동의 데이터를 웹 시스템 자체 테이블에서 이중 관리하고 동기화 배치 구성
2) API 호출 방식으로 필요한 시점마다 데이터 요청
3) 유관부서 회의를 통해 책임 범위를 명확히 하고 원천 시스템에서 통합 관리
Decision
유관부서 협의를 통해 책임 소재를 명확히 분리. 저작권 동의 현황 및 문헌 데이터는 원천 시스템이 통합 관리하되, 필요한 SELECT 권한 및 API 협조를 받아 데이터 이중화 없이 연동 구현
데이터 이중화 없이 저작권 동의 기반 문헌 공개 뷰어 연동 완료
Troubleshooting
Problem
9개 카테고리 API를 동시에 호출하는 통합 검색 시 응답 시간이 6초를 초과하여 사용자 체감 성능이 매우 낮음
Cause
동일 API 내 검색 기준이 다른 요청들이 내부적으로 순차 처리되고, 목록 표시에 불필요한 필드까지 join으로 일괄 반환하는 구조로 인한 응답 지연
Alternatives
1) 검색 API 수 축소 (기능 제한) 2) 캐싱 레이어 추가 3) 쿼리 병렬화 및 스키마 필드 최적화
Decision
동일 API 내 순차 처리되던 검색 요청을 비동기 병렬 처리 구조로 전환하고, 목록 조회에서 실제 필요한 필드만 반환하도록 쿼리 최적화. 판례 PDF에서 텍스트를 사전 추출해 docValues 기반 색인으로 전문 검색 성능 개선.
응답 속도를 6초 이내로 단축하며 전체 검색 레이턴시 40% 이상 개선. 2025 웹어워드코리아 대상 수상에 기여.
Results & 회고
- 검색 응답 속도: 40% 이상 개선 (기존 대비 6초 이내로 단축)
- 판례 PDF 원문 전문 검색 환경 구축으로 검색 품질 향상
- 다수 유관부서 협의를 통해 데이터 이중화 없이 저작권 동의 기반 문헌 공개 뷰어 연동 완료
- 2025 웹어워드코리아 대상 수상 기여
회고: 팀 리더로서 기술적 의사결정과 일정 조율을 동시에 해야 했습니다. 검색엔진 최적화는 스키마 설계 단계에서 상당 부분 결정된다는 것을 실감했고, 초기 설계에 더 많은 시간을 투자했다면 후반 튜닝 비용을 줄일 수 있었을 것입니다.