본문 바로가기
웹 개발 (Frontend Developer)/네트워크

REST API

by Jackykim 2024. 9. 27.

<REST>

REST(Representational State Transfer)는 인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침으로 시작되었습니다 . 이 덕분에 REST 기반의 아키텍처를 사용해서 대규모 고성능 통신을 안정적으로 지원할 수 있습니다. 즉 API는 애플리케이션이나 서비스가 다른 애플리케이션이나 서비스 내의 리소스에 액세스 할 수 있도록 하는 메커니즘입니다.

 

<REST 아키텍처>

균일한 인터페이스 (Uniform Interface)

  • 동일한 리소스에 대한 모든 API 요청은 요청의 출처에 관계없이 동일하게 표시되어야 합니다.
  • 동일한 데이터는 하나의 URI (Uniform Resource Identifier)에만 속하도록 해야 합니다. 

클라이언트-서버 분리 (Client-server based)

  • REST API 설계에서 클라이언트 및 서버 애플리케이션은 서로 완전히 독립적이어야 합니다.

무상태 (Stateless)

  • REST API는 무상태성이기 때문에 각 요청에는 처리에 필요한 모든 정보가 포함되어야 합니다. (서버 세션이 필요없음)

캐시 가능성 (Cacheability)

  • 클라이언트나 서버 측에서 리소스를 캐시 할 수 있어야 합니다.

계층화된 시스템 아키텍처 (Layered System)

  • 계층화된 시스템 아키텍처에서는 클라이언트가 클라이언트와 서버 사이의 권한이 부여된 중개자들과 연결할 수 있으며, 여전히 서버로부터 응답을 받을 수 있습니다. 서버 또한 다른 서버로 요청을 전달할 수 있습니다.

코드 온디맨드 (Code on Demand)

  • REST API는 일반적으로 정적 리소스를 전송하지만 경우에 따라 응답에 실행 코드(예: Java 애플릿)가 포함될 수도 있습니다.

<REST API 장점>

확장성

  • 클라이언트와 서버 간의 분리 덕분에 개발팀이 제품을 큰 어려움 없이 확장할 수 있습니다

유연성과 이식성

  • REST 스타일 API는 요청 중 하나에서 데이터를 올바르게 전송해야 하기 때문에, 한 서버에서 다른 서버로의 마이그레이션을 수행할 수 있습니다.

독립성

  • 클라이언트와 서버 간의 분리로 인해 프로토콜은 프로젝트 전반에 걸쳐 독립적으로 개발이 이루어지기 쉽게 만듭니다. REST API는 작업 구문과 플랫폼에 맞게 적응할 수 있습니다.

경량성

  • REST API는 JSON, XML, HTML 등 여러 포맷을 지원하는 HTTP 표준을 활용하기 때문에 경량화되고 빠릅니다.

<REST API 단점>

복잡성

  • RESTful API는 개발이 복잡할 수 있으며, 많은 기술적인 지식을 요구합니다. 리소스 설계, URI 구조, 캐싱 전략, 상태 관리 등이 개발 시 고려해야 할 복잡한 요소들입니다.

성능

  • RESTful API의 성능은 제대로 최적화되었을 때만 개선될 수 있습니다.

버전 관리

  • RESTful API에서는 버전 관리가 문제가 될 수 있으며, API의 변경이 API를 사용하는 기존 애플리케이션과의 호환성 문제를 일으킬 수 있습니다.

<RESTful API>

RESTful API는 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스입니다. 대부분의 비즈니스 애플리케이션은 다양한 태스크를 수행하기 위해 다른 내부 애플리케이션 및 서드 파티 애플리케이션과 통신해야 합니다. RESTful API는 안전하고 신뢰할 수 있으며 효율적인 소프트웨어 통신 표준을 따르므로 정보 교환을 안전하고 효율적으로 지원합니다 .

 

<RESTful API 클라이언트 요청에 포함하는 내용들>

- Unique Resource Identifier (URI)

- HTTP 메서드 (GET, POST, PUT, DELETE)

- HTTP 헤더

 

<RESTful API 인증 방법>

- HTTP 인증 (HTTP authentication)

  • Basic authentication : 클라이언트가 유저 이름과 비번을 요청 헤더에 전송하고 64개의 캐릭터로 암호화하여 안전하게 변경합니다.
  • Bearer authentication : 토큰 보유자에게 권한 주는 방식입니다. (로그인 요청)

- API 키 

  • 서버는 최초 접속하는 클라이언트에게 고유한 생성 값을 할당합니다. 클라이언트가 자원에 접근하려 할 때마다, 고유한 API 키를 사용해 자신을 인증합니다.

- OAuth

  • OAuth는 비밀번호와 토큰을 결합하여 어떤 시스템에도 매우 안전한 로그인 액세스를 제공합니다. 서버는 먼저 비밀번호를 요청한 후, 추가적인 토큰을 요구하여 인증 과정을 완료합니다.

참고 자료 : 

https://blog.postman.com/rest-api-examples/

 

What Is a REST API? Examples, Uses & Challenges | Postman Blog

REST, which stands for Representational State Transfer, is an architectural style for distributed hypermedia systems. Learn more about REST APIs.

blog.postman.com

https://www.ibm.com/kr-ko/topics/rest-apis

 

REST API란 무엇인가요? | IBM

REST API는 REST(Representational State Transfer) 아키텍처 스타일의 설계 원칙을 준수하는 API(애플리케이션 프로그래밍 인터페이스)입니다.

www.ibm.com

https://aws.amazon.com/what-is/restful-api/

 

RESTful API란 무엇인가요? - RESTful API 설명 - AWS

Amazon API Gateway는 어떤 규모에서든 개발자가 API를 손쉽게 생성, 게시, 유지 관리, 모니터링 및 보안 유지할 수 있도록 하는 완전관리형 서비스입니다. API Gateway를 사용하면 실시간 양방향 통신 애

aws.amazon.com

https://khj93.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-REST-API%EB%9E%80-REST-RESTful%EC%9D%B4%EB%9E%80

 

[네트워크] REST API란? REST, RESTful이란?

REST API란 REST를 기반으로 만들어진 API를 의미합니다. REST API를 알기 위해 REST부터 알아보도록 하겠습니다. REST란? REST(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상

khj93.tistory.com

https://medium.com/@mkuffo/key-advantages-and-disadvantages-of-building-restful-apis-469ae795ed9b

 

Key Advantages and Disadvantages of building RESTful APIs

RESTful APIs are the building blocks of modern web development and have revolutionized how we interact with our applications. They provide…

medium.com

 

 

'웹 개발 (Frontend Developer) > 네트워크' 카테고리의 다른 글

Cookie vs Session  (1) 2024.09.30
URL & URI & URN  (1) 2024.09.29
HTTP 버전별 차이점  (5) 2024.09.26
HTTPS는?  (3) 2024.09.26
기본 HTTP에 대해 알아보기  (2) 2024.09.26