목록 보기
외부 API, 수신과 처리 분리하기
백엔드

외부 API, 수신과 처리 분리하기

넥스트리
넥스트리
2026년 9월 17일

두줄요약

외부 API 수신과 실제 데이터 처리를 분리한 구조를 소개했습니다. 요청은 Payload로 저장하고 내부 Timer Event가 비동기로 처리하도록 설계했습니다.

문제 상황

  • 내부에서 시작되는 대량 배치 처리와 외부 API 수신 처리의 성격 차이
  • 한 번에 약 60건이지만 요청 시점을 통제할 수 없어 동기 처리 시 요청 집중 가능성
  • 요청 성공과 최종 데이터 저장 완료의 의미가 달라지는 구조

구조와 흐름

  • Receive 단계와 Process 단계를 분리한 비동기 처리 구조
  • 외부 요청은 전체 데이터를 JSON String으로 직렬화해 Payload 테이블 한 Row에 저장
  • 내부 Timer Event가 미처리 Payload를 조회해 Deserialize, 변환, Batch Insert / Upsert 수행

트레이드오프

  • 요청 시점에는 단순 저장으로 응답 속도와 부하 분산 확보
  • 처리 지연을 허용하는 대신 실시간 반영성은 낮아짐
  • requestId로 작업 추적, Unique Key로 중복 방지 역할 분리

적용해볼 점

  • 외부 연동 API는 수신과 실제 처리를 분리하는 구조 검토
  • 작업 단위 추적과 데이터 유일성 보장을 위한 식별자 분리
  • 최종 저장은 Upsert 기반으로 중복 유입 대응

다음 읽기

같은 회사의 연관 글

Inbox 패턴 기반 레거시 연동 비동기 전환 사례

레거시 연동 수신 구간을 Inbox 패턴으로 바꾸고 Kafka 비동기 처리로 분리한 사례를 정리했습니다. 응답 시간 단축, 중복 방지, 장애 복구 자동화까지 실측으로 검증했습니다.

넥스트리
넥스트리
백엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...