제이슨의 개발이야기

RestFul API 란 무엇인가? 본문

컴퓨터과학

RestFul API 란 무엇인가?

제이쓰은 2021. 3. 2. 16:17
728x90
반응형

출처 : https://medium.com/@dgifani/the-summary-of-restful-95a7859ca626

많은 회사들의 자격 요건을 보면 요구 하는 것이 여러가지 있습니다 그중에 하나인 Restful API란 무엇일까? 

 

Rest 의 정의는 Represnetational State Transfer의 약자로 

 

자원을 이름 혹은 표현 으로 구분하여 해당 자원의 상태를 주고 받는 것을 의미 합니다! 

 

이렇게 만 설명 한다면 처음 Rest를 공부하는 입장에서는 이게 무슨 말이지?  라는 생각이 들 수 밖에 없습니다 저도 마찬 가지였거든요

 

그래서 Restful API 란

 

클라이언트가 서버에 통신할때 해당하는(내가 원하는 기능 혹은 서비스) Url와 파라미터 를 보내면 서버는 자신의 정의 한 HTTP Method를 통해 찾고자 하는 데이터 를 클라이언트 측으로 보내주는 방식을 REST 방식이라 하며 이러한 방식 혹은 규칙을 잘 지켜서 설계된 API를 Restful API 라고 정의 한다

 

혹시 제 설명이 틀렸으면 댓글로 달아주시면 수정하겠습니다 ㅎㅎ


그래서 REST 구성은 

자원 -> Url

행위 -> HTTP Method

표현(Representation) ->리턴 값 

으로 구성 되어있습니다 예를 들면 

/users/{id} GET

/users/       PUT 등이 있습니다

 

REST 아키텍처에 적용되는 6가지 제한 조건

다음 제한 조건을 준수하는 한 개별 컴포넌트는 자유롭게 구현할 수 있다.

  • 인터페이스 일관성 : 일관적인 인터페이스로 분리되어야 한다
  • 무상태(Stateless): 각 요청 간 클라이언트의 콘텍스트가 서버에 저장되어서는 안 된다
  • 캐시 처리 가능(Cacheable): WWW에서와 같이 클라이언트는 응답을 캐싱할 수 있어야 한다.
    • 잘 관리되는 캐싱은 클라이언트-서버 간 상호작용을 부분적으로 또는 완전하게 제거하여 scalability와 성능을 향상시킨다.
  • 계층화(Layered System): 클라이언트는 보통 대상 서버에 직접 연결되었는지, 또는 중간 서버를 통해 연결되었는지를 알 수 없다. 중간 서버는 로드 밸런싱 기능이나 공유 캐시 기능을 제공함으로써 시스템 규모 확장성을 향상시키는 데 유용하다.
  • Code on demand (optional) - 자바 애플릿이나 자바스크립트의 제공을 통해 서버가 클라이언트가 실행시킬 수 있는 로직을 전송하여 기능을 확장시킬 수 있다.
  • 클라이언트/서버 구조 : 아키텍처를 단순화시키고 작은 단위로 분리(decouple)함으로써 클라이언트-서버의 각 파트가 독립적으로 개선될 수 있도록 해준다..

 위키백과 참고 ko.wikipedia.org/wiki/REST

 

REST

위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 대한민국의 힙합 음악가에 대해서는 R-EST 문서를 참조하십시오. REST(Representational State Transfer)는 월드 와이드 웹과 같은 분산 하

ko.wikipedia.org

REST의 장단점은 무엇일까?

 

장점 : 

1.HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구축 할 필요가 없다

2.HTTP 프로토콜의 표준을 최대한 활용하여 여러 추가적인 장점을 함께 가저갈 수 있게 해준다 

3. 서버와 클라이언트의 역할을 명확하게 분리할 수 있다

4.여러가지 서비스 디자인에서 생길 수 있는 문제를 최소화 한다 

 

단점 : 

1. 표준이 존재 하지 않는다

2. 사용할 수 있는 메소드가 4가지 밖에 없다

  ex) GET,POST,PUT, DELETE 

 

Rest 가 필요한 이유

1. 애플리케이션 분리 및 통합

2. 다양한 클라이언트의 등장(웹,모바일(안드로이드,iOS)등)

3. 최근의 서버 프로그램은 다양한 브라우저와 모바일 디바이스에서도 통신을 할 수 있어야 한다 

 

참조

gmlwjd9405.github.io/2018/09/21/rest-and-restful.html

 

[Network] REST란? REST API란? RESTful이란? - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

brainbackdoor.tistory.com/53

 

RESTful API란 ?

개발 공부를 시작하고 자주 접하고 그냥 지나친 개념 중에 하나이다. 면접 질문으로도 자주 나온다고 하고, 실제로 채용공고 필요 역량에도 REST 등 인터넷 기반 프로토콜/ 기술에 대한 이해를 요

brainbackdoor.tistory.com

 

728x90
반응형