<aside> 💡

공급사 Contents 동기화 로직

</aside>

09. Expedia


<aside> ❗

Expedia API Link 만료 시간

Expedia AS-IS Batch

Expedia TO-BE Batch


아키텍처 비교 플로우


graph LR
    subgraph AS-IS["AS-IS (paragon_batch)"]
        A1[Scheduler] --> A2[Single Service<br/>280+ lines]
        A2 --> A3[Direct DAO]
        A3 --> A4[(Database)]
    end
    
    subgraph TO-BE["TO-BE (neuron batch)"]
        B1[Scheduler] --> B2[Domain Service]
        B2 --> B3[API Layer]
        B3 --> B4[Converter]
        B4 --> B5[Merge Service]
        B5 --> B6[Repository]
        B6 --> B7[(Database)]
    end
    
    style A2 fill:#ff6b6b
    style B2 fill:#4ecdc4
    style B3 fill:#4ecdc4
    style B4 fill:#4ecdc4
    style B5 fill:#44bd32

주요 개선 사항


항목 AS-IS TO-BE
처리 방식 순차 처리 병렬 처리 (CompletableFuture + ThreadPool)
동시성 제어 없음 Semaphore 기반 제어
책임 분리 단일 클래스에 모든 로직 Service → API → Converter → Merge
페이징 처리 일반 Loop 콜백 기반 스트리밍
DB 저장 단건 저장 Bulk UPSERT
코드 라인 280+ 라인 단일 메서드 평균 50-100 라인 메서드로 분리

속도 개선 지표


항목 AS-IS ( 평균 ) TO-BE ( 평균 ) 개선
Regions 1시간 30분 30 ~ 40 분 56% ~ 67%
Contents 4 ~ 5 시간 30 ~ 60 분 75% ~ 90%