거래처 자료를 중복 없이 동기화하는 시스템 구축하기
고객·상품 자료를 두 업무시스템에 동기화할 때 필요한 고유코드, 수정시각, 삭제표시와 재수집 기준을 설명합니다. Airbyte 연결 가능 여부부터 API 재전송과 누락·중복 검수까지 개발 범위를 정리합니다.
핵심 요약
1. 고객·상품 자료를 고유코드로 연결해 두 업무시스템 사이의 누락과 중복을 줄이는 동기화 기능을 만듭니다. 2. Airbyte의 증분 수집 개념, PostgreSQL 트랜잭션, dbt 데이터 검사를 수집·저장·검수에 활용합니다. 3. 코드 대응표, 삭제 반영, 다시 수집할 기간과 재전송 판단은 업무에 맞게 직접 개발합니다.
거래처 이름을 고쳤는데 다른 시스템에는 이전 이름이 남아 있다면 담당자가 같은 내용을 반복해서 확인하게 됩니다. 시스템 구축을 시작할 때는 고객과 상품의 어떤 항목을 어느 시스템에서 관리할지 먼저 정합니다. API 개발 범위에는 자료 전달뿐 아니라 변경 내용의 판별과 실패 후 복구까지 포함합니다.
고유코드 대조와 필드 변환 API
먼저 두 시스템에서 같은 고객과 상품을 구분할 자료를 받습니다. 고객 자료 예시는 고객코드·고객명·수정시각·사용 여부가 들어 있는 파일입니다. 상품 자료 예시는 상품코드·상품명·단위·수정시각·삭제표시가 들어 있는 파일입니다.
변환 API에서는 양쪽의 항목 이름과 값 형식을 맞추고, 고유코드로 등록과 수정을 구분하도록 구현합니다. 양쪽 코드가 다르면 별도 대응표를 만들고, 이름만 같은 거래처를 자동으로 합치지 않도록 처리합니다. ‘연결 미리보기’ 화면에서 기존 자료와 들어올 값을 나란히 보여주며, 코드가 비었거나 하나의 코드가 여러 거래처에 연결된 행은 반영 전에 확인하도록 만듭니다.

Airbyte 증분 수집과 수정시각 확인
Airbyte의 증분 수집은 커서라는 기준 필드로 이후 데이터를 판별하며, 원본 변경 때 커서가 바뀌지 않으면 변경을 놓칠 수 있습니다. 이 개념을 적용하는 일과 실제로 두 시스템을 연결할 수 있는지는 나누어 확인합니다. 도입 전에는 원본·목적지용 커넥터가 있는지, 필요한 수집·저장 방식을 지원하는지 확인하고 부족한 연결 구간을 별도 개발 범위로 잡습니다.
수정시각을 기준으로 쓸 때는 고객명이나 상품 단위를 바꾸었을 때 해당 시각도 갱신되는지 확인합니다. 자체 수집 로직에서는 시각의 정밀도와 시간대 차이를 맞추고, 경계 시각에 있는 자료를 일부 겹쳐 읽도록 범위를 정합니다. 겹쳐 들어온 자료는 고유코드로 대조하며, 같은 수정시각을 가진 여러 항목을 빠짐없이 가져오는지를 검수합니다.
삭제표시 반영과 기간별 다시 수집
삭제표시가 있는 자료는 목적지에서 어떻게 처리할지 먼저 정합니다. 거래 이력을 유지해야 하는 고객이라면 물리적으로 지우는 대신 사용 중지로 바꾸는 로직을 개발합니다. 삭제표시를 제공하지 않는 시스템은 전체 코드 목록을 대조해 삭제 후보를 만들고, 일시적인 조회 누락인지 확인한 뒤 반영하도록 처리합니다.

‘기간별 다시 수집’ 화면에는 시작일·종료일과 고객·상품 선택 항목을 둡니다. 담당자가 실행하면 해당 기간의 자료를 다시 읽고, 기존 코드가 있으면 갱신하도록 만들어 중복 등록을 막습니다. 미리보기에는 신규·변경·사용 중지 예정 건수를 표시하고, 같은 기간을 두 번 실행해도 최종 자료가 같으며 관계없는 기간의 자료는 바뀌지 않는지 확인합니다.
PostgreSQL 트랜잭션과 전송 재시도
PostgreSQL 트랜잭션은 여러 DB 변경을 모두 반영하거나 취소하지만 외부 API 호출까지 함께 되돌리지는 않습니다. 자체 저장소에서 고객 기본정보와 코드 대응표를 함께 바꿔야 한다면 하나의 처리 단위로 묶습니다. 외부 시스템으로 보내는 작업은 별도로 추적해, 저장이 끝난 항목과 전송 확인이 필요한 항목을 구분할 수 있게 만듭니다.
재전송은 실패한 요청을 무조건 반복하는 방식으로 만들지 않습니다. 목적지 API가 동일 요청의 중복 처리를 막는 기능이나 고유코드 조회를 제공하는지 확인하고, 지원 범위에 맞춰 이미 반영됐는지 판단하는 로직을 개발합니다. 확인할 수 없는 요청은 담당자의 확인 목록으로 보내며, ‘목적지 저장은 끝났지만 응답이 끊긴 경우’를 재현해 고객이나 상품이 두 번 등록되지 않는지 검수합니다.

dbt 데이터 검사로 누락과 중복 확인
dbt data tests는 잘못된 행을 반환하는 SQL 검사로 업무별 데이터 규칙을 확인할 수 있습니다. 이를 활용하려면 원본과 목적지에서 비교할 자료를 모으는 과정도 개발 범위에 포함합니다. 고객코드 빈값, 동일 코드의 중복, 원본에만 있는 상품, 양쪽에서 다른 사용 여부를 각각 검사 규칙으로 정합니다.
결과 화면에는 검사 대상 기간과 항목별 오류 건수, 확인이 필요한 코드 목록을 보여줍니다. 총 건수와 함께 코드 목록·고객명·상품 단위·삭제 반영 여부를 대조하고, 업무상 제외하기로 한 자료는 비교 조건에 명시합니다. 검수 완료 조건은 합의한 범위에서 누락과 중복이 없고 변경·삭제 내용이 일치하는 것으로 정하며, 오류를 고친 뒤 같은 범위를 다시 검사할 수 있게 만듭니다.
고객·상품 샘플 파일 두 종류와 연결할 시스템 이름, API 문서, 수정·삭제 처리 기준을 준비해 거래처 자료 동기화 개발을 문의해 주세요. 필요한 관리 화면과 다시 수집할 범위를 함께 알려주시면 구현 범위를 구체화할 수 있습니다. 트램스 AI 제작 문의 (https://trams.co.kr/ai-si/contact/#inquiry)
참고 자료
비슷한 AI 서비스를
사업에 적용하고 싶으신가요?
아이디어와 필요한 기능을 알려주시면 제작 범위와 방법을 검토합니다.