프로젝트

Addprism — K-POP 특화 음원 샘플 마켓플레이스를 만들다

Addprism — K-POP 특화 음원 샘플 마켓플레이스를 만들다

음악을 만드는 사람이라면 '스플라이스(Splice)'를 한 번쯤 들어봤을 겁니다. 전 세계 프로듀서들이 애용하는 음원 샘플 구독 서비스로, 드럼 루프, 신스 패드, 기타 리프 등 다양한 소스를 다운로드해 자신의 곡에 활용할 수 있는 플랫폼입니다. Addprism은 이 스플라이스의 개념을 K-POP과 국내 라이브 사운드에 특화해 만든 마켓플레이스입니다. LUMIC이 이 프로젝트의 개발을 맡았고, 이 글에서는 실제로 만들며 부딪힌 기술적 문제들을 풀어 봅니다.

Addprism(addprism.com) — K-POP·라이브 사운드에 특화된 음원 샘플 마켓플레이스.
Addprism(addprism.com) — K-POP·라이브 사운드에 특화된 음원 샘플 마켓플레이스.

Addprism은 어떤 플랫폼인가요?

Addprism(애드프리즘)은 완성된 노래를 파는 곳이 아닙니다. 곡을 만들 때 재료로 사용되는 샘플 팩(Sample Pack)을 거래하는 마켓플레이스입니다. 실제 BTS, 김범수 등 국내 유명 아티스트의 라이브 세션에 참여하는 연주자들이 직접 녹음한 생생한 악기 소리를 샘플로 제공합니다. 드러머 김진헌, 프로듀서 임영우 등 현장에서 활발하게 활동하는 뮤지션들의 실제 연주가 담긴 샘플이라는 점이 해외 플랫폼과의 가장 큰 차별점입니다.

어떤 기능이 있나요?

샘플은 작곡 프로그램(DAW)에서 바로 불러와 사용할 수 있는 .wav 오디오 파일과 악기 정보를 담은 MIDI 파일 형태로 제공됩니다. 구매한 샘플은 로열티 프리(Royalty Free)로 제공되어, 이를 활용해 제작한 곡을 정식 음원으로 발매해도 저작권 문제가 발생하지 않습니다. 상업적 활용까지 자유롭게 가능한 구조입니다.

판매 기능도 있습니다. 본인이 직접 제작한 샘플이나 루프를 '라벨'로 등록하고 업로드해 판매 수익을 얻을 수 있습니다. 연주 실력이나 사운드 디자인 능력을 가진 뮤지션이라면 Addprism을 통해 자신의 결과물을 수익화할 수 있는 셈입니다.

이런 분들에게 필요합니다

작곡가나 프로듀서라면 곡의 퀄리티를 높이기 위해 실제 연주자의 리얼한 사운드가 필요한 순간이 있습니다. 직접 연주자를 섭외하고 스튜디오를 잡는 것은 비용과 시간이 크게 들지만, Addprism에서 원하는 악기의 샘플을 구매하면 훨씬 효율적으로 같은 퀄리티를 얻을 수 있습니다. 트렌디한 K-POP 스타일의 루프 소스를 찾는 비트메이커에게도 최적의 소스입니다.

샘플 마켓의 진짜 난이도는 '오디오'에 있다

일반 쇼핑몰은 사진 한 장으로 상품을 보여주면 됩니다. 하지만 샘플 마켓에서 상품은 '소리'입니다. 사려면 반드시 들어봐야 하고, 그 미리듣기 경험이 곧 구매로 이어집니다. 그래서 개발 난이도의 핵심이 오디오에 몰려 있었습니다. 아래는 그중 특히 오래 붙잡았던 두 가지 문제입니다.

미리듣기가 느리면 아무도 안 산다 — 파형을 '미리 계산'하다

각 샘플에는 파형(waveform)을 그려줍니다. 어디가 킥이고 어디가 브레이크인지 눈으로 보고 판단할 수 있어야 하니까요. 문제는 파형을 그리려면 보통 오디오 파일 전체를 내려받아 분석해야 한다는 점입니다. 한 페이지에 샘플이 수십 개씩 걸리는데 그걸 전부 통째로 받으면 데이터 사용량도, 로딩 시간도 감당이 안 됩니다.

그래서 파형 데이터(peaks)를 서버에서 미리 계산해 두고, 프론트엔드는 그 peaks만 받아 wavesurfer.js에 넘겨 즉시 그리도록 했습니다. 실제 오디오는 재생 버튼을 누르는 순간에만, 그것도 프록시를 통해 스트리밍합니다.

wavesurfer.js — 오디오 전체를 받지 않고 '미리 계산된 peaks'로 파형을 그린다
// 트랙마다 wavesurfer 인스턴스를 생성.
// 핵심: 파형은 서버에서 미리 계산해 둔 peaks 배열로 그린다.
const ws = WaveSurfer.create({
  container: element,
  backend: "MediaElement",    // 재생은 <audio> 엘리먼트에 위임
  peaks: waveformData.peaks,  // ← 미리 계산된 파형 데이터
  waveColor: "#ddd",
  progressColor: "#00fe73",   // 재생 위치를 브랜드 그린으로 표시
  barWidth: 2,
  normalize: true,
  partialRender: true,        // 화면에 보이는 구간만 렌더
});

