| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- codepipeline
- openlens
- Python
- Spring Error
- chartjs
- Jenkins
- aws cicd
- Spring
- PostgreSQL
- COALESCE
- chart.js
- AWS CI/CD 구축하기
- node
- codebuild
- 도커
- codedeploy error
- aws
- Airflow
- codedeploy
- Kafka
- kubeflow
- java bigdecimal
- Flux
- IntelliJ
- docker
- bootstrap
- SQL
- redis
- VPN
- JavaScript
- Today
- Total
Small Asteroid Blog
공유 폴더 문서로 나만의 내부 검색 페이지 만들기 본문
동생과 이야기하다가 이런 불만을 들었다.
"문서 찾는 게 너무 오래 걸려. 사람마다 케이스가 다르고, 했던 내용인거 같은데 관련 파일을 찾으려고 여러 파일을 일일이 열어봐야 해서 시간이 너무 오래 걸려"
사내 공유 폴더에 문서는 잘 정리되어 있는데, 파일명과 안에 내용들을 다 찾아봐야해서 시간이 많이 든다고 했다.
요구사항 정리
- 파일 내용으로 검색 - HWP, PDF, DOCX 파일 내용까지 검색
- 쉬운 사용 - 브라우저만 열 줄 알면 됨
- 보안 - 문서는 절대 외부로 나가면 안 됨
제약사항
- 별도 서버 구축 불가
- 외부 클라우드/API 사용 불가
- PC마다 프로그램 설치 강요 불가
어떻게 만들었나
요구사항과 제약사항을 놓고 고민했다. 서버는 못 세우고, 클라우드도 못 쓰고, 프로그램 설치도 강요할 수 없다면... 남은 건 뭘까?
생각을 정리하다 보니 답이 나왔다.
공유 폴더에 HTML 파일 하나 만들어두고, 거기에 검색 기능을 넣는걸로.
문제는 HWP, PDF, DOCX 파일을 매번 열어서 검색할 수는 없다는 것. 그래서 인덱스를 떠올렸다. 책 뒤에 붙어있는 찾아보기처럼, 미리 문서 내용을 정리해두는 거다.
최종적으로 선택한 구조는 이렇다:
\\NAS\세무자료\
├── documents\ # 실제 문서들 (기존 폴더)
└── search_portal\ # 새로 만든 검색 시스템
├── search.html # 검색 페이지
├── build_index.py # 인덱스 생성 파일
└── index.js # 인덱스 파일
작동 원리
1단계: 색인 만들기 (1주일에 한 번)
파이썬 스크립트(build_index.py)가 이런 일을 한다:
- documents 폴더의 모든 파일을 훑는다
- HWP, PDF, DOCX에서 텍스트를 추출한다
- 각 문서의 정보를 정리해서 index.js라는 파일로 저장한다
2단계: 검색하기
- search.html 파일을 더블클릭한다
- 브라우저가 열리고 검색창이 나타난다
- 검색 키워드를 입력한다
- search.html이 index.js를 읽어서 매칭되는 문서를 보여준다
- 원하는 문서의 "파일 열기"를 클릭하면 실제 HWP/PDF 파일이 열린다
왜 이 방식인가?
- 서버가 없다: 그냥 HTML 파일이라 브라우저만 있으면 된다
- 설치가 없다: 공유 폴더에 있는 파일을 더블클릭만 하면 된다
- 외부 전송 없다: 모든 게 사무실 NAS 안에서만 돌아간다
- 빠르다: 실제 문서를 열지 않고 색인만 검색하니 빠르다
책으로 치면, 매번 책 전체를 읽는 대신 뒤쪽 "찾아보기"만 보는 것과 같은 원리다.
아쉬운 점
완벽하지는 않다.
- 단순 문자열 매칭 (형태소 분석 없음)
- 이미지 PDF 검색 불가
- 문서 많아지면 브라우저 느려짐
완벽한 RAG 대신 실용적인 검색을 선택한 이유
처음의 계획
형태소 분석, 의미 기반 검색, LLM 질의응답까지 갖춘 제대로 된 RAG 시스템을 만들고 싶었는데
하지만 현실적 제약이 명확했다.
- 비용: 클라우드 서버, API 호출 비용
- 시간: 제대로 구축하려면 몇 개월 필요
- 보안: 세무 문서를 외부에 올릴 수 없음
선택한 방법
내가 만들어보고 싶은거 대신 "최소한으로 작동하는 것"을 만들었다.
파이썬 스크립트 + HTML 검색 페이지
서버도, DB도, AI도 없이 공유 폴더 문서를 브라우저에서 검색할 수 있게 했다.
결과
아직 실제 업무에 적용해보지 않아서 사용 후기는 없다. 피드백을 받으면 이 글을 업데이트할 예정이다.
완벽하지 않아도 실용적이길 바란다.