
오늘은 SSG.COM의 API 상품 연동 실패율을 줄이는 방법과 이를 해결하기 위한 전략에 대해 자세히 소개해보겠습니다.
외부 제휴사(예: G마켓, 11번가, 네이버)와의 성공적인 상품 연동은 매출 증가와 사용자 경험 개선에 중요한 요소입니다.
따라서 연동 실패율을 줄이는 것은 매우 중요한 과제입니다.
API 상품 연동이란, SSG.COM의 상품 정보를 외부 제휴사의 플랫폼으로 전달하여 해당 플랫폼에서 상품을 판매할 수 있도록 하는 과정입니다.
이 과정에서 성공적으로 상품이 연동되면, 상품의 노출 범위가 확장되고 판매 기회가 늘어나며 매출 증대에 기여합니다.
내부 실패는 SSG.COM의 정책에 의해 제휴사에 판매가 불가능한 상품을 연동하려는 시도에서 발생합니다.
다음과 같은 사례가 주요 원인으로 꼽힙니다.
상품 정책 충돌: 특정 상품 카테고리가 제휴사 판매 불가로 설정되어 있음에도 연동 시도됨.
필수 정보 누락: 상품명, 가격, 재고 등 필수 데이터가 부족하거나 오류가 있는 경우.
API 요청 제한: 시스템 부하를 방지하기 위한 API 호출 제한 정책 위반.
제휴사 실패는 연동된 상품이 제휴사 시스템 정책이나 오류로 인해 활성화되지 못하는 경우입니다.
구체적인 사례는 다음과 같습니다.
제휴사 정책 불일치: 제휴사의 필수 정책(예: 배송 조건, 가격 정책)과 맞지 않는 상품 정보 전송.
제휴사 시스템 오류: 제휴사의 서버 응답 불가 또는 데이터 처리 오류.
데이터 변환 실패: SSG.COM 데이터와 제휴사 데이터 간의 포맷 차이로 변환이 실패하는 경우.
내부 시스템 오류나 일시적 네트워크 문제로 발생하는 실패 사례를 자동으로 감지하고, 일정 시간 후 재처리를 시도하는 로직을 구축했습니다.
이를 통해 98% 이상의 재처리 성공률을 달성했습니다.
public class ApiRetryProcessor {
private static final int MAX_RETRY_COUNT = 3;
public void processFailedItems(List<Item> failedItems) {
for (Item item : failedItems) {
int retryCount = 0;
boolean isSuccess = false;
while (retryCount < MAX_RETRY_COUNT && !isSuccess) {
try {
// 상품 연동 재처리
isSuccess = attemptApiSync(item);
} catch (Exception e) {
retryCount++;
log.warn("Retrying... Attempt: {}, Item ID: {}", retryCount, item.getId());
}
}
if (!isSuccess) {
log.error("Item failed after retries: {}", item.getId());
notifyOperator(item);
}
}
}
private boolean attemptApiSync(Item item) {
// 외부 API 호출 로직
return externalApi.sync(item);
}
}
제휴사 정책으로 인해 실패한 상품은 자동으로 담당 MD 및 운영부서에 알림을 발송합니다.
이를 통해 상품 정보 수정 및 재연동 시도가 가능하도록 하고 있습니다.
public void notifyOperator(Item failedItem) {
String message = String.format("Failed item detected: %s, Reason: %s",
failedItem.getId(), failedItem.getFailureReason());
notificationService.sendEmail("operator@ssg.com", "API 연동 실패 알림", message);
}
상품 연동 시 필수 데이터(상품명, 가격, 재고 등)가 모두 유효한지 사전에 검증하여 오류를 방지합니다.
public boolean validateItem(Item item) {
if (item.getName() == null || item.getName().isEmpty()) {
log.error("Validation failed: Missing name for Item ID: {}", item.getId());
return false;
}
if (item.getPrice() <= 0) {
log.error("Validation failed: Invalid price for Item ID: {}", item.getId());
return false;
}
if (item.getStock() < 0) {
log.error("Validation failed: Negative stock for Item ID: {}", item.getId());
return false;
}
return true;
}
제휴사의 정책 변화 및 시스템 오류를 빠르게 파악할 수 있도록 정기적인 협의체 운영과 문제 상황 공유를 통해 협력체계를 강화하고 있습니다.
SSG.COM은 상품 연동 실패율 감소를 위해 자동화 로직, 상품 데이터 검증 강화, 수동 수정 프로세스, 제휴사와의 협력 등 다양한 전략을 도입했습니다.
이러한 노력을 통해 실패율을 지속적으로 낮추고, 성공적인 상품 연동을 통해 매출 증대와 제휴사 만족도 향상을 이루고 있습니다.