Skip to content

v1.2.0

Latest

Choose a tag to compare

@yuchem2 yuchem2 released this 18 Feb 08:02
0f15276

🚀 Release v1.2.0

Plum 프로젝트의 세 번째 공식 업데이트입니다! 이번 버전에서는 AI 기반 강의 요약 및 PDF 다운로드, 음성 인식(STT) 파이프라인 구축, 그리고 서버 무상태성 확보 및 오토스케일링을 통해 서비스의 고도화 및 확장성을 동시에 달성했습니다.


✨ 주요 기능 (Key Features)

🤖 AI 강의 요약 및 STT (AI Analytics & Transcription)

  • 실시간 음성 처리: 강의실 내 음성 녹음 기능을 추가하고, 저장된 오디오를 STT(Speech-to-Text) 데이터로 변환하는 파이프라인을 구축했습니다.
  • LLM 요약 시스템: 변환된 텍스트 데이터를 LLM을 통해 핵심 내용을 요약하고, 요약본을 PDF 파일로 즉시 다운로드할 수 있는 기능을 구현했습니다.
  • 비동기 처리 최적화: AI 요약 작업의 진행 상태를 확인하기 위한 폴링(Polling) 기능과 전용 워커(ai-worker)를 도입하여 대규모 처리 기반을 마련했습니다.

🏗️ 서버 아키텍처 및 확장성 (Scalability & Infrastructure)

  • 무상태(Stateless) 서버 구현: Redis 의존성을 강화하고 서버 내 휘발성 데이터를 정리하여, 특정 서버에 종속되지 않는 진정한 무상태 환경을 조성했습니다.
  • Server Auto-scaling: 트래픽 변화에 유연하게 대응할 수 있도록 서버 오토스케일링 설정을 도입했습니다.
  • 모니터링 고도화: Prometheus 및 모니터링 설정 수정을 통해 컨테이너 내부 경로 및 데이터 수집의 정확도를 높였습니다.

🎙️ 미디어 및 강의실 경험 (Enhanced Classroom Experience)

  • 발화자 감지 및 정렬: 현재 말하고 있는 사용자를 감지하여 화면 상단에 우선 배치하는 로직을 통해 상호작용의 몰입감을 높였습니다.
  • 오디오 품질 개선: 입력 잡음 제거(Noise Suppression) 기능을 추가하여 더욱 선명한 음성 전달이 가능해졌습니다.
  • UX 디테일 강화: 강의실 가이드, 나가기 확인 모달, 인터랙션 사운드, 그리고 사용자별 음소거 상태 표시 기능을 추가하여 사용자 편의성을 극대화했습니다.

🛠 버그 수정 및 개선 (Fixes & Improvements)

  • 미디어: 백그라운드 영상 멈춤 문제와 카메라 전환 시 원본 배경이 잠시 노출되는 현상을 해결했습니다.
  • 안정성: 방 초기화 시 전역 상태 정리 로직을 추가하고, 세션 만료 시간을 조정하여 연결 안정성을 확보했습니다.
  • CI/CD: AI 워커의 Docker 이미지 빌드 및 내부 경로 문제를 해결하여 배포 자동화의 완성도를 높였습니다.
  • 데이터: 참여도 점수 집계 방식의 오류를 수정하고, 투표 조회 시 투표자 정보가 정확히 응답되도록 개선했습니다.

👤 Contributors

@YunDo-Gi, @dami0806, @yuchem2, @KimDongGyun23


🔗 Details

