← 포트폴리오 목록

디지털 악보 카탈로그 자동등록 시스템

해외 출판사 4곳(FTP-CSV/FTP-XML/REST-JSON/자체 파일)의 디지털 악보 카탈로그를 자동 수집해 카페24 쇼핑몰에 상품으로 등록하고, 결제 완료 시 워터마킹된 개인화 다운로드 권한을 자동 부여하는 백오피스 자동화 시스템을 Node.js + PostgreSQL 기반으로 설계·구현합니다.

프로젝트 납품 요약

아래 프로젝트 개요와 핵심 기능에서 구현 화면을 확인할 수 있습니다.

서비스 타입Web
업종이커머스
기술 스택
ReactTypeScriptTailwind CSSNode.jsExpressPostgreSQLPrismaBull QueueRedis
주요 기능
  • 출판사 카탈로그 자동수집
  • 카페24 상품 자동 등록·갱신
  • 결제·다운로드 권한 연동
  • 워터마킹 보안 다운로드

프로젝트 개요

범위: 개발, 디자인, 기획

해외 출판사 4곳(FTP-CSV/FTP-XML/REST-JSON/자체 파일)의 디지털 악보 카탈로그를 자동 수집해 카페24 쇼핑몰에 상품으로 등록하고, 결제 완료 시 워터마킹된 개인화 다운로드 권한을 자동 부여하는 백오피스 자동화 시스템을 Node.js + PostgreSQL 기반으로 설계·구현합니다.

작업 범위

  • 출판사 카탈로그 자동수집: FTP-CSV, FTP-XML, REST-JSON 등 서로 다른 연동 방식의 출판사 피드를 하나의 수집 파이프라인으로 정규화하고, 신규·변경 상품만 증분 동기화합니다
  • 카페24 상품 자동 등록·갱신: 정규화된 출판사 상품 데이터를 카페24 Admin API로 자동 등록하고, 가격·재고·상세정보 변경 시 기존 상품을 갱신합니다
  • 결제·다운로드 권한 연동: 카페24 결제 완료 웹훅을 수신해 구매자에게 다운로드 권한을 자동 부여하고, 환불 시 권한을 자동 회수합니다
  • 워터마킹 보안 다운로드: 자동 연동 API가 없는 출판사 D 상품에 대해, 구매자 정보를 삽입한 워터마킹 PDF와 만료·횟수 제한이 있는 서명 URL을 직접 생성합니다

주요 업무

  • 출판사 카탈로그 자동수집 화면: 출판사별 어댑터 패턴으로 프로토콜 차이를 추상화하고, 수집 결과를 표준 상품 스키마로 매핑하는 정규화 계층을 구현합니다
  • 카페24 상품 자동 등록·갱신 화면: OAuth 인증 토큰 갱신, API Rate Limit 대응 큐잉, 등록 실패 항목 재처리 로직을 구현합니다
  • 결제·다운로드 권한 연동 화면: 출판사 A/B/C는 Service-Layer API로 다운로드 URL을 수신하며, 실패 시 자동 재시도와 알림을 구현합니다
  • 워터마킹 보안 다운로드 화면: PDF 워터마킹, 서명 URL 만료·횟수 제한, 접근 로그를 구현합니다
디지털 악보 카탈로그 자동등록 시스템
요구사항 정의

프로젝트 핵심 과제

프로젝트 진행 시 해결한 핵심 기술 과제입니다.

출판사마다 다른 인증 방식(FTP 자격증명/OAuth/API 키)을 단일 스케줄러에서 관리하는 자격증명 저장·로테이션 구조 설계

카페24 Admin API의 Rate Limit 안에서 대량 상품(약 1,000개 이상)을 지연 없이 등록·갱신하는 큐잉 전략 설계

결제완료-다운로드 권한부여 사이 네트워크 실패 구간에서 이중 부여나 미부여가 발생하지 않

하는 멱등성 처리 필요

워터마킹 PDF 생성 시 원본 대비 용량·화질 저하를 최소화하면서 처리 속도를 유지하는 렌더링 파이프라인 설계

구현 내용

핵심 기능 상세

핵심 기능 1

출판사 카탈로그 자동수집

FTP-CSV, FTP-XML, REST-JSON 등 서로 다른 연동 방식의 출판사 피드를 하나의 수집 파이프라인으로 정규화하고, 신규·변경 상품만 증분 동기화합니다.

  • 출판사별 Adapter 패턴(FTP-CSV/FTP-XML/REST-JSON)으로 프로토콜 차이를 추상화하는 수집 계층 설계
  • 마지막 동기화 시점 기준 증분 수집과 페이지네이션 커서 저장으로 중복 수집을 방지하는 구조 구현
  • 수집 원본과 정규화 결과를 분리 저장하여 매핑 오류 발생 시 원본 재처리가 가능한 구조 설계

Strategy 패턴 기반 출판사별 어댑터로 프로토콜이 달라도 동일한 정규화 파이프라인을 통과시키는 구조를 구현합니다.

출판사 카탈로그 자동수집
출판사 카탈로그 자동수집 실제 화면
핵심 기능 2

