Shiny Star

DATA

인터페이스 테이블의 개념정리 및 사용이유

AnnieLoper 2025. 1. 6. 11:02

1. 인터페이스 테이블이란?

인터페이스 테이블은 시스템 간 데이터 교환 및 연동을 위해 사용하는 데이터베이스 테이블로, 일반적으로 서로 다른 애플리케이션, 시스템, 또는 모듈 간의 데이터를 주고받는 과정에서 중간 매개체 역할을 한다.

 

쉽게 말하자면, 송신테이블 - 수신테이블이라는 데이터를 주고 받게 하는 테이블을 별도로 만들어서,

송신테이블에 원하는 데이터를  배치나 API등을 통해 수신테이블에 해당데이터를 전송하는 방식으로 사용한다. 

 

2. 인터페이스 테이블을 만드는 이유?

  • 데이터 교환용 테이블
    • 시스템 A와 시스템 B가 데이터를 주고받을 때, 직접적으로 데이터베이스를 공유하지 않고 인터페이스 테이블을 통해 데이터를 전달한다.
  • 독립성 보장
    • 각 시스템이 서로의 내부 구조나 동작 방식에 의존하지 않도록 독립성을 유지한다.
    • 데이터 형식과 구조가 다르더라도 매핑 및 변환을 통해 데이터를 교환할 수 있다.
    • 데이터는 시스템 A에서 쓰고(system A → 테이블), 시스템 B에서 읽는 방식(system B ← 테이블)으로 분리할 수 있다.
    • 중복 접근을 방지하기 위해 락(lock) 처리나 상태 기반 처리(PENDING → PROCESSING → COMPLETED)를 적용할 수 있다.
  • 데이터 상태 관리
    • 테이블에 상태 플래그(예: PENDING, SUCCESS, FAILED)를 두어 데이터 처리의 진행 상황을 관리한다.
    • 예를 들어, STATUS 컬럼이 "처리 완료(SUCCESS)"로 변경되면 데이터가 정상적으로 처리되었음을 나타낼 수 있다.
    • 상태 플래그(STATUS)를 기반으로 데이터의 처리 여부를 확인하고, 처리 중 오류 발생 시 재처리 로직을 적용할 수 있다.
  • 로그 및 추적 기능
    • 데이터 전송 및 처리를 기록하여 추후 문제 발생 시 디버깅 및 감사 로그로 활용할 수있다.
  • 비동기 처리:
    • 실시간 처리가 아닌 배치(batch) 작업이나 메시지 큐와 연계된 비동기 방식으로 동작하는 경우가 많다.

3. 그럼 view테이블처럼 구조나 기능적으로 차이가 있는 테이블일까?

인터페이스 테이블일반 테이블은 실제 생성하는 SQL 관점에서는 동일하게 정의된다. 결국, "인터페이스 테이블"이라는 개념은 설계와 사용 방식의 차이에서 오는 것이지, view table처럼 구조적으로 다른 것을 의미하지는 않는다.

  • 사용 목적에 따른 설계와 관리 방식 차이:
    인터페이스 테이블은 "시스템 간 데이터 교환"이라는 특정 목적을 위해 설계된 일반 테이블의 응용 사례일 뿐, 데이터베이스 차원에서 인터페이스 테이블만의 특별한 기능을 제공하지는 않는다.
  • 운영 관점에서의 차이:
    인터페이스 테이블은 설계 단계부터 시스템 간 데이터 교환을 고려해 "사용 규칙"이 추가된다. 예를 들어, 데이터를 어떻게 읽고 쓰는지, 상태 관리나 로그 관리는 어떻게 하는지가 규칙으로 정의된다.
    이는 일반 테이블의 "CRUD 중심" 설계와 다른 접근 방식이라고 할 수 있다

**즉, 일반테이블과 똑같이 생성하나, 데이터 전달용으로 사용하기좋게 컬럼을 만들어서 이건 데이터 전달용으로 사용하자! 고 그냥 정의내린 테이블이라고 할 수 있다. 보통 실무에서는 테이블명 앞이나 뒤에 IF를 붙여서 정의하는 듯 하다. 

 

4. 인터페이스 테이블의 일반적인 구조 및 방식

 

-일반적인 구조

IF_ID VARCHAR/NUMBER 데이터 식별자 (고유 ID).
IF_TYPE VARCHAR 데이터 유형 (예: ORDER, CUSTOMER 등).
DATA CLOB 데이터 패키징 정보(JSON/XML 등).
STATUS VARCHAR 처리 상태 (예: PENDING, PROCESSING, SUCCESS, FAILED).
ERROR_MESSAGE VARCHAR 처리 실패 시 에러 메시지.
CREATED_AT TIMESTAMP 데이터 생성 시간.
UPDATED_AT TIMESTAMP 데이터 처리 상태 업데이트 시간.

-일반TABLE과 인터페이스 TABLE의 차이 

  일반 TABLE 인터페이스 TABLE
데이터 저장 여부 데이터를 영구적으로 저장. 데이터를 일시적으로 저장하며, 주로 시스템 간 데이터 송수신 목적으로 사용.
구조 정의 CREATE TABLE로 정의. 동일하게 CREATE TABLE로 정의되나, 특정한 패턴의 컬럼과 구조를 가짐.
용도 업무 데이터 관리와 저장을 위한 영구 테이블. 시스템 간 데이터 교환이나 임시 처리를 위한 전용 테이블.
특징 데이터가 자주 변경되고 CRUD 작업이 빈번함. 데이터가 일정 기간만 존재하거나 처리가 끝나면 삭제됨.
설계 특징 업무에 맞게 다양하게 설계 가능. 일반적으로 고정된 컬럼과 포맷을 가짐(CLOB, JSON/XML 데이터 등).