inblog logo
|
mulab
    Web & architecture

    REST API에 대해 알아보자

    Nov 28, 2023
    REST API에 대해 알아보자
    Contents
    API란 무엇인가?REST란 무엇인가?RESTful API는 뭐지?
    REST API는 한번 쯤은 들어보고 사용해봤을 것이다. 근데 중요한건? 무엇인지 알고 쓰는 것! REST API에 대해 알아보자.

    API란 무엇인가?

    • Application Programming Interface의 약자.
    • 정의 및 프로토콜 집합을 사용해서 두 소프트웨어 구성 요소가 통신할 수 있게 하는 메커니즘이다.

    API 쉽게 이해하기

    보통 API를 설명할 때, 레스토랑으로 비유를 많이한다.
    • 주방(서버): 음식을 만들고 서빙하는 곳으로 데이터나 서비스를 제공하는 서버 역할과 비슷하다.
    • 메뉴판(API): 메뉴판은 레스토랑과 손님 사이에서 의사소통을 도와주는 중간 역할을 한다. API의 역할과 비슷하다.
    • 손님(클라이언트): 음식을 주문하는 손님으로 클라이언트의 역할이다.
    손님(클라이언트)은 원하는 음식(데이터)를 메뉴판(API)를 통해 주방(서버)에 요청하고 주방(서버)는 요청받은 값을 조리(데이터처리)해서 손님(클라이언트)에게 제공한다.
    notion image

    REST란 무엇인가?

    REST API 소개

    REpresentational State Transfer의 약자로 웹 서비스를 위한 아키텍처 스타일 중 하나이다. 현대 웹 서비스의 핵심으로 클라이언트와 서버간의 효율적인 통신과 간결하고 확장 가능한 솔루션을 제공한다.

    REST API 특징

    • HTTP 프로토콜의 장점을 살린 통신규약이다.
    • 각 자원은 고유한 URI를 가지고 있으며, URI는 자원을 식별하는 데 사용된다.
    • HTTP Method(POST, GET, PUT, DELETE)를 이용해 자원에 대한 CRUD 연산을 적용한다.

    REST API의 구성요소

    REST API의 동작원리는 기본적으로 자원(Resource)과 해당 자원에 대한 행위(method) 그리고 표현(Representation)으로 이루어 진다.
    • 자원(Resource): 클라이언트가 관리하고자 하는 모든 것을 나타내며, 고유한 식별자 URI를 부여한다.
    • 행위(HTTP Method): 자원에 대한 특정 동작을 의미하며 HTTP 메서드로 사용된다. GET(조회), POST(생성), PUT(갱신), PATCH(일부갱신), DELETE(삭제) 등이 있다.
    • 표현(Representation): 자원의 상태를 나타내는 방식을 의미한다. 주로 JSON 또는 XML형식을 사용하여 자원의 표현을 정의한다.
    HTTP 메서드는 아래 페이지 참고!

    REST 디자인 패턴

    1. 무상태성(Stateless)
    • 각각의 요청이 서버에 의해 독립적으로 처리되며, 이전의 요청에 대한 상태를 서버가 저장하지 않는 원칙.
    • 서버가 각 클라이언트의 상태를 유지할 필요가 없어서 확장성을 향상시킨다.
    2. 클라이언트-서버 아키텍처(Client-Server Architecture)
    • 시스템을 클라이언트와 서버로 나누어, 각각의 역할을 개발하고 확장 가능하다.
    • 클라이언트는 UI 및 사용자 요청을 담당하고, 서버는 DB나 서비스에 대한 처리를 담당한다.
    3. 일관된 인터페이스(Uniform Interface)
    • HTTP 표준을 따르면 뭐든 가능하다는 의미이다. 웹주소(URI)로 특정 리소스를 표현하고 다루는 일관된 방법이다.
    • 즉, 언어와 플랫폼의 제약이 없다. 그래서 REST API가 많이 쓰여지는 이유이다.
    4. 캐싱 가능성(Cacheability)
    • 리소스에 대한 반복적인 요청이나 다운로드를 피하고 빠른 응답을 제공할 수 있게 해준다.
    • 이전에 받은 리소스를 다시 사용함으로써, 네트워크 사용량을 줄이고 성능을 향상시킨다.
    • 캐싱은 대규모 서비스에서 중요하며, UX 및 시스템 효율성을 높이는데 기여한다.
    5. 계층화(Layered System)
    • 호출과 응답이 서로 다른 계층을 가진다.
    • 계층을 분리함으로써 각 계층간 의존성을 최소화한다.
    6. 코드 온디맨드(Code On demand)
    • REST API는 일반적으로 정적 리소스를 제공하지만, 특정한 경우에는 응답에 실행 코드를 포함 할 수도 있다.

    URI 설계 원칙

    1. 슬래시(/)를 활용한 계층 관계 표현
    /users/123/orders
    위 예시는 사용자 123의 주문 목록에 접근하는 경로를 나타낸다.
    2. URI 마지막 문자로 슬래시 ( / )를 포함하지 않는다.
    /users/123/orders/
    위의 예시는 권장하지 않는 방식이다.
    3. 밑줄 ( _ ) 보다 하이픈( - )을 사용한다. 잘못된 예시부터 보겠다.
    /users/123/order_list/
    다음은 권장 하는 방식이다.
    /users/123/order-list/
    4. URI 경로는 소문자를 사용한다. 위의 예시들을 참고하자.
    5. 파일 확장자는 URI에 포함하지 않는다 잘못된 예시를 보자.
    url = "<http://sample.com/user-images/kim.jpg>"

    RESTful API는 뭐지?

    REST API의 설계 규칙을 잘 따라 설계된 API를 RESTful한 API라고 한다.
    참고자료1: https://aws.amazon.com/ko/what-is/api/ 참고자료2: https://www.ibm.com/kr-ko/topics/rest-apis
    Share article
    Contents
    API란 무엇인가?REST란 무엇인가?RESTful API는 뭐지?

    mulab

    RSS·Powered by Inblog