카페24 상품 자동 등록·갱신

정규화된 출판사 상품 데이터를 카페24 Admin API로 자동 등록하고, 가격·재고·상세정보 변경 시 기존 상품을 갱신합니다.

  • 카페24 Admin API OAuth 토큰 자동 갱신과 만료 전 선제 재발급 로직 구현
  • Bull Queue 기반 등록 요청 큐잉으로 API Rate Limit 초과 시 자동 지연·재시도 처리
  • 등록·갱신 실패 상품을 별도 재처리 테이블에 적재해 원인별 재시도가 가능한 구조 설계

출판사 수집 데이터와 카페24 상품 스키마 간 매핑 계층을 두어, 출판사 필드가 늘어나도 매핑 규칙만 추가하면 되는 확장 구조를 구현합니다.

카페24 상품 자동 등록·갱신
카페24 상품 자동 등록·갱신 실제 화면
핵심 기능 3

결제·다운로드 권한 연동

카페24 결제 완료 웹훅을 수신해 구매자에게 다운로드 권한을 자동 부여하고, 환불 시 권한을 자동 회수합니다.

  • 카페24 결제완료 웹훅 수신→출판사별 주문 제출 API 호출→다운로드 URL 저장 파이프라인 구현
  • 권한 부여 실패 시 지수 백오프 재시도와 3회 초과 시 담당자 알림 발송 로직 구현
  • 환불 웹훅 수신 시 다운로드 권한을 즉시 회수하고 회수 이력을 감사 로그에 기록

결제-권한부여-환불회수를 하나의 상태 머신으로 모델링하여 중간 실패에도 상태 일관성을 보장하는 구조를 구현합니다.

결제·다운로드 권한 연동
결제·다운로드 권한 연동 실제 화면
핵심 기능 4

워터마킹 보안 다운로드

자동 연동 API가 없는 출판사 D 상품에 대해, 구매자 정보를 삽입한 워터마킹 PDF와 만료·횟수 제한이 있는 서명 URL을 직접 생성합니다.

  • PDF 라이브러리 기반 구매자 식별 정보(주문번호) 워터마킹 삽입 엔진 구현
  • HMAC 서명과 만료시각·다운로드 횟수 제한을 포함한 서명 URL 발급 로직 구현
  • 다운로드 시도 이력(IP·시각·성공여부)을 별도 로그 테이블에 적재해 이상 다운로드 탐지 기반 마련

서명 URL에 만료시각과 잔여 횟수를 인코딩해 별도 세션 없이도 상태를 검증할 수 있는 무상태 다운로드 게이트를 구현합니다.

워터마킹 보안 다운로드
워터마킹 보안 다운로드 실제 화면
구현 과정

프로젝트 진행 단계

STEP 1

연동 명세 분석 및 수집·정규화 엔진 개발 · 2026.09

FTP-CSV/XML·REST-JSON 3종 프로토콜 분석과 정규화 스키마 설계, 출판사별 어댑터·증분 동기화 로직 구현

STEP 2

카페24 Admin API 연동 및 자동 등록 개발 · 2026.09

OAuth 인증, 상품 등록·갱신 API 32~38개 엔드포인트 구현, Bull Queue 재시도 로직 적용

STEP 3

결제-다운로드 연동 및 보안 다운로드 엔진 개발 · 2026.09

결제완료 웹훅 처리, 워터마킹 PDF 생성, 서명 URL 발급 로직 구현

STEP 4

통합 테스트 및 관리자 화면 마감 · 2026.09

전체 파이프라인 통합 테스트, 관리자 대시보드 UI 완성, 크로스 브라우저 검증

개발 결과

출판사 어댑터 확장 구조 설계Strategy 패턴으로 출판사별 수집 로직을 캡슐화해 신규 출판사 추가 시 어댑터 1개만 구현하면 되는 구조 구축
등록 실패 재처리 큐 아키텍처 구현Bull Queue 기반 실패 사유별 재처리 큐 3종 설계, API Rate Limit 대응 지수 백오프 적용
결제-권한-환불 상태 머신 설계주문 상태를 다단계 상태 머신으로 모델링해 중간 실패 시에도 데이터 일관성을 보장하는 구조 구축
무상태 서명 다운로드 게이트 구현HMAC 서명에 만료시각·잔여횟수를 인코딩해 세션 저장 없이 검증 가능한 다운로드 URL 발급 로직 설계

기술적 주안점

  • Strategy 패턴 기반 출판사별 어댑터로 프로토콜이 달라도 동일한 정규화 파이프라인을 통과시키는 구조를 구현합니다
  • 출판사 수집 데이터와 카페24 상품 스키마 간 매핑 계층을 두어, 출판사 필드가 늘어나도 매핑 규칙만 추가하면 되는 확장 구조를 구현합니다
  • 결제-권한부여-환불회수를 하나의 상태 머신으로 모델링하여 중간 실패에도 상태 일관성을 보장하는 구조를 구현합니다

유사한 프로젝트를 기획하고 계신가요?

필요한 기능과 일정을 알려주시면 개발 범위를 함께 정리하겠습니다.

프로젝트 문의