피드로 돌아가기
QuickBooks API Is a Headache
Dev.toDev.to
Backend

Anti-pattern API 대응을 위한 추상화 계층 설계 및 OAuth 워크어라운드

QuickBooks API Is a Headache

Joseph Ndungi2026년 6월 2일6intermediate

Context

단일 테넌트 환경의 내부 라이선스 플랫폼과 QuickBooks Online 간 데이터 동기화 필요성 대두. 과도한 OAuth 절차와 비표준 JSON 응답 구조로 인한 개발 공수 증가 및 시스템 복잡도 상승 문제 발생.

Technical Solution

  • Postman을 이용한 수동 OAuth 인증 후 Access/Refresh Token을 환경 변수로 관리하는 Bootstrap 방식 채택
  • Refresh Token의 100일 유효 기간을 활용한 자동 갱신 로직 구현으로 인증 오버헤드 최소화
  • QuickBooksService라는 전담 추상화 계층을 도입하여 외부 API의 설계 결함을 캡슐화
  • 조건부 필드 존재 여부를 체크하는 Defensive Parsing 로직을 통해 런타임 Null Reference Exception 방지
  • 비표준 PascalCase 및 중첩 구조의 응답 데이터를 내부 표준 DTO로 매핑하여 도메인 로직과 API 상세 구현 분리
  • 외부 시스템의 설계 부채가 내부 비즈니스 로직으로 전이되지 않도록 Clean Seam 구조 설계

- 외부 API 연동 시 도메인 모델과 API 응답 모델을 엄격히 분리하는 Mapping Layer 구축 여부 검토 - 응답 필드의 누락 가능성을 고려한 Defensive Parsing 및 기본값 설정 로직 적용 - 복잡한 인증 절차를 가진 API의 경우, 초기 토큰 획득 후 자동 갱신 가능한 스토리지 전략 수립 - API 설계 시 빈 배열(Empty Array) 반환을 통해 클라이언트의 조건부 체크 로직 제거

원문 읽기