[CS] Rest-API

·2023년 1월 27일
0

☁️ REST API가 뭔데?


REST-API란 Representational State Transfer 줄여서 REST는 클라이언트가 서버 데이터에 액세스하는 데 사용할 수 있는 GET/PUT/DELETE/POST 등의 함수 집합을 정의한다고 한다.

클라이언트와 서버는 HTTP를 사용하여 데이터를 교환하는데 이때 가장 큰 특징은 무상태라는 점이다. 무상태서버가 요청 간에 클라이언트 데이터를 저장하지 않음을 의미한다. 이는 곧 클라이언트와 서버 역할이 구분됨을 뜻하게 된다.

서버에 대한 클라이언트 요청은 웹 사이트를 방문하기 위해 브라우저에 입력하는 URL와 유사한데 서버의 응답은 웹 페이지의 일반적인 그래픽 렌더링이 없는 일반 데이터를 말한다.

👍 장점


  • 각 요청이 어떤 동작이나 정보를 위한 것인 요청 모습으로 추론 가능.
  • 계층형 구조.
    • REST 서버의 경우, 보안/로드 밸런싱/암호화 등을 추가할 수 있고 Proxy 및 게이트웨이 등의 중간매체를 사용가능
  • 클라이언트 서버 구조 간 의존성❌
    • REST 서버가 API를 제공하는 방식이기 때문에 클라이언트에서 처리하는 부분과 독립적으로 동작함으로써, 서로간의 의존성이 줄어들고 클라이언트와 서버를 최대한 독립적으로 개발할 수 있다.
  • 통합
    • API는 새로운 어플리케이션을 기존 소프트웨어 시스템과 통합하는 데 사용되기에 각 기능을 처음부터 작성할 필요 없어서 개발 속도가 빨라지며 기존 코드를 활용할 수 있다.
  • 혁신
    • 전체 코드를 다시 작성할 필요 없이 API 수준에서 변경하여 수행할 수 있기에 신속하게 대응하고 혁신적인 서비스의 신속한 배포를 지원하기 좋다.
  • 확장
    • 사용자의 요구 사항을 충족할 수 있는 고유한 기회를 API를 사용해 제공할 수 있다. 누구든 무료 혹은 유료 API를 사용하여 내부 데이터베이스에 유사한 액세스 권한을 부여할 수 있다.
  • 유지 관리의 용이성
    • API는 두 시스템 간의 게이트웨이 역할을 하기에 API가 영향을 받지 않도록 각 시스템을 내부적으로 변경해야 한다. 이렇게 하면 한 시스템의 향후 코드 변경이 다른 시스템에 영향을 미치지 않는다.

👎 단점


  • 표준 규약이 존재하지 않는다.

    • 그렇기에 관리하기 쉽지 않다.
  • 안티 패턴으로 설계될 가능성이 높다.
    - 표준 규약이 존재하지 않기에 관점이 다른 지식을 사용하여 설계할 수 있고, 이는 곧 안티 패턴이 될 가능성이 존재한다.

    ❓ 안티 패턴이란?
    REST API의 특징을 이해하지 못하고 REST 사상에 어긋나는 패턴을 적용한 API
    사례에 대한 예시는 아래 첨부 블로그를 통해 확인할 수 있다.
    REST API의 단점 3가지

  • RDBMS의 표현에 적합하지 않다.

    • REST API는리소스를 표현할 때 나열하기 용이한 형태인 JSON, XML 등을 사용하는데 이는 다양한 키가 존재하는 관계형 데이터베이스를 표현하기에 적합하지 않을 수 있다.
    • 자원을 구조와 함께 나타내는 형태의 구분자 URI를 사용하는 REST API의 입장에서 복잡한 관계 속에서 가져와야 할 데이터들이 많아지면 그만큼 EndPoint도 늘어나게 된다.

🔯 GraphQL과 차이


요청방식REST-APIGraphQL
조회GETQUERY
생성POSTMUTATION
삭제DELETEMUTATION
수정PUTMUTATION
profile
뉴비는 문서화를 습관화 해보자

0개의 댓글