피드로 돌아가기
Show Dev: Self-reinforcing K-pop data pipeline using Spring Boot and pgvector (Built on OCI Free Tier)
Dev.toDev.to
Backend

OCI Free Tier 제약 극복을 위한 Virtual Threads 및 pgvector 최적화 파이프라인 설계

Show Dev: Self-reinforcing K-pop data pipeline using Spring Boot and pgvector (Built on OCI Free Tier)

cosmos07092026년 6월 29일3intermediate

Context

K-pop 메타데이터의 부재로 인한 자체 데이터 파이프라인 구축 필요성 대두. OCI Free Tier의 제한된 자원 환경에서 768차원 Vector Embedding 처리 시 발생하는 DB Connection 고갈과 데이터 편향성 해결이 핵심 과제.

Technical Solution

  • TransactionTemplate을 활용한 TX 경계 분리로 external I/O 대기 시간 동안의 HikariCP Connection 점유 방지
  • FOR UPDATE SKIP LOCKED 기반의 상태 변경 로직을 통한 워커 간 동시성 확보 및 데이터 격리
  • Java 21 Virtual Threads 도입을 통한 I/O Wait 상태의 스케줄링 오버헤드 최소화
  • pgvector의 Window Function을 DB 레이어에서 처리하여 아티스트별 결과 밀도를 제어하는 Diversity-enforced Search 구현
  • Collections.shuffle() 기반의 태스크 그리드 무작위화를 통한 LLM API 쿼터의 균등 분배 및 비용 최적화
  • 단일 배포 단위 유지와 운영 가시성 확보를 위한 Thymeleaf SSR 하이브리드 구조 채택

- 외부 API 호출 시 DB Transaction 범위에서 완전히 제외하여 Connection Pool Starvation 방지 - Vector Search 시 특정 도메인 쏠림 현상을 막기 위해 Application단이 아닌 DB Window Function으로 다양성 제어 - 제한된 API 쿼터 환경에서는 작업 스케줄링에 무작위성을 부여하여 특정 데이터로의 요청 집중 방지

원문 읽기