[DataEngineering - MongoDB] 실시간 주석 스냅샷 스키마 설계 (Project: SpeakNote)
·
ServerDev/Database
1. 실시간 주석 데이터는 왜 기존 DB 모델로 다루기 어려운가SpeakNote에서 다루는 주석 데이터는 일반적인 CRUD 중심의 데이터와 성격이 완전히 다릅니다.주석은 한 번 생성되고 끝나는 데이터가 아니라, 실시간 음성 인식 결과와 AI 요약 결과가 누적되며 계속 변화하는 흐름형 데이터에 가깝습니다.하나의 강의 파일에 대해 사용자는 다음과 같은 행동을 반복합니다.음성을 입력하고일정 시간 뒤 AI 주석이 생성되고주석이 PDF 위 특정 좌표에 배치되고필요하면 다시 수정하거나 삭제합니다.이 과정에서 중요한 점은, “현재 상태”뿐 아니라 “그 시점의 상태” 자체가 의미를 가진다는 점입니다.즉, SpeakNote에서의 주석은 단순한 레코드가 아니라, 시간에 따라 변화하는 결과 묶음으로 봐야됐습니다.2. Spe..
[DataBase - Design] MySQL + MongoDB를 분리한 이유 (Project: SpeakNote)
·
ServerDev/Database
1. SpeakNote에서 “저장”이 성능 병목이 되는 지점SpeakNote는 단순히 텍스트를 저장하는 서비스가 아니라, 브라우저에서 들어오는 음성 청크를 실시간으로 받아서 STT로 변환하고, 그 결과를 다시 요약·주석 형태로 가공해 UI에 즉시 반영하는 흐름을 갖고 있습니다. 이때 사용자가 체감하는 품질은 “정확도”도 중요하지만, 실제로는 끊기지 않고 계속 흘러가는지, 그리고 응답 지연이 특정 순간에 폭발하지 않는지가 훨씬 크게 작동합니다. 실시간 시스템은 어느 한 구간이라도 길게 막히면 그 뒤의 모든 단계가 연쇄적으로 밀려서, 결국 사용자는 “가끔 멈추는 서비스”로 인식하게 되기 때문입니다. 문제는 이 파이프라인에서 저장 계층이 생각보다 쉽게 병목이 된다는 점입니다. 주석은 단순 텍스트 한 줄이 아..