Rest API 1일차

FE_04이상민·2024년 7월 24일
0

Rest API

목록 보기
1/2
post-thumbnail

오늘은 Rest API에 대해 정리를 해보았습니다.
정확하지 않고 틀린 부분이 있을 수 도 있으니
그점 양해 부탁드립니다.

오늘 1일차에 알아볼 내용은
1. Rest API란?
2. REST의 6가지 지침 원칙

Rest API란?

REST는 RE 프레젠테이션 상태 전송 및 분산 하이퍼미디어 시스템 을 위한 아키텍처 스타일 의 약자입니다.

로이 필딩은 2000년에 그의 유명한 논문 에서 처음 으로 이를 제시했습니다.

그 이후로 웹 기반 API( Application Programming Interfaces ) 를 구축하는 데 가장 널리 사용되는 접근 방식 중 하나가 되었습니다.

여기서 API란 무엇일까요?

API란 무엇인가요?
API는 정의 및 프로토콜 집합을 사용하여 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘입니다.

REST는 프로토콜이나 표준이 아니라 아키텍처 스타일입니다.
개발 단계에서 API 개발자는 다양한 방식으로 REST를 구현할 수 있습니다.

다른 아키텍처 스타일과 마찬가지로 REST에도 지침 원칙과 제약이 있습니다.
서비스 인터페이스를 RESTful 이라고 부르려면 이러한 원칙을 충족해야 합니다.

REST 아키텍처 스타일을 따르는 웹 API(또는 웹 서비스)를 REST API (또는 RESTful API )라고 합니다.

REST의 6가지 지침 원칙

REST는 설계에서 단순성, 확장성 및 무상태성을 촉진하는 몇 가지 제약과 원칙을 기반으로 합니다. RESTful 아키텍처의 여섯 가지 지침 원칙 또는 제약은 다음과 같습니다.

1-1 균일한 인터페이스
일반성의 원칙을 구성 요소 인터페이스에 적용함으로써, 우리는 전체 시스템 아키텍처를 단순화하고 상호작용의 가시성을 개선할 수 있습니다. 여러 아키텍처 제약 조건은 균일한 인터페이스를 얻고 구성 요소의 동작을 안내하는 데 도움이 됩니다.

다음 네 가지 제약 조건을 통해 균일한 REST 인터페이스를 구현할 수 있습니다.

리소스 식별 – 인터페이스는 클라이언트와 서버 간 상호작용에 관련된 각 리소스를 고유하게 식별해야 합니다.

표현을 통한 리소스 조작 – 리소스는 서버 응답에서 균일한 표현을 가져야 합니다.
API 소비자는 이러한 표현을 사용하여 서버에서 리소스 상태를 수정해야 합니다.

자체 설명 메시지 - 각 리소스 표현은 메시지를 처리하는 방법을 설명하는 데 충분한 정보를 전달해야 합니다.
또한 클라이언트가 리소스에서 수행할 수 있는 추가 작업에 대한 정보도 제공해야 합니다.

애플리케이션 상태의 엔진으로서의 하이퍼미디어 – 클라이언트는 애플리케이션의 초기 URI만 가져야 합니다.
클라이언트 애플리케이션은 하이퍼링크를 사용하여 다른 모든 리소스와 상호 작용을 동적으로 구동해야 합니다.

더 간단히 말해서 REST는 클라이언트와 서버 간의 상호작용을 위한 일관되고 균일한 인터페이스를 정의합니다.
예를 들어 HTTP 기반 REST API는 표준 HTTP 메서드(GET, POST, PUT, DELETE 등)와 URI(Uniform Resource Identifiers)를 사용하여 리소스를 식별합니다.

1-2 클라이언트-서버

클라이언트-서버 디자인 패턴은 관심사 분리를 강화하여 클라이언트와 서버 구성 요소가 독립적으로 발전하는 데 도움이 됩니다.

사용자 인터페이스 문제(클라이언트)와 데이터 저장 문제(서버)를 분리함으로써 여러 플랫폼에서 사용자 인터페이스의 이동성이 향상되고, 서버 구성 요소가 단순화되어 확장성도 개선됩니다.

클라이언트와 서버가 발전하더라도 클라이언트와 서버 간의 인터페이스 / 계약이 끊어지지 않도록 해야 합니다.

1-3 무국적
무 상태화는 클라이언트에서 서버로 보내는 각 요청에 요청을 이해하고 완료하는 데 필요한 모든 정보를 포함해야 함을 요구합니다.

서버는 이전에 서버에 저장된 컨텍스트 정보를 활용할 수 없습니다.

이러한 이유로 클라이언트 애플리케이션은 세션 상태를 완전히 유지해야 합니다.

1-4 캐시 가능
캐시 가능 제약 조건 은 응답이 암시적 또는 명시적으로 자신을 캐시 가능 또는 캐시 불가능으로 표시해야 함을 요구합니다.

응답이 캐시 가능한 경우 클라이언트 애플리케이션은 지정된 기간 동안 동일한 요청에 대해 나중에 응답 데이터를 재사용할 권한을 얻습니다.

1-5 계층 시스템
계층적 시스템 스타일은 구성 요소의 동작을 제한하여 아키텍처를 계층적 계층으로 구성할 수 있도록 합니다. 계층적 시스템에서 각 구성 요소는 상호 작용하는 직접적인 계층 너머를 볼 수 없습니다.

계층화된 시스템의 평이한 예로는 MVC 패턴이 있습니다 . MVC 패턴은 관심사를 명확하게 분리할 수 있어 애플리케이션을 개발, 유지 관리 및 확장하기가 더 쉽습니다.

1-6 주문형 코드( 선택 사항 )
REST를 사용하면 애플릿이나 스크립트 형태로 코드를 다운로드하고 실행하여 클라이언트 기능을 확장할 수도 있습니다.

다운로드된 코드는 사전 구현해야 하는 기능의 수를 줄여 클라이언트를 간소화합니다. 서버는 코드 형태로 클라이언트에 전달되는 기능의 일부를 제공할 수 있으며, 클라이언트는 코드만 실행하면 됩니다.

아직 어려운점도 부족한 점도 많지만
프론트엔드로 진출하기 위해 한 계단을 오른 프린이 일기였습니다.
끝까지 읽어주신분들 감사합니다~!

2개의 댓글

comment-user-thumbnail
2024년 7월 25일

좋은글 감사합니다!

답글 달기
comment-user-thumbnail
2024년 7월 25일

Rest API!! 어디서 많이 봤지만 정확히 알지 못했는데
알기 쉽게 정리해주셔서 감사합니다!

답글 달기