RESTful API에 대해 알아보자.

응애 나 프론트애긔👶·2022년 9월 30일
0
post-custom-banner

RESTful API가 뭐야 ?


먼저 API에 대해서 간단하게 설명하자면

API는 Application Programming Interface의 약자이다.

대체로 클라이언트(프론트)와 서버(백)이 통신 할 떄 나오는 말로 클라이언트에서 요청을 보내면 서버에서 응답을 해주는 해주는 주고받는 메커니즘 정도로 생각하면 된다.


그렇다면 그중 RESTful API는 무엇인가 ?

RESTful API는 Representational State Transfer 의 줄인 말로 HTTP 메소드를 사용하여 클라이언트와 서버가 데이터를 주고 받게 된다.

결국 하나의 API 아키텍처 정도로 설명할 수 있겠다.


RESTful API를 왜 쓰는가 ?


먼저 REST의 구성을 살펴 보자면

  • 자원(Resource) - URI
  • 행위(Verb) - HTTP Method
  • 표현(Representations) - JSON, XML...

정도로 구성이 되어 있다.

GET /item/1 대충 이런 식으로 작성 할 수 있겠다.


그런데 왜 RESTful API를 사용 해야 하는 것인가 ?


HTTP Method로 사용 간단하게 사용하기도 편하고 다른 개발자가 URI을 확인 할 때 한번에 이해 할 수가 있게 된다.

GET /item/1
위 예시를 본다면 어떠한 데이터인지는 자세하게 모르지만 고유한 값(id)이 1item이라는 녀석을 GET하여 받아 온다는 것을 단번에 알 수 있다.

즉 뛰어난 가독성과 간단한 사용 방법이 가장 큰 장점이다.


그렇다고 단점이 없지는 않다.

아직까지 RESTful API의 표준이 정의되지 않았다.

그렇기에 공식화 된 API 디자인 가이드가 없어 개인마다 혹은 회사마다 표준이 다르기 때문에 만약 협업을 한다면 서로의 약속이 필요로 할 것이다.


심플한 HTTP Method


앞서 설명했듯이 RESTful API는 HTTP Method를 사용하는 방식이라고 했다.

그렇다면 이 Method들은 어떠한 것이 있는가 ?

  • GET: 서버의 데이터를 받아 올 수만 있다.
  • POST: 클라이언트에서 서버로 데이터를 전달(생성)한다.
  • PUT: 데이터를 업데이트하기 위해 사용한다.
  • PATCH: PUT과 같이 업데이트를 위해 사용하지만 데이터의 일부만 업데이트 할 때 사용한다.
  • DELETE: 데이터를 삭제할 때 사용된다.

일명 CRUD라고 하여 Creat(POST), Read(GET), Update(PUT), Delete(DELETE)의 역활을 수행하는 메소드들이다.


지켜야한다. RESTful의 규칙


앞서 RESTful의 표준이 없다고 설명을 했는데
이는 완전히 규칙이 없다는 것을 의미하진 않는다.

RESTful API URI의 몇 가지 규칙들을 살펴보자.

  1. 소문자를 사용한다.

    대문자가 에러를 발생하는 일이 종종 있다고 한다.
    그렇기 때문에 소문자를 사용한다.

    O : http://restful.com/item-list
    X : http://restful.com/itemList

  2. 언더바( _ ) 대신 하이픈( - )을 사용한다.

    언더바 문자가 가려지거나 가독성이 떨어지므로
    하이픈을 사용한다.

    O : http://restful.com/item-list
    X : http://restful.com/item_list

  3. URI의 끝에 슬래시( / )를 넣지 않는다.

    끝에 슬래시를 넣는 것은 의미가 없고 다른 사람들에
    혼란을 줄 수 있기 때문에 빼주도록 한다.

    O : http://restful.com/item-list
    X : http://restful.com/item-list/

  4. 슬래시는 계층 구조에서 사용한다.

    계층 관계일 때 슬래시를 사용하여 표시한다.

    O : http://restful.com/item-list/item/1

  5. HTTP Method는 URI에 넣지 않는다.

    URI에 Method를 적어 전달하지 않는다.

    O : http://restful.com/item-list
    X : http://restful.com/get-item-list

  6. 파일 확장자는 URI에 적지 않는다.

    jpg, json과 같은 파일 확장자는 URI에 적지 않는다.

    O : http://restful.com/item-list/item/1
    X : http://restful.com/item-list/item/1.jpg

  7. 전달하는 데이터는 명사로, 하지만 동작을 의미하면 동사를 허용할 수 있다.

    예를 들어 중고 물품의 설명을 작성하는 데이터라면 동사로 적어도 상관이 없다.

    O : http://restful.com/item-list/item/write
    X : http://restful.com/item-list/item/writing

  8. URI에 작성되는 영어를 복수형으로 작성해도 된다.

    URI의 형식을 복수형으로 사용하는 것 또한 실무에선 사용된다고 한다.

    아이템에 들어간 모든 재료들을 검색
    http://restful.com/item-list/item/1/ingredients
    재료들 중 철을 검색
    http://restful.com/item-list/item/1/ingredients/steel


느낀점 ✍


이미 RESTful을 사용 해보았지만

왜 채용 공고에서 RESTful 지식을 요구하는지 ?
또 다들 왜 RESTful을 사용하는지 ? 에 대한 궁금함이 생겼다.

그렇게 장단점을 찾아보고 사용법과 중요한 규칙들을 다시 한번 알게 해주는 시간이였다.

나중에 기회가 된다면 GraphQL도 사용을 해보고
RESTful과 비교하는 글도 올리도록 하겠다.


post-custom-banner

0개의 댓글