min

RESTful api에 대해서... 본문

컴퓨터 과학

RESTful api에 대해서...

minprogramming 2023. 6. 15. 18:39

1. RESTful api를 사용하는 이유

1-1) RESTful api는 한 눈에 통신할 리소스를 확인할 수 있다.

1-2) RESTful api는 http에 기반한 통신 규약이기에 따로 인프라를 구축할 필요가 없다.

1-3) 클라이언트와 서버가 독립적으로 운영이 가능하다.

 

2. RESTful api가 사용된 예시

3. RESTful api의 정의와 역사

3-1) 분산된 시스템을 위한 아키텍처 스타일 or 자원의 표현을 가지고 상태를 전달하기 위한 통신 규약

3-2) http 개념을 소통하기 위해서 사용된 통신 규약 -> 결국 http와의 상호작용이 밖에 없음

4. RESTful api의 동작 원리

위에 RESTful api의 정의를 보면 "자원의 표현을 가지고 상태를 전달하기 위한 통신 규약"이라고 했다.

이를 뜯어보면 RESTful api의 동작 원리를 확인할 수 있다.

그러면 한번 RESTful api의 동작 원리를 살펴보도록 하겠다.

개발에서 말하는 자원이란 리소스 즉 (html,css,js)를 의미한다.

개발에서 말하는 표현이란 자원의 형태를 말하고 예시로는 text/html,image/gif등이 있다.

개발에서 말하는 상태란 http method로 GET/POST/PUT/DELETE등이 있다.

즉 이말을 합쳐보면 위의 말 그대로로 정리되는 것을 확인할 수 있을 것이다.

5. RESTful api의 장단점

장점 : 사람이 이해하기가 쉽다. 적용하는 시간이 짧다.

단점 : over fetching , under fetching

1. over fetching

restful api는 원하는 데이터를 커스텀마이징해서 가져올 수 없다.

즉 restful api는 원하는 데이터를 가져올려면 over fetch로 가져와서 그중에서 원하는 데이터만 골라서 가져와야 한다.

여기서는 크게 2가지의 문제점이 발생한다.

첫번째 : 클라이언트 입장에서 데이터를 손질하기가 어렵다.

두번째 : 서버에서 많은 데이터를 보내야 하기에 서버에 부담이 많이 간다.

 

2. under fetching

위에 예시처럼 restful api는 많이 가져오거나 덜 가져오거나 2가지 선택지 밖에 없다.

under fetching의 경우에는 원하는 데이터를 가져오기에는 데이터의 양이 너무 적다보니 클라이언트 입장에서

원하는 데이터를 가져오기가 힘들어지는 경우가 있다.

 

3. 해결책

이러한 문제를 해결하기 위해서 facebook은 Graphql이라는 기술을 만들었다.

4. Graphql

Graphql은 RESTful api의 단점을 보안하기 위해서 나온 api인 만큼 원하는 데이터를 커스텀마이징해서 가져오기 쉽다.

즉 Graphql의 경우 클라이언트가 원하는 내용을 선별해서 가져올 수 있다는 장점이 있지만 그 만큼의 단점들도 존재한다.

바로 개발자가 이를 구현하기가 힘들다는 점이다.

Graphql을 개발자가 구현할려면 내가 원하는 데이터 명세서도 있어야 하며 Graphql query language에 대한 해박한 지식도 있어야 한다.

따라서 개발자들은 RESTful api와 Graphql api 를 동시에 사용하여 각각의 장점들을 극대화하고 있다.