[Back-end] REST와 RESTful API

2025. 2. 15. 18:23·Development/CS

 

1. API란?


API(Application Programming Interface), 우리 말로 응용 프로그램 인터페이스라고 한다. API란, 애플리케이션 등이 서로 간에 연결하여 통신할 수 있도록 도와주는 매개체를 말한다. API를 통해 다양한 소프트웨어 구성 요소들이 상호작용할 수 있다.

 

우리는 온라인으로 물건을 살 때, 가게를 직접 방문하지 않고 해당 웹사이트에 접속하여 물건을 산다.

코로나 이후 많이들 사용하는 쿠팡을 예로 들어보자. 쿠팡에서 물건을 살 때 우리는 물건을 고르고 주문을 한다. 주문을 받은 회사에서는 준비된 물건을 배송해준다. 이때 사용자가 요청한 주문을 API가 쿠팡으로 전달한다. 즉, 데이터를 전달해주는 역할을 한다.

 

2. REST란?


REST(Representational State Transfer)는 자원을 이름으로 구분해 해당 자원의 상태를 주고받는 통신 규칙이다.

마찬가지로 REST 아키텍처의 주요 요소와 원칙 7가지를 쿠팡과 비유하여 설명해보겠다.

 

2-1. REST 아키텍처 주요 요소

1)리소스

REST에서 모든 것은 리소스로 간주되며, 각 리소스는 고유한 URI로 식별된다.

쿠팡에는 많은 상품들이 등록되어 있고, 사용자들은 그 상품들을 보고 물건을 산다. 이 때 상품들은 각자 고유한 상품 번호를 가지고 있어 구별하기 쉽다. 이 때 상품들은 리소스이고, 상품들이 가진 고유한 상품 번호는 URI에 비유할 수 있다.

 

2) HTTP 메서드

REST는 HTTP 프로토콜의 메서드(GET, POST, PUT, DELETE 등)를 활용하여 CRUD 작업을 구현한다.

우리는 쿠팡에서 원하는 상품을 조회하고(GET), 다른 회사에서 판매하고 싶은 상품들을 쿠팡에 등록한다(POST). 또한 사용해본 후기를 쿠팡에 리뷰를 남겼는데 리뷰를 수정하고 싶다면 수정할 수 있고(PUT), 장바구니에 담은 물건을 사고싶은 마음이 변했다면 장바구니에서 삭제(DELETE)할 수 있다. 이처럼 우리가 쿠팡에서 하는 작업들은 HTTP 프로토콜을 활용한 기능들과 유사하다.

 

3) 표현

리소스의 상태는 클라이언트에게 표현(Representation)으로 전달된다.

우리가 쿠팡이란 웹사이트 또는 앱에서 볼 수 있는 상품 정보, 이미지, 가격 등이 REST의 표현에 해당한다. 일반적으로 JSON 형식이 사용되며, XML 형식으로도 전달될 수 있다.

 

2-2. REST 아키텍처의 주요 원칙

 

1) 무상태성

 

각 요청은 이전 요청과 독립적으로 처리되며, 서버는 클라이언트의 상태를 저장하지 않는다.

쿠팡은 사용자의 세션 상태를 유지하지 않지만 모든 필요한 정보는 각 요청에 포함되어 전송된다. 예를 들어, 저번에 비누를 샀고 이번에는 텀블러를 산다면, 비누를 샀던 주문 내역을 포함하지 않고 텀블러 주문만 쿠팡으로 요청을 보낸다. 쿠팡은 이 정보를 바탕으로 해당 사용자의 주문 내역을 조회한다. 이렇게 각 요청은 독립적으로 처리되며, 이는 REST의 무상태성 원칙을 따른다고 볼 수 있다.

 

2) 캐시 가능

 

REST는 HTTP의 캐싱 기능을 활용하여 성능을 향상시킨다.

사용자들이 많이 찾는 인기 상품들의 정보는 캐시에 저장되어 사용자들 눈에 많이 띄도록 하는 것은 REST의 캐싱 기능과 유사하다고 볼 수 있다.

 

3) 클라이언트-서버 구조

 

클라이언트와 서버의 역할이 명확히 분리되어 있어 각각 독립적으로 발전할 수 있다. 사용자들이 볼 수 있는 쿠팡의 앱, 웹사이트는 클라이언트, 쿠팡이 주문을 처리하고 상품을 등록하는 기능을 수행하는 백엔드 시스템은 서버라고 할 수 있다. 이 둘은 독립적인 구조를 가지며 서로 통신한다.

 

4) 계층화된 시스템

 

REST 아키텍처는 여러 계층으로 구성될 수 있으며, 이를 통해 유연성과 확장성을 높일 수 있다. 사용자가 보낸 요청을 쿠팡에서 어떻게 작업하고 처리하는지, 그 복잡한 백엔드 시스템을 볼 수 없는 것이 REST의 계층화된 시스템이란 원칙과 관련이 있다.

 

 

3. RESTful API란?

 

RESTful API는 말 그대로 API를 REST처럼 사용한다는 의미이다. 즉, REST 아키텍처의 제약 조건을 준수하는 API라고 할 수 있다. HTTP 프로토콜을 기반으로 하며, 리소스에 대한 CRUD(Create, Read, Update, Delete) 작업을 HTTP 메서드(GET, POST, PUT, DELETE 등)를 통해 수행한다.

 

RESTful API는 플랫폼과 언어에 대해 독립적이기 때문에 다양한 환경에서 사용이 가능하다. 또한 상태가 없는 통신으로 서버의 확장성을 향상시키며, URI와 HTTP 메소드를 통해 리소스와 행동을 명확하게 표현한다.

 

4. RESTful API의 활용

RESTful API는 단순성과 확장성이라는 장점으로 인해 많은 개발자들이 선호한다.

 

웹 서비스 개발, 모바일 앱의 백엔드, IOT 디바이스 통신 등 다양한 분야에서 활용되고 있다. 현대 개발 환경에서 RESTful API는 프론트엔드와 백엔드를 분리할 수 있게 한다. 이는 개발의 유연성을 높이고, 각 부분을 독립적으로 개발하고 배포할 수 있게 한다. 또한, RESTful API는 클라우드 서비스와의 통합을 용이하게 하며, 오픈 API 제공을 통해 서비스의 확장성을 높이는 데 사용된다.

 

 

 

백엔드 개념 중 하나인 API와 함께 RESTful API가 뭔지 정리해봤다.

감사합니다 o( ̄▽ ̄)d

'Development > CS' 카테고리의 다른 글

[OOP] S.O.L.I.D - 객체 지향 설계  (0) 2025.08.31
[Data Structure] 선형 자료구조  (0) 2025.03.20
[Data Structure] heap  (0) 2025.03.19
'Development/CS' 카테고리의 다른 글
  • [OOP] S.O.L.I.D - 객체 지향 설계
  • [Data Structure] 선형 자료구조
  • [Data Structure] heap
knhye
knhye
  • 전체
    오늘
    어제
  • knhye
    3n1hye_
    knhye
  • 링크

    • GitHub
    • 분류 전체보기 (61)
      • Development (28)
        • Back-end (21)
        • DB (3)
        • CS (4)
      • Algorithm (6)
      • DevOps (10)
        • git (1)
        • Cloud Platform (5)
        • CICD (1)
        • Cloud Native (2)
      • Internet (2)
      • 매일메일 (6)
      • 회고 (5)
        • Capstone (2)
        • Hackathon (1)
        • 2025 (2)
      • 자격증 (1)
      • 블로그 리딩 (3)
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
knhye
[Back-end] REST와 RESTful API
상단으로

티스토리툴바