// 실제 오디오는 '재생할 때만' 프록시를 통해 스트리밍
// (원본 스토리지 URL은 노출하지 않는다)
ws.load("https://proxy.addprism.com/sound/" + filename, waveformData.peaks);

이 구조 덕분에 목록이 아무리 길어도 파형은 즉시 뜨고, 무거운 대역폭은 '실제로 듣는 트랙'에만 쓰입니다. 사용자 입장에서는 스크롤하면 파형이 바로바로 나타나고, 듣고 싶은 것만 눌러 들으면 되는 경험이 됩니다. 미디어를 다루는 커머스에서는 이런 '눈에 안 보이는 최적화' 하나가 곧 구매 전환율로 이어집니다.

페이지를 옮겨다녀도 음악은 끊기지 않는다 — 전역 플레이어

마켓은 이 목록 저 목록, 상세 페이지를 계속 옮겨다니며 듣는 곳입니다. 만약 플레이어가 특정 페이지나 컴포넌트에 묶여 있으면, 페이지를 넘길 때마다 듣던 음악이 뚝 끊깁니다. 그래서 '지금 무엇이, 어디서 재생 중인가'를 전역 상태로 끌어올렸습니다. 상태 관리는 가벼운 zustand로 처리했습니다.

zustand — 재생 상태를 전역으로 올려 화면을 이동해도 끊기지 않게
// 재생과 관련된 전역 상태 (zustand)
export const usePlayer = create((set) => ({
  currentTrack: null,       // 지금 재생 중인 트랙
  isPlay: false,            // 재생 / 정지
  soundInstance: null,      // 현재 오디오 인스턴스
  playingTrackIndex: null,  // 리스트에서 몇 번째가 울리는지
  setCurrentTrack: (t) => set({ currentTrack: t }),
  setIsPlay: (b) => set({ isPlay: b }),
  setSoundInstance: (i) => set({ soundInstance: i }),
  setPlayingTrackIndex: (i) => set({ playingTrackIndex: i }),
}));

currentTrack·isPlay·재생 인스턴스를 전역에서 관리하니, 화면을 이동해도 하단 플레이어가 재생을 그대로 이어갑니다. 리스트의 몇 번째 트랙이 울리는지(playingTrackIndex)도 전역이라, 어느 화면에 있든 지금 재생 중인 항목을 하이라이트해 줄 수 있습니다. 전체 상태를 무겁게 관리하기보다, '재생'이라는 관심사만 딱 떼어 전역으로 둔 것이 핵심이었습니다.

듣는 사람과 파는 사람 — 하나의 사이트, 두 개의 서비스

Addprism은 사실 두 개의 서비스를 겹쳐 놓은 구조입니다. 구매자는 듣고·좋아요하고·구매하고·다운로드합니다. 반대로 라벨(판매자)은 자신의 사운드·미디·팩을 올리고, 팔린 내역을 기간별로 조회하고, 엑셀로 내려받고, 정산 통계를 대시보드로 봅니다. 역할마다 권한과 화면이 완전히 다릅니다.

  • 사운드(.wav)·미디(.midi)·팩(pack) 등록·수정·삭제 및 다중 필터 검색
  • 좋아요 · 다운로드 · 구매 (구매한 샘플은 로열티 프리)
  • 판매자용 판매 내역 기간 검색 + 엑셀(xlsx) 다운로드
  • 판매·정산 통계 대시보드 (차트 시각화)
  • 챌린지 · 커뮤니티 게시판 (에디터 기반 글 작성)
  • 국내/해외 결제 및 구독 결제

국내와 해외를 동시에

국내 결제는 Toss Payments로, 해외 결제는 별도 PG(이니시스·페이레터)로 이원화하고 구독 결제까지 붙였습니다. 해외 프로듀서를 겨냥하는 서비스인 만큼 i18next로 다국어를 지원했고, 구매한 샘플은 로열티 프리로 제공해 이를 활용한 곡을 정식 음원으로 상업 발매하는 것까지 자유롭게 열어 두었습니다. 결제·정산·다운로드처럼 '돈과 파일이 오가는' 부분일수록 예외 처리를 촘촘하게 가져가야 했습니다.

돌아보며

Addprism은 '음악을 파는 쇼핑몰'이 아니라 '소리를 다루는 미디어 플랫폼'이었습니다. 사진 대신 파형을, 상세 페이지 대신 끊기지 않는 재생을, 단순 결제 대신 정산과 다운로드 권한을 설계해야 했습니다. 눈에 잘 안 보이는 이런 디테일이 결국 '한 번 써보고 마는 사이트'와 '매일 들어와 소스를 찾는 사이트'를 가릅니다. 미디어 커머스를 고민 중이시라면, 바로 이 지점들이 승부처입니다.

K-POP 제작 현장의 생생한 사운드를 내 곡에 담고 싶은 프로듀서, 자신의 연주를 샘플로 판매해 수익을 내고 싶은 뮤지션이라면 addprism.com에서 직접 들어보실 수 있습니다. 국내 음악 제작 환경에 맞춘 샘플 플랫폼이 어떤 모습인지 확인해 보세요.

Turning dreams into reality

LUMIC

Contact Us

대구 중구 명륜로28길 27 3층

E-mail. lumic.dev@gmail.com

개인정보처리방침이용약관