본문 바로가기
● Data Insights/System

(Data) REST API 호출 완전 정복: 메서드별 비교·장단점·부하 분석

by DATA Canvas 2025. 10. 14.
반응형

REST API의 HTTP 메서드(GET, POST, PUT, DELETE 등)와 호출 패턴(동기·비동기·폴링·웹훅·스트리밍)을 이해하면 시스템 성능과 안정성을 모두 잡을 수 있습니다.


1. HTTP 메서드 기본 이해

REST API는 HTTP 메서드를 통해 자원을 조작합니다. 주요 메서드는 다음과 같습니다.

  • GET: 서버에서 데이터를 조회
    장점: 멱등성(Idempotent) 지원, 캐시 활용 가능
    단점: 요청 본문(request body)을 지원하지 않아 복잡한 쿼리 처리 한계
  • POST: 서버에 데이터를 생성 또는 서버 내부 프로세스 트리거
    장점: 요청 본문을 활용해 복잡한 데이터 전송 가능
    단점: 멱등성 미지원, 중복 요청 시 이중 생성 주의
  • PUT: 기존 자원 전체 교체
    장점: 멱등성 보장, 자원 업데이트 명시적
    단점: 전체 업데이트가 필요해 불필요한 데이터 전송
  • PATCH: 기존 자원 부분 수정
    장점: 변경 필드만 전송해 효율적
    단점: 멱등성 구현 복잡, 표준화 논쟁
  • DELETE: 자원 삭제
    장점: 멱등성 보장
    단점: 삭제 후 복구 로직 별도 구현 필요
반응형

2. 호출 패턴별 비교

2.1 동기 호출 (Synchronous Request)

클라이언트가 요청 후 응답을 기다립니다.

  • 구현 단순·직관적
  • 동시 요청 과부하 시 응답 지연↑
  • GET/POST/PUT/DELETE CRUD 작업에 적합

2.2 비동기 호출 (Asynchronous Request)

요청 후 즉시 응답을 받고, 실제 처리 완료 시 콜백·웹훅·메시지 큐로 알림 받습니다.

  • UI 반응성 우수
  • 콜백 설계·재시도 로직 복잡
  • 대용량 ETL·백그라운드 작업에 적합

2.3 폴링 (Polling)

클라이언트가 주기적으로 GET 요청으로 상태를 조회.

  • 구현 간단
  • 불필요한 호출·네트워크 부하↑
  • 웹훅 미지원 외부 API 상태 감시에 사용

2.4 웹훅 (Webhook) / 서버 푸시 (Push)

서버가 이벤트 발생 시 클라이언트 엔드포인트로 POST 요청 전송.

  • 실시간성 우수
  • 엔드포인트 보안·가용성 관리 필요
  • 결제 알림·CI/CD 이벤트 등에 적합

2.5 스트리밍 (Streaming API)

장기 연결로 서버가 데이터 변경을 지속 전송.

  • 실시간 데이터 피드(예: 금융 시세)
  • 장기간 연결 유지로 리소스 점유
  • 방화벽·프록시 설정 이슈

3. 시스템 부하 관점

호출 방식 메서드 활용 실시간성 구현 복잡도 부하 특성
동기 호출 GET/POST/PUT/DELETE 낮음 낮음 요청 시점 집중
비동기 호출 POST + 큐 연동 중간 높음 초기 가벼움→후속 작업 집중
폴링 반복적 GET 낮음 중간 주기별 지속 부하
웹훅/푸시 POST 높음 중간 이벤트 발생 시 분산 부하
스트리밍 GET (장기 연결) 최고 높음 연결 지속 점유

4. 사용 가능한 원천과 도구

  • API 게이트웨이(Azure API Management, AWS API Gateway): 인증·로깅·로드밸런싱
  • 메시지 큐(RabbitMQ, Kafka, Azure Service Bus): 비동기 호출·이벤트 버스
  • 웹훅 플랫폼(ngrok, Azure Functions HTTP Trigger): 개발 환경 엔드포인트 노출
  • 스트리밍 플랫폼(Server-Sent Events, WebSocket, SignalR): 실시간 양방향 통신

5. 선택 가이드라인

  • 즉시성↓ 단순성↑: 동기 호출 + GET/POST
  • 실시간성↑ 인터랙션↑: 웹훅(POST) 또는 스트리밍
  • 대규모 배치 처리: 비동기 POST + 메시지 큐
  • 외부 API 폴링 한계: 폴링 대신 웹훅 지원 여부 확인

비즈니스 요구사항, 대기시간 허용범위, 인프라 제약조건을 종합 고려해 최적의 메서드와 호출 패턴을 선택하면 안정적인 REST API 서비스를 구축할 수 있습니다.

반응형