버그 잡이

[개발자 면접] RESTful API이란? 본문

카테고리 없음

[개발자 면접] RESTful API이란?

버그잡이 2020. 5. 21. 11:47

1. RESTful API

 

위키 백과에 따르면 

 

월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어의 한 형식으로 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반에 대한 패턴

 

*API

 : 데이터와 기능의 집합을 제공하여 컴퓨터 프로그램간 상호작용을 촉진하며, 서로 정보를 교환가능하도록 하는 것

 

 

아~ REST한 방식으로 프로그램간 정보 교환 등의 상호작용을 가능하게 하는 것이 RESTful API구나~

 

그렇다면 REST가 뭔지 REST라는 단어에 집중해서 다시 살펴보겠습니다.

 

 

 

2. REST(Representational State Transfer)

 

 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것.

 

(문장이 참 모호합니다. 끊어서 살펴보겠습니다.)

 

 

'자원이 뭐지?'

문서, 그림, 데이터 등 소프트웨어가 관리하는 모든 것

 

 

'자원을 이름으로 구분하여'

위와 같은 자원에 이름을 부여하여 접근하겠다는 것입니다.

 

예를 들어, DB의 학생 정보 데이터(자원)이 있고 이 자원의 이름은 student(자원의 이름)입니다.

student라는 자원의 이름을 통해서 데이터의 상태를 받을 수 있고 반대로 변경할 수도 있습니다.

 

이는 URL을 통해서 지정할 수 있습니다. ex) /school/:student

 

 

 

정리하면, 

 HTTP URL을 통해 자원을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것입니다.

 

 

 

 

3. 이런 RESTful api가 왜 필요하냐?

 

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

이러한 통신을 가능하게 해주는 것이 RESTful API 입니다.

 

 

 

 

4. 장/단점

 

*장점

 - 멀티플랫폼 지원이 용이합니다.

 - 기존 웹 인프라(HTTP)를 그대로 사용할 수 있습니다.

 

*단점

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

  - HTTP 통신 모델에 대해서만 지원합니다.

 

 

 

 

 

정리

 

1. RESTful API는 REST를 기반으로 서비스 API를 구현한 것.

 

2. 자원으로 이름을 구분하고 해당 자원의 상태를 주고 받는 패턴의 서비스 API.

 

3. 구체적으로 HTTP URL로 자원을 명시하고 HTTP Method로 자원에 대한 operation을 적용하는 API 서비스입니다.

 

 

 

 

 

 

*참고 자료

https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Development_common_sense

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

 

반응형
Comments