MBTI P들을 위한 투두 앱 '일단': 비동기 이벤트 기반 외부 API 연동 전략

🤖 AI 추천

MBTI P들의 투두 앱 '일단' 개발 시 겪은 VOC 수집 기능 구현 경험을 바탕으로, 트랜잭션 내 외부 API 호출의 위험성을 설명하고 비동기 이벤트 기반 처리 방식을 통해 디스코드 및 노션 API 연동을 성공적으로 수행한 개발자에게 추천합니다. 특히 백엔드 개발자, API 연동 경험이 있는 미들/시니어 개발자에게 유용합니다.

🔖 주요 키워드

MBTI P들을 위한 투두 앱 '일단': 비동기 이벤트 기반 외부 API 연동 전략
  • 핵심 기술: MBTI P들을 위한 투두 앱 '일단'에서 사용자 VOC 수집 기능을 구현하며 마주친 트랜잭션 내 외부 API 호출 문제를 해결하기 위해, 데이터베이스 트랜잭션과 외부 API 연동을 분리하는 비동기 이벤트 기반 처리 방식을 성공적으로 적용한 경험을 공유합니다.

  • 기술적 세부사항:

  • VOC 수집 기능 요구사항: 사용자는 의견을 DB에 영구 저장하고, 해당 내용을 정제하여 디스코드와 노션에 전송해야 합니다.
  • 트랜잭션 내 외부 API 호출의 위험성: API 호출 실패 시 DB 커밋, DB 롤백 시 API 호출 진행, 응답 지연 및 블로킹으로 인한 데이터 정합성 및 시스템 자원 낭비 문제를 야기합니다.
  • 비동기 이벤트 기반 처리 방식:
    1. DB 저장 후 트랜잭션 커밋과 함께 이벤트를 발행합니다.
    2. @Async 이벤트 리스너에서 디스코드 웹훅 및 노션 API를 비동기적으로 호출합니다.
    3. 외부 API 호출 실패 시 재시도 로직을 구현하여 안정성을 확보합니다.
  • 외부 API 클라이언트 선택: REST API 연동을 위해 RestClient, FeignClient, WebClient를 비교하고, 기존 연동 구조와 단순 POST 요청 중심의 기능 특성을 고려하여 FeignClient를 선택했습니다.
  • API 구현: 사용자의견 보내기 API (/comments)를 POST 방식으로 구현했습니다.

  • 개발 임팩트: 트랜잭션은 DB 작업에 집중하고 외부 API 연동은 비동기 및 독립적으로 처리함으로써, 데이터 정합성 유지, 시스템 안정성 향상, 그리고 응답 지연 방지를 통한 효율적인 시스템 운영이 가능해집니다.

  • 톤앤매너: 개발 실무에서 발생할 수 있는 문제와 그 해결 과정을 구체적인 기술 설명과 함께 전달하여, 동료 개발자들에게 실질적인 도움을 줄 수 있는 전문적인 톤을 유지합니다.

📚 관련 자료