👋 Hello, I am Seung-ho Ham

🧑🏻‍💻 A Developers who create code that changes the world

카테고리 없음

[IT] REST API

Potato_H 2021. 7. 1. 11:33
반응형

 

REST API란?

REST APIRepresentational State Transfer의 약자로, 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식입니다.

 

REST는 웹 상의 자료를 HTTP를 통해 전달하는 간단한 인터페이스를 제공합니다.

 

여기서는 SOAP이나 쿠키를 통한 세션 트래킹과 같은 별도의 전송 계층이 필요하지 않습니다.

 

즉, REST API는 웹 리소스와 상호작용하기 위해 설계된 매우 직관적이고 간편한 방법을 제공합니다.

 

REST 아키텍처의 제한 조건

REST 아키텍처에는 몇 가지 중요한 제한 조건이 있습니다.

 

1. 클라이언트와 서버의 분리: 클라이언트와 서버는 서로 독립적으로 동작합니다.

 

2. 무상태(Stateless): 서버는 클라이언트의 상태를 유지하지 않습니다.

 

각 요청은 독립적이어야 하며, 모든 필요한 정보는 요청에 포함되어야 합니다.

 

3. 캐시 처리 가능: 응답 데이터는 캐시 가능해야 하며, 이를 통해 성능을 향상시킬 수 있습니다.

 

4. 계층화(Layered)된 시스템: 시스템은 여러 계층으로 나뉘어 있어야 하며, 각 계층은 독립적으로 기능할 수 있어야 합니다.

 

5. 일관성 있는 인터페이스: API의 인터페이스는 일관성 있어야 하며, 사용자가 쉽게 이해하고 사용할 수 있어야 합니다.

 

REST의 구성 요소

REST API는 몇 가지 핵심 구성 요소로 이루어져 있습니다.

 

1. 자원(Resource): 자원은 웹상의 모든 개체를 의미하며, 일반적으로 URL을 통해 접근합니다.

 

2. 메소드(Method): HTTP 메소드를 사용하여 자원에 대한 작업을 정의합니다. 주요 메소드에는 GET, POST, PUT, DELETE 등이 있습니다.

 

3. 메시지(Message): 클라이언트와 서버 간에 주고받는 데이터입니다. 요청 메시지와 응답 메시지 모두 포함됩니다.

 

REST의 목표

REST는 다음과 같은 목표를 가지고 있습니다:

 

1. 구성 요소 상호작용의 규모 확장성: 시스템의 구성 요소 간의 상호작용이 확장 가능하도록 설계되어 있습니다.

 

2. 인터페이스의 범용성: 인터페이스는 범용적으로 설계되어 다양한 클라이언트와 호환될 수 있습니다.

 

3. 구성 요소의 독립적인 배포: 각 구성 요소는 독립적으로 배포될 수 있으며, 시스템 전체에 영향을 미치지 않고 업그레이드 또는 수정할 수 있습니다.

 

4. 중간적 구성 요소의 활용: 중간 구성 요소를 통해 응답 지연을 줄이고, 보안을 강화하며, 레거시 시스템을 인캡슐레이션할 수 있습니다.

 

REST API는 그 단순성과 유연성 덕분에 현대 웹 애플리케이션에서 널리 사용됩니다.

 

이러한 아키텍처의 특징과 목표를 이해하면,  API 설계와 구현에 크게 도움 될 것 입니다.!