2025 SSAFY 13기 특화 프로젝트 - 서울 2반 A203팀
PaperPal은 Computer Science 분야의 논문 탐색과 학습을 지원하는 AI 기반 플랫폼입니다. 맥락 기반 검색, 번역, 요약 기능을 통해 연구자들의 논문 학습 효율성을 향상시킵니다.
타겟 사용자
- CS 연구 논문을 탐색/활용하는 석박사 과정 대학원생
- 데이터/AI 학부 연구생 및 졸업논문 준비생
해결하고자 하는 문제
- 키워드 기반 검색의 한계: 맥락 내 단어의 의미가 반영되지 않은 검색 결과
- 번역의 어려움: 논문 복사 시 강제 개행으로 인한 부자연스러운 번역
- 논문 이해의 어려움: 긴 영어 논문을 빠르게 파악하기 어려운 문제
설문 조사 결과 (대학원생/학부연구생 대상)
- 92%가 논문 검색 시 불편함을 경험
- 59%가 논문 학습 시 번역 도구 사용
- 91%가 논문 요약 서비스 사용 의향 보유
질문 증강 (Query Enhancement)
- 이모지, 특수문자 제거
- 슬랭, 줄임말을 정식 용어로 변환
- 문법 교정
- 쿼리 확장 (이론/응용 구분)
- 이론일 경우: 원리, 이유 설명 논문
- 응용일 경우: 적용, 구현 사례 논문
청킹 전략
- 500자 (약 128토큰) 단위 청크 분할
- 근거 논문:
- Rethinking Chunk Size for Long-Document Retrieval (2025)
- Financial Report Chunking for Effective RAG (2024)
- 실험 결과: 500자 청크에서 하이브리드 검색 (α=0.8) 최고 정확도 달성
순위 산정 방식
최종 점수 = (피인용수 가중치 × 영향력 점수 + 게재연도 가중치 × 최신성 점수) × 벡터 유사도 점수
영향력 점수 = ln(1 + cit) / ln(1 + c95)
최신성 점수 = 2^(-age_days / τ) (τ = 365일)
- 피인용수: 상위 95% 기준값(c95)으로 로그 변환하여 정규화
- 게재연도: 반감기 1년 적용으로 최신 논문 우대
- CS 분야 특성 반영: 다른 분야 대비 빠른 변화 속도 고려
모델 파인튜닝
- 베이스 모델: pko-t5-base
- 학습 데이터: Helsinki-nlp/opus-100, Korpora 병렬 말뭉치
- BLEU 점수: 22.5 (베이스 모델 대비 22배 향상)
텍스트 전처리
- 하이픈(-)과 개행된 단어를 하나로 연결
- 개행문자(\n)를 공백으로 변환하여 문장 연속성 확보
성능 최적화
- 문제: 3000자 번역에 30초 이상 소요, 품질 저하
- 해결: 256토큰(약 500자) 단위 청크 분할 + 병렬 처리
- 결과: 8000자 번역 13초 완료, 번역 품질 향상
접근 방식
-
TextRank/BERTSum 추출 요약 방식의 한계
- 빈도 기반으로 reference 부분 추출
- 실험 결과, 년도 등의 숫자가 있는 부분 추출
- 의미론적 핵심 파악 불가
-
LLM API 기반 생성 요약 채택
- 논문 내용 이해 후 핵심 분석
- 프롬프팅을 통한 일관된 형식 제공
- 고품질 요약 생성
- 인기 논문 목록 (피인용수 기준)
- 최근 올라온 논문
- 카테고리별 최근 연구 동향
- 오늘의 논문 데이터 수집 현황
Frontend
- React 19.1.1
- TypeScript ~5.8.3
- Vite ^7.1.2
- Zustand (상태 관리)
Backend
- Spring Boot
- MySQL (Primary-Replica 구조)
- Redis (캐싱)
AI/ML
- Apache Spark (대용량 데이터 처리)
- Weaviate (Vector Database)
- Apache Airflow (데이터 파이프라인 오케스트레이션)
- Hadoop (분산 저장)
- pko-t5-base (번역 모델)
Infrastructure
- Docker & Docker Compose
- Nginx (리버스 프록시)
arXiv API → Apache Airflow → Apache Spark (텍스트 처리)
↓
MySQL (메타데이터) + Weaviate (벡터) + Hadoop (PDF)
DAG 구성
- DAG 1: 논문 메타데이터 수집
- DAG 2: PDF 수집
- DAG 3: 논문 본문 수집
- DAG 4: 논문 본문 임베딩
데이터베이스 설계
- MySQL Primary: 쓰기 작업 전담
- MySQL Replica: 읽기 작업 분산
- 벡터 유사도 검색은 Weaviate에서 처리
Node.js 18+
Java 11+
Docker 24+
Docker Compose 2.20+
Python 3.8+
- 저장소 클론
git clone [repository-url]
cd paperpal- 환경 변수 설정
cp .env.example .env
# .env 파일을 열어 필요한 값 설정- Docker 컨테이너 실행
docker-compose up -d- 프론트엔드 실행
cd FE
npm install
npm run dev- 백엔드 실행
cd BE
./gradlew bootRun배포 관련 상세 가이드는 exec/db_dump.zip 참조
- 질문 증강 미적용: 약 50% 정확도
- 질문 증강 적용 (하이브리드 α=0.8, 500자 청크): 약 75% 정확도
- BLEU 점수 변화:
- 베이스 모델 (pko-t5-base): 1.0
- Helsinki-nlp/opus-100 적용: 6.5
- Korpora 병렬 말뭉치 적용: 22.5
- 번역 처리 속도: 8000자 기준 13초
| 이름 | 역할 |
|---|---|
| 이준희 | 팀장 / Backend |
| 김수연 | Backend |
| 한종욱 | Backend |
| 양진서 | Frontend |
| 이종현 | Frontend |
| 임준영 | Infra |
- 트랜잭션 지원 및 ACID 보장 필요
- 단순 텍스트 저장으로 유연한 스키마 불필요
- 벡터 검색은 별도 Weaviate 사용
- 개발 기간 고려 시 팀 익숙도 우선
- 변화 속도가 빠른 분야 특성
- arXiv 등 프리프린트 공개 문화
- 최신 연구 빠른 반영 필요성
- CS 특화 검색으로 정확도 향상
- 다국어 지원 확대 (영어 외 언어)
- 사용자 간 논문 공유 및 협업 기능
- 북마크 및 개인 라이브러리 관리
- 다른 학문 분야로 확장 (생물학, 물리학 등)
PaperPal - 당신의 똑똑한 논문 친구
