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.yml의callback.mtt.class값을 원하는 패키지 경로로 변경합니다.
msgConfig.yml에 등록합니다.
YAML
callback:
mtt:
yn: Y
class: ib.omni.agent.callback.SampleMTTCallback