ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • REST API
    개발 지식 2022. 8. 9. 16:26

    REST API 개발자를 꿈꾸며 강의를 듣거나 검색을 하다보면 자주 보이는 단어 중 하나이다.

     

    매번 보여서 익숙하기는 한데 누군가 그래서 REST API가 뭔데? 라고 물어 볼 때를 대비해서 공부해보고자 한다.

     

    REST?

    https://restfulapi.net/

     

    What is REST - REST API Tutorial

    REST is an acronym for REpresentational State Transfer. It is an architectural style for hypermedia systems and was first presented by Roy Fielding.

    restfulapi.net

    위 사이트에 들어가보면 매우 잘 설명이 돼 있지만 영어이기도 하고 내용이 방대해서 머리속에 항상 넣고 다니기는 힘들 것 같다.

    한글로  설명 된 사이트를 원한다면 여기에 들어가보자 

     

    그래서 REST 는 뭐냐?

    정말 간단하게 말해서 자원(Resource) + 행위(Verb) +표현(Representations) 라고 설명할 수 있다

     

    REST(Representational State Teansfer)은 말 그대로 상태를 주고 받는 소프트웨어 아키텍쳐 인데 어떤 정보를 받느냐 하면

    우리가 만드는 소프트웨어의 관리에 있는 리소스(ex. 이미지, 문서 등등)를 주고 받을 수 있다. 

    주고 받을 때는 리소스를 별도의 표현을 사용하는데 예를 들어 그림은 그림인데 강아지 그림이다 라고 하면 "DogImage" 같은 표현을 붙여 자원을 주고 받을 수 있다.  

     

    한마디로 자원(Resource) + 표현(Representation)

     

    Http url 을 통하여 자원을 정의 하고 Http Method(POST, GET, PUT, DELETE)을 이용하여 해당 자원을 CRUD 할 수 있다.

     

    따라서 자원(Resource) + 행위(Verb)(Http Method) +표현(Representations) 이라고 할 수 있다.

     

    또한 RSET 는 크게 6가지의 특징을 가지는데 

     

    1. Server - Client 

    • 서로의 역할을 구분하여 의존성을 떨어뜨린다.
    • 자원을 요청하는 Client , 자원을 제공하는 Sever로 나눈다.

    2. Stateless(무상태)

    • Http 프로토콜을 따르므로 REST 역시 무상태성을 갖는다.
    • Client의 ssesion, cookie를 server에서 신경쓰지 않으므로 구현이 단순해진다.

    3. Cacheable

    • 대량의 요청에 대한 효율적 처리를 위해 캐시가 요구된다
    • 캐시를 사용하여 응답시간을 높히고 트랜잭션이 발생하지 않기 때문에 성능, 이용시간적 측면을 향상 시킬 수 있다

    4. Layered System

    • Client 는 그저 Server의 호출만 담당한다.
    • Server는 여러계층으로 구현이 가능하다
    • 비지니스 로직 앞에 인증, 보안, 암호화등의 구조를 추가하는 유연함이 제공된다.
    • Proxy 등 네트워크 기반의 중간 매체를 사용할 수 있다.

    5. Code-On-Denand(주문형 코드)

     

    6. Uniform Interface

    • 기본적으로 Http 프로토콜을 따르기 때문에 범용성이 좋다
    • Http Mehod를 이용하기 때문에 표현에 제한적이다.

    위와 같은 특징을 가볍게 정리하면 다음과 같은 장단점이 나오게 된다.

     

    장점 단점
    1. 사용이 간편 
    2. client 와 sever 간의 명확한 역할 분리
    3. http 표준에 따르는 범용성 있는 사용처
    4. Rest api 사용으로 명확한 표현과 의도 파악에 쉬움
    1. 표준의 부재
    2. Method의 형태 제한
    3. web browser에 대한 제한 (구형 웹브라우저)

     

    이러한 REST를 이용해서 API를 구성한 것이 바로 

     

    REST API

    출처: https://velog.io/@neity16/NodeJS-REST-API

    API란 (Application Programming Interface)로 프로그램간 상호작용에 도움을 주고 서로의 정보교환을 가능하게 하는 것 이라고 정의한다.

     

    REST API는 API를 REST 기반으로 구성한 것을 이야기한다.

     

    REST API 는 설계 할 때 따라야하는 몇가지 규칙이 있는데 다음과 같다.

     

    1. URI는 동사보다는 명사를, 대문자보다는 소문자를 사용하여야 한다.

     

    2. 마지막에 슬래시 (/)를 포함하지 않는다.

     

    3. 언더바 대신 하이폰을 사용한다.

     

    4. 파일확장자는 URI에 포함하지 않는다.

     

    5. 행위를 포함하지 않는다.

     

    위와 같은 규칙을 지키고 REST를 잘 활용 했을 때  RESTful api 라고 말한다.

    (예를 들어 삭제하는 기능도 업데이트 하는 기능도 전부 POST로 처리 했을때는 REST API는 맞지만 RESTful 이라고는 하지 않는다.)

    '개발 지식' 카테고리의 다른 글

    [Java] int 와 Integer  (0) 2022.06.30

    댓글

Designed by Tistory.