Callback (사용자 함수)

Callback은 Agent 처리 결과를 고객 시스템의 사용자 함수 또는 엔드포인트로 전달하는 기능입니다.

주요 목적

  • 전송 결과의 후처리 자동화.
  • 내부 업무 시스템과 상태 동기화.
  • 실패 건 재처리 트리거 연동.

구현 포인트

  • 메시지 식별 키(messageKey, ref)를 기준으로 멱등 처리.
  • timeout, 재시도 횟수, 백오프 정책 정의.
  • 실패 Callback의 별도 보관/재전송 큐 구성.

운영 권장사항

  • Callback 수신 API는 24x7 가용성 기준으로 운영합니다.
  • 응답 지연이 길면 Agent 처리량에 영향을 줄 수 있으므로 비동기 처리를 권장합니다.
  • 수신 로그와 원문 payload를 추적 가능하게 저장합니다.

MTT Callback

MTT(Message Transform Tool)는 Collector가 DB에서 메시지를 수집한 직후 데이터를 변환할 수 있는 사용자 정의 콜백 인터페이스입니다.

인터페이스

Java
public interface MTTCallback {
    boolean doTransform(IBUserObject userObject);
}

false 반환 시 해당 메시지를 발송 제외합니다.

IBUserObject 주요 메서드

필드getter / setter
수신번호getRecipient() / setRecipient()
문자 내용getMtContent() / setMtContent()
문자 제목getMtSubject() / setMtSubject()
카카오 내용getKkoContent() / setKkoContent()
기타 필드getEtcText1~3() / setEtcText1~3()

구현 예시

Java
public class MyMTTCallback implements MTTCallback {
    @Override
    public boolean doTransform(IBUserObject userObject) {
        // 수신번호 앞 국가코드 추가
        userObject.setRecipient("82" + userObject.getRecipient().replaceFirst("^0", ""));
        // 내용 앞에 고정 문구 추가
        userObject.setMtContent("[공지] " + userObject.getMtContent());
        return true;
    }
}

사용자가 작성한 class 파일(Java로 컴파일)을 기본 경로 혹은 수정된 경로에 복사하여 적용할 수 있습니다.

  • 기본 경로 사용: classes/ib/omni/agent/callback 디렉토리에 class 파일을 배치합니다.
  • 경로 변경: config/msgConfig.ymlcallback.mtt.class 값을 원하는 패키지 경로로 변경합니다.

msgConfig.yml에 등록합니다.

YAML
callback:
  mtt:
    yn: Y
    class: ib.omni.agent.callback.SampleMTTCallback