PR 상세 내역 보기
  • fix: 백그라운드 영상 멈춤 문제 해결 by @YunDo-Gi in #306
  • feat: 강의실 가이드 추가 by @YunDo-Gi in #316
  • feat: server 무상태를 위한 Redis 의존성 놓고 데이터 정리 로직 추가하기 by @dami0806 in #317
  • feat: 오디오 입력 잡음 제거 by @YunDo-Gi in #323
  • feat: 강의실 음성 녹음 기능 추가 by @yuchem2 in #325
  • feat: 인터렉션 사운드 추가 by @YunDo-Gi in #321
  • feat: 나가기 확인 모달 추가 by @YunDo-Gi in #331
  • feat: 강의록 조회 api 연동 by @YunDo-Gi in #329
  • refactor: 프론트엔드 강의실 서버 통신 구조화 by @KimDongGyun23 in #336
  • fix: 강의실 제목이 검증 방식과 클라이언트 저장 방식 수정 by @KimDongGyun23 in #340
  • refactor: 음소거 상태 관리 변수명 변경 by @YunDo-Gi in #341
  • fix: 카메라를 껐다 켤때 원본 배경이 보이는 문제 해결 by @YunDo-Gi in #339
  • feat: server autoscaling by @dami0806 in #337
  • fix: 소켓 세션 네임 수정 by @dami0806 in #348
  • fix: 발표자가 get_active_* 요청을 보내는 오류 해결 by @yuchem2 in #350
  • fix: server websocker url 수정 by @dami0806 in #351
  • feat: 저장된 음성 파일을 STT 변환 기능 추가 by @yuchem2 in #347
  • feat: Select 컴포넌트 추가 및 적용 by @YunDo-Gi in #345
  • chore: rules.yml 다시 전 버전으로 백 by @dami0806 in #352
  • fix: ai-worker 폴더 경로 문제 해결 by @yuchem2 in #353
  • chore: ci 시 ai-worker 이미지를 빌드하도록 수정 by @yuchem2 in #358
  • fix: ai-worker docker 내부 파일 없는 문제 해결 by @yuchem2 in #360
  • feat: 사용자들의 음소거 상태 표시 by @YunDo-Gi in #359
  • feat: 요약페이지 접근에 대한 플로우 개선 by @KimDongGyun23 in #361
  • docs: 리드미 업데이트 by @YunDo-Gi in #366
  • fix: room 분배 문제와 모니터링 수정테스트 by @dami0806 in #375
  • fix: 발표자 화면에서 소강의실 및 참가자 관리 주석 처리 by @KimDongGyun23 in #368
  • feat: 투표 조회 시 활성 투표에 대해 투표자 정보 응답 by @YunDo-Gi in #369
  • refactor: UX 개선 by @YunDo-Gi in #370
  • refactor: interaction module 분리 by @yuchem2 in #378
  • feat: stt 데이터를 llm으로 요약하는 기능 추가 by @yuchem2 in #373
  • refactor: 강의실 생성 페이지 구조 개선 by @KimDongGyun23 in #377
  • feat: 발화자 감지 및 정렬 기능 추가 by @YunDo-Gi in #382
  • fix: 참여도 점수 잘못된 집계 방식 수정 by @yuchem2 in #386
  • fix: 모니터링설정 수정 by @dami0806 in #390
  • refactor: 발화자 정렬 로직 개선 by @YunDo-Gi in #388
  • fix: Prometheus 설정컨테이너 내부 경로 수정 by @dami0806 in #394
  • fix: Ai 요약에서 불필요한 로그를 제거합니다. by @yuchem2 in #391
  • feat: AI 강의 요약 폴링 기능 연결 by @KimDongGyun23 in #396
  • feat: 강의 요약 다운로드 기능 구현 by @YunDo-Gi in #397
  • fix: 음성 녹음 과정에서 ai 요약이 실행되지 않은 문제 해결 by @yuchem2 in #400
  • fix: 강의 요약에서 pdf에 시간이 잘못 설정된 오류 해결 by @KimDongGyun23 in #399
  • fix: 방 초기화 시 전역 상태 정리 로직 추가 by @KimDongGyun23 in #402
  • release: v1.2.0 by @yuchem2 in #395
  • fix: 세션 만료 시간 수정 by @dami0806 in #404
  • v1.2.0 by @yuchem2 in #405

Full Changelog: https://github.com/boostcampwm2025/web12-plum/compare/v1.1.0...v1.2.0