REST API와 RPC API 차이

2025. 5. 9. 15:38·CS

 

 

 

REST API의 기본 개념

 

 

 

리소스(Resource)

  • 데이터나 기능을 의미함
  • 예: /users, /posts/1, /products/4

 

HTTP 메서드(Method)로 동작을 구분

  • GET: 데이터 조회
  • POST: 데이터 생성
  • PUT 또는 PATCH: 데이터 수정
  • DELETE: 데이터 삭제

 

URL 설계는 명사 중심

  • 예: GET /users → 사용자 목록 가져오기
  • 예: POST /users → 사용자 생성

 

무상태성(Stateless)

  • 서버는 이전 요청 상태를 기억하지 않음
  • 모든 요청은 독립적
  • 라이언트 요청에 필요한 모든 정보가 포함되어 있어야 함 (세션 X)

 

JSON을 주로 사용

  • 요청이나 응답에서 데이터를 표현할 때 JSON 형식이 보편적

 

에러와 응답은 명확한 상태 코드 사용

  • 예: 200 OK, 201 Created, 400 Bad Request, 404 Not Found 등

 

 

사용 예시

HTTP Method URL 설명
GET /users 모든 사용자 조회
GET /users/1 ID가 1인 사용자 조회
POST /users 새 사용자 생성
PUT /users/1 ID가 1인 사용자 수정
DELETE /users/1 ID가 1인 사용자 삭제

 

REST API의 장점

  • URL만으로 기능이 명확해짐
  • HTTP 규칙을 그대로 사용하므로 구현이 쉬움
  • 다양한 언어/플랫폼과 연동이 쉬움

 

 

 

 

 

 

REST가 사용되는 대표적인 환경

 

🌐 프론트엔드

  • React, Vue, Angular 등에서 fetch, axios 등을 통해 REST API 호출
  • 모바일 앱(iOS/Android)도 REST API로 백엔드와 통신

 

💻 백엔드 프레임워크들

언어 프레임워크 (REST 지원)
Python Flask, Django REST Framework
Node.js Express.js, NestJS
Ruby Ruby on Rails (RESTful routing 내장)
Go Gin, Echo, Fiber
PHP Laravel, Symfony
Java Spring Boot, Jakarta EE 등
.NET ASP.NET Core Web API
 

☁️ 클라우드/서버리스 환경

  • AWS API Gateway + Lambda
  • GCP Cloud Functions
  • Azure Functions
    → 전부 REST 기반 API를 쉽게 구축 가능

 

 


 

 

 

RPC(Remote Procedure Call)  API의 기본 개념 

 

 

개념

  • URL이 "자원을 지정"하는 것이 아니라, "무엇을 할지"를 말함
  • 마치 함수 호출처럼 보이기 때문에 RPC 방식이라고 부름

 

URL 설계는 동사 중심

  • 함수 이름이 URL에 표현됨
  • HTTP 메서드는 거의 POST만 쓰는 경우가 많음

 

사용 예시

HTTP Method URL 설명
POST /createUser 사용자 생성
GET /getUserById?id=1 사용자 조회
POST /deleteUser 사용자 삭제

 

 

 

 

 

 

RPC가 사용되는 대표적인 환경

 

🧩 마이크로서비스 간 통신

  • 성능과 속도를 중요시하는 내부 통신에서 RPC 많이 사용
  • 특히 **gRPC (Google의 RPC 프레임워크)**가 매우 널리 사용됨
    • Protocol Buffers 기반 (JSON보다 작고 빠름)
    • HTTP/2 기반 스트리밍 지원

 

🧠 AI/ML 시스템 내부 통신

  • 대규모 모델 호출이나 데이터 처리 시 RPC 사용
  • 예: TensorFlow Serving, Apache Thrift

 

💼 기업 시스템, 레거시 시스템

  • 오래된 SOAP (XML-RPC 기반) 방식도 일종의 RPC
  • Java RMI, .NET Remoting, CORBA 등

 

 


 

 

 

REST vs RPC


비교 항목 RESTful API RPC 스타일 API
URL 구조 자원 중심 (/users) 동사 중심 (/createUser)
HTTP 메서드 사용 의미에 맞게 구분 사용 거의 POST만 사용하거나 의미 없음
확장성/유지보수성 높음 낮음
자동 문서화 등 도구 지원 매우 활발함 제한적일 수 있음
데이터 포맷 주로 JSON 주로 ProtoBuf (또는 custom)
사용 용도 공개 API, 웹 서비스 등 내부 통신, 성능 민감 서비스
예시 환경 모바일/웹 백엔드 등 MSA 내부, AI 시스템 등

 

 

 

 

반응형

'CS' 카테고리의 다른 글

이클립스 로고 멈춤 무한로딩 해결 방법 5가지  (0) 2025.06.18
'CS' 카테고리의 다른 글
  • 이클립스 로고 멈춤 무한로딩 해결 방법 5가지
오은이
오은이
  • 오은이
    오은이 하우스
    오은이
  • 전체
    오늘
    어제
    • 분류 전체보기 (85)
      • 일기 (2)
      • Python (1)
      • Java (4)
      • CS (2)
      • 코딩테스트 (26)
        • 백준 (25)
        • 프로그래머스 (1)
      • 웹 개발 (18)
        • Spring (7)
        • JavaScript (3)
        • WebSquare (5)
        • React (3)
      • DB (5)
        • MySQL (4)
        • Oracle (1)
      • 서버&인프라 (18)
        • Server (5)
        • Cloud (12)
        • Linux (1)
      • 자격증 (9)
        • 정보처리기사 (2)
        • AICE (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    클라우드
    Associate
    docker
    websquare
    AI
    티스토리챌린지
    백준
    tomcat
    EC2
    SpringBoot
    dockerspring
    머신러닝
    Java
    cloud DB
    클라우드 배포
    MySQL
    오블완
    docker배포
    Spring
    Apache
    리액트
    백준자바
    AICE
    react
    AICE Associate
    db
    톰캣
    자바
    알고리즘
    웹스퀘어
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
오은이
REST API와 RPC API 차이
상단으로

티스토리툴바