본문으로 건너뛰기

인터페이스 테이블

인터페이스 테이블이란?

인터페이스 테이블은 시스템 간 데이터를 주고받기 위해 중간 저장소로 사용하는 테이블입니다. 한 시스템이 송신 테이블에 데이터를 쌓고, 다른 시스템이나 배치가 이를 읽어 처리합니다.

API 연동과 인터페이스 테이블 연동의 차이

구분API 연동인터페이스 테이블 연동
처리 방식요청/응답 중심테이블 적재와 배치 처리
장점즉시성, 명확한 응답대량 처리, 재처리 용이
단점외부 장애에 민감지연 발생, 상태 관리 필요
사용 예송장 생성, 실시간 조회ERP-WMS 기준정보/실적 연동

ERP-WMS 연동에서 인터페이스 테이블을 쓰는 이유

ERP와 WMS는 처리 속도와 운영 시간이 다를 수 있습니다. ERP가 상품 10만 건을 내려보낼 때 WMS API를 10만 번 호출하기보다 인터페이스 테이블에 적재하고 WMS 배치가 처리하는 방식이 안정적일 수 있습니다.

송신 테이블과 수신 테이블

송신 테이블은 데이터를 보내는 시스템 기준의 발신 큐입니다. 수신 테이블은 받는 시스템이 처리하기 위해 가져온 데이터입니다. 둘을 나누면 송신 성공과 수신 처리 성공을 각각 추적할 수 있습니다.

처리 상태값

상태의미
READY처리 대기
PROCESSING처리 중
SUCCESS처리 성공
FAILED처리 실패
RETRY_WAITING재처리 대기
SKIPPED_DUPLICATE중복으로 무시

재처리 방식

실패 건은 에러 메시지를 남기고 재처리 대상이 됩니다. 운영자는 오류 원인을 수정한 뒤 상태를 READY로 되돌리거나 재처리 버튼을 눌러 배치가 다시 처리하게 할 수 있습니다.

중복 처리 방지

인터페이스 테이블에는 외부 문서 번호, 라인 번호, 시스템 코드 같은 자연 키가 필요합니다. 예를 들어 ERP 출고 요청은 erp_order_no + erp_order_line_no 조합으로 unique key를 둘 수 있습니다.

에러 메시지 관리

에러는 단순 FAIL이 아니라 운영자가 조치 가능한 메시지여야 합니다.

나쁜 메시지좋은 메시지
NullPointerException상품 코드 ITEM-001이 WMS 상품 마스터에 없습니다.
Invalid data거래처 코드 C100이 사용 중지 상태입니다.

배치 처리

배치는 한 번에 너무 많은 데이터를 잡지 않고 일정 건수 단위로 처리합니다. 처리 중 장애가 나도 다음 실행에서 이어갈 수 있도록 상태와 재시도 횟수를 관리합니다.

예시 테이블 구조

create table if_erp_wms_outbound (
interface_id bigint primary key,
source_system varchar(30) not null,
external_order_no varchar(50) not null,
external_line_no varchar(50) not null,
item_code varchar(50) not null,
order_qty numeric(18, 3) not null,
status varchar(30) not null,
retry_count int not null default 0,
error_message varchar(1000),
received_at timestamp not null,
processed_at timestamp,
unique (source_system, external_order_no, external_line_no)
);

운영에서 장애 추적하는 방법

운영 화면에서는 인터페이스 id, 원문서 번호, 상태, 재시도 횟수, 마지막 오류, 처리 시각을 조회할 수 있어야 합니다. 장애가 발생하면 "어떤 데이터가 어디까지 처리됐는가"를 바로 확인해야 합니다.

예외 상황

예외처리 방향
기준정보 누락실패 처리 후 기준정보 보완
중복 수신unique key로 차단하고 기존 결과 반환
배치 중단PROCESSING 장기 체류 건 복구
부분 성공라인별 상태 관리

관련 문서