기존 야놀자 Partners API(구 버전)가 2025년 12월 31일 종료 예정됨에 따라, 신규 Distributor API(D-API)로 전환이 필요했습니다.
<aside> 🎯
핵심 목표: 서비스 중단 없이 API 전환을 완료하고, 기술 부채를 해소하여 시스템 안정성과 유지보수성을 향상시키는 것
</aside>
| 구분 | 기존 (Partners API) | 변경 후 (Distributor API) |
|---|---|---|
| API 호출 위치 | paragon-api (YanoljaApi 클래스) | neuron/supplier-api (YanoljaExternalDirectService) |
| paragon-api 역할 | 내부 예약 생성 + 공급사 호출 (모놀리식) | 게이트웨이 역할만 (내부 데이터 관리) |
| neuron 역할 | - | D-API 직접 호출 및 응답 변환 |
| 기술 스택 | Java 8, RestTemplate | Java 21, RestClient + Virtual Thread |
| HTTP 버전 | HTTP/1.1 | HTTP/2 |
<aside> 💡
관심사 분리 (Separation of Concerns): 기존 800줄 이상의 단일 클래스를 역할별로 분리하여 각 시스템이 단일 책임을 갖도록 설계했습니다.
| API 명 | 기능 | 구 Partners API | 신규 D-API | 상태 |
|---|---|---|---|---|
| Availability | 객실/요금 조회 | GET /places/{placeNo} | POST /availabilities | ✅ 완료 |
| Final Check | 예약 가능 최종 확인 | GET /finalPriceCheck | POST /bookings/check | ✅ 완료 |
| Create Booking | 예약 생성 | POST /reservations/{no} | POST /bookings | ✅ 완료 |
| Booking Details | 예약 조회 | GET /reservations/{no} | GET /bookings/{sellerBookingId} | ✅ 완료 |
| Get Cancel Penalty | 취소 수수료 조회 | GET /.../cancelPenalty | GET /bookings/{id}/penalty | ✅ 완료 |
| Cancel Booking | 예약 취소 | POST /cancel/{no} | DELETE /bookings/{sellerBookingId} | ✅ 완료 |