주요 로직 및 클래스 설명 - GachonCapstoneTeam/TTS_JAVA GitHub Wiki

⚙️ 3-2. 주요 로직 및 클래스 설명

이 문서에서는 앱의 핵심 로직을 구성하는 주요 클래스와 헬퍼 유틸리티에 대해 설명합니다. 각 클래스는 개별 기능을 모듈화하고, 유지보수와 확장성을 고려한 구조로 설계되었습니다.


📄 Crawling Stocks Report

  • 역할: 종목분석 리포트를 크롤링해옴
  • 기능:
    • 산업분석 리포트에 있는 리포트를 가져옴
    • 카테고리, 종목명, 코드, 제목, 내용, PDF 내용, PDF URL 등을 가져옴
    • 가져온 리포트를 mongoDB에 저장
  • 참고: Crawling Stocks Report

📄 Crawling Industry Report

  • 역할: 산업분석 리포트를 크롤링해옴
  • 기능:
    • 산업분석 리포트에 있는 리포트를 가져옴
    • 카테고리, 종목명, 업종, 제목, 내용, PDF 내용, PDF URL 등을 가져옴
    • 가져온 리포트를 mongoDB에 저장
  • 참고: Crawling Industry Report

🔊 AudioService

  • 역할: 백그라운드에서 오디오(TTS) 재생을 관리하는 ForegroundService
  • 기능:
    • 텍스트 기반 mp3 재생
    • 재생, 일시정지, 시크 이동 등 제어 지원
    • HomeFragmentOriginalActivity에서 바인딩하여 상태 공유
  • 참고: AudioService

🧠 TTSHelper

  • 역할: 텍스트를 MP3 오디오 파일로 변환하는 헬퍼 클래스
  • 기능:
    • Google Cloud TTS API와 연동
    • 변환된 오디오를 캐시 디렉토리에 저장
  • 참고: TTSHelper

🎨 ItemAdapter / ReportAdapter

  • 역할: 각각 HomeFragmentSearchFragment에서 리포트 목록을 표시하는 RecyclerView 어댑터
  • 기능:
    • Item 객체 리스트 바인딩
    • 즐겨찾기 버튼, 플레이 버튼 처리
    • Shimmer Placeholder 로딩 지원 (ReportAdapter 포함)
  • 참고:

💾 PreferenceUtil

  • 역할: SharedPreferences 접근을 캡슐화한 유틸리티
  • 기능:
    • Boolean / String 저장 및 조회
    • 즐겨찾기 상태 저장 (liked_ prefix 기반)
    • 전체 초기화 (로그아웃 시 사용)
  • 참고: PreferenceUtil