본문 바로가기
📖 Computer Science/네트워크

[CS Study] 네트워크 (4) - REST

by 헤이즐넛 좋아하는 개발자 2025. 5. 8.

시작하기 전에

저번에 HTTP, HTTPS를 알아봤으니 이번엔 그 대표적인 방법 REST를 알아봅시다.

구글, 카카오, 네이버 등에서도 다양한 서비스를 REST API로 제공하고 있습니다.


REST(REpresentational State Transfer)

HTTP 통신을 활용하기 위해 고안된 아키텍처다.

Representational은 인터넷상의 자원을 URI(Uniform Resource Identifier)로 나타낼 수 있음을 의미한다.

클라이언트는 URI로 표현된 자원을 HTTP 메서드를 이용해 CRUD(Create, Read, Update, Delete) 연산을 할 수 있다.

State Transfer는 요청받은 자원의 상태를 전달하는 것을 의미한다.

결국 REST는 자원을 명시해 연산을 수행하고 상태를 주고받는 것이다.

 

다음과 같은 특징이 있다:

  • 일관된 인터페이스: 자원을 나타내는 URI를 HTTP 메서드로 조작하는 일관된 인터페이스를 사용한다. 따라서 HTTP를 따르는 모든 플랫폼에서 REST를 사용할 수 있다.
  • 클라이언트-서버 구조: 클라이언트는 서버에 요청을 보내고 기다리며, 서버는 자원을 가지고 있으며 클라이언트의 요청에 응답한다.
  • 무상태성: 앞서 살펴봤듯이 서버가 클라이언트의 상태를 저장하지 않는다.
  • 캐싱 가능: 클라이언트는 이전에 서버로부터 받은 응답을 저장 및 재사용하는 캐싱(caching)을 할 수 있다. 캐싱은 클라이언트의 많은 요청으로부터 서버 부하를 줄여 주고, 클라이언트는 비교적 빨리 응답을 받을 수 있게 한다.
  • 자체 표현 구조: REST API는 자원, 행위, 표현으로 구성되어 있어 REST API 메시지를 보고 어떤 요청을 하는지 알 수 있다.
  • 계층형 구조: REST 서버는 다중 계층으로 구성되어 있어 보안, 암호화와 같은 계층을 추가해 서버에 대한 기능을 유연하게 확장할 수 있다.

이러한 특징들과 함께 HTTP를 기반으로 하기 때문에 별도의 인프라를 구축할 필요가 없다는 장점이 있다.

하지만 HTTP 메서드를 활용해 자원에 대한 연산을 처리하므로 동작이 한정적이라는 단점이 있다.

 

※ URI, URL, URN이란

더보기

※ URI, URL, URN이란

URI(Uniform Resource Identifier)

  • 인터넷에 있는 자원을 나타내는 주소다. 인터넷에서 요구하는 기본 조건으로 인터넷 프로토콜에 항상 붙어 다닌다.
  • URI의 하위 개념으로 URL, URN이 있다.

URL(Uniform Resource Locator)

  • 인터넷에서 자원의 위치를 알 수 있는 규약이다.
  • 웹 사이트 주소와 인터넷의 모든 자원을 나타낼 수 있다.

URN(Uniform Resource Name)

  • 자원의 위치 정보가 아닌 실제 자원을 특정한다.
REST API는 무엇일까?

REST API

API(Applicaiton Programming Interface)는 다른 소프트웨어에 서비스를 제공하기 위한 소프트웨어 인터페이스다.

REST API는 REST를 기반으로 한 인터페이스이다.

  • 자원의 식별은 URI로 하고,
  • 자원에 대한 행위(처리)는 HTTP 메서드로 나타내며,
  • 전달되는 데이터는 JSON 또는 XML 등으로 표현한다.

작동 방식:

  1. 클라이언트가 URI로 식별한 자원에 대해 HTTP 메서드를 사용해 REST API로 요청한다.
  2. REST API가 HTTP 요청 메시지에 실려 서버로 전달된다.
  3. 서버에서는 수신한 HTTP 요청 메시지를 바탕으로 요청 사항을 확인해 처리하고 HTTP 응답을 반환한다. 응답에는 요청에 대한 처리 성공 여부와 정보를 포함한다.
  4. 클라이언트는 자원에 대한 정보를 JSON 또는 XML 형태로 포함한 응답 메시지를 수신한다.

※ RESTful이란

더보기

※ RESTful이란

REST 규칙을 지키며 API를 제공하는 서비스를 의미한다.

REST API를 최대한 RESTful하게 사용하려면 다음과 같은 규칙을 준수해야 한다:

  • 자원에 대한 행위는 HTTP 메서드로 나타내며, HTTP 메서드나 행위에 대한 표현이 URI에 들어가면 안 된다.
  • HTTP 메서드는 명시적이어야 한다. 즉, 요청하려는 목적에 맞게 HTTP 메서드를 사용해야 한다.
    POST 메서드로 Create뿐 아니라 Update 같은 연산을 하면 명시적이라고 할 수 없다.
  • URI 경로는 슬래시(/)로 계층 관계를 표현하며, URI 마지막에 슬래시가 들어가면 안 된다.
  • URI 경로에는 언더바(_)를 사용하면 안 되고, 소문자 사용을 지향한다.
그럼 이제 HTTP 메서드를 정리해보자.

HTTP 메서드

주로 사용하는 메서드:

  • POST: 데이터를 생성할 때 사용
  • GET: 데이터를 조회할 때 사용
  • PUT: 데이터를 갱신할 때 사용
  • DELETE: 데이터를 제거할 때 사용

HTTP 메서드는 다음과 같이 CRUD 연산과 매칭된다.

  • POST - Create(생성)
  • GET - Read(조회)
  • PUT - Update(갱신)
  • DELETE - Delete(삭제)
네트워크는 여기서 마무리이다.