2) 솔루션 개요와 차별성

💡 쉽게 말하면: 국악 용어를 몰라도 되도록, 사용자가 이미 아는 음악 이름을 입구로 씁니다. “비 오는 날 듣는 아이유”라고 적으면 AI가 그 감성을 해석해 닮은 국악을 찾아 주고, 왜 닮았는지 설명해 줍니다. 그리고 그 감성이 그대로 필터가 되어 샘플 라이브러리로 이어집니다.

2-1. 솔루션 한 줄

사용자가 좋아하는 음악의 감성을 Gemini가 해석하고, pgvector가 국립국악원 음원 500건에서 가장 닮은 트랙을 찾아 근거와 함께 제시하며, 그 감성이 프리셋 URL을 타고 샘플 라이브러리 필터로 이어지는 국악 감성 매칭 플랫폼.

2-2. 세 개의 벽에 대응하는 세 개의 기능

문제 SoundBridge의 대응 구현 위치
검색어의 벽 자연어 한 문장으로 검색. 국악 용어 지식 0으로 진입 POST /api/soundbridge/discover
감성의 벽 감성 6종 태그 + 벡터 유사도 + KO/EN 근거 문장 자동 생성 TrackDiscoverInteractor · GeminiAdapter
활용의 벽 장단별 루프 단위(박) 정규화 + BPM + KOGL 라이선스 배지 jangdan 테이블 · LicenseBadge · LoopBadge

① 검색어의 벽 → 자연어 입구

입력: "비 오는 날 듣는 아이유"
  ↓ Gemini analyze_emotion
{ emotions: ["서정", "차분"], mood: "잔잔하고 쓸쓸한", 
  instrument_hints: ["가야금"], embed_text: "비 오는 날의 잔잔하고..." }

사용자는 국악 어휘를 하나도 쓰지 않습니다. 번역은 전부 서버에서 일어납니다.

② 감성의 벽 → 근거가 붙은 매칭

매칭 결과에는 점수만이 아니라 왜 닮았는지가 한국어와 영어로 함께 옵니다. 프론트엔드의 WhyBox 컴포넌트가 이 문장을 카드 안에 그대로 보여 줍니다.

{
  "id": "…", "title": "상사별곡050", "instrument": "장구", "jangdan": "중모리",
  "emotion_tags": ["서정", "차분"], "bpm": 90, "loop_unit_beats": 12,
  "score": 0.87,
  "explanation": "느린 중모리 장단의 여백이 잔잔한 발라드의 호흡과 겹칩니다.",
  "preset_url": "/create?instrument=장구&emotion=서정&bpm_min=70&bpm_max=110"
}

③ 활용의 벽 → 마디가 맞는 샘플

장단마다 루프 단위(박)를 마스터 테이블로 못 박아 두었습니다.

장단 루프 단위 감성 매핑(수집 규칙)
자진모리 12박 신남 · 경쾌
중모리 12박 서정 · 차분
굿거리 12박 흥겨움 · 신명
휘모리 4박 긴박 · 빠름
세마치 6박 슬픔 · 차분
엇모리 10박 신비 · 독특

크리에이터는 CREATE에서 루프 단위 = 12박으로 필터링해 자기 프로젝트 마디에 바로 얹을 샘플만 볼 수 있습니다.

2-3. 브릿지 — 이 프로젝트의 이름값

DISCOVER와 CREATE는 흔히 별개 서비스로 만들어집니다. SoundBridge는 이 둘을 한 줄의 URL로 잇습니다.

DISCOVER 결과 트랙 (가야금 · 서정 · BPM 100)
        ↓ CreatePresetInteractor  (외부 IO 없는 순수 로직)
/create?instrument=가야금&emotion=서정&bpm_min=80&bpm_max=120
        ↓ useCreatePreset 훅이 쿼리 파싱
CREATE 필터가 채워진 상태로 열림 + PresetBanner로 "어디서 왔는지" 표시

BPM은 max(60, bpm − 20) ~ min(200, bpm + 20) 범위로 넓혀 전달합니다. 정확히 같은 BPM만 걸면 결과가 0건이 되기 쉽기 때문입니다. 자세한 규칙은 프리셋 브릿지 설계에 있습니다.

2-4. 유사 서비스와의 차별성

구분 국악 아카이브 / 국악디지털아카이브 해외 샘플팩 (Splice 등) SoundBridge
주 사용자 연구자·교육자 음악 크리에이터 국악을 모르는 크리에이터
검색 방식 곡명·악기·장단 장르·BPM·키 태그 자연어 감성 문장
국악 커버리지 매우 넓음 사실상 없음 (Asian 카테고리 대체) 국립국악원 공공 음원
왜 이 곡인가 설명 없음 설명 없음 AI 생성 KO/EN 근거 문장
루프 활용성 원본 음원 제공 루프·원샷 정리됨 장단→루프 단위(박) 정규화
라이선스 이용 조건 별도 확인 유료 구독, 조건 상이 KOGL 1·2 배지로 상업 가능 여부 즉시 표시
비용 무료 유료 구독 무료 (공공 라이선스 기반)

포지셔닝 한 줄: 아카이브는 보존하고, 샘플팩은 공급합니다. SoundBridge는 국악을 모르는 사람에게 국악을 번역합니다.

2-5. 설계 원칙 — AI가 사실을 지어내지 않는다

Gemini는 이 시스템에서 두 가지 일만 합니다.

  1. 사용자 입력 문장 → 감성 키워드와 임베딩용 텍스트 생성
  2. 이미 확정된 매칭 결과 → 왜 닮았는지 설명하는 문장 생성

어떤 트랙이 매칭되는지는 Gemini가 정하지 않습니다. 그건 pgvector의 코사인 거리 계산 결과입니다. BPM·장단·루프 단위·라이선스 같은 사실 값도 전부 DB에서 옵니다. 즉 LLM은 번역과 설명만 담당하고, 판단과 사실은 결정론적 계산이 담당합니다. 이 경계는 지능형 매칭 파이프라인에서 코드 수준으로 확인할 수 있습니다.


SoundBridge — 당신의 음악 언어로 국악을 만나세요. 본 사이트는 개발 문서 자료입니다.

This site uses Just the Docs, a documentation theme for Jekyll.