상세 컨텐츠

본문 제목

[CS공부]REST API란?

CS 공부

by 비굴이 2023. 3. 28. 12:19

본문

REST API는 REpresentational State Transfer API의 줄임말로 
굳이 번역을 하자면 '표현하는 상태를 전달하는 API' 정도로 번역할 수 있을 것 같습니다.

서버와 클라이언트 사이의 통신을 위한 아키텍쳐 중에 하나인데,
자원을 이름지어 표현(representational)하여 자원의 상태(state). 즉, 정보를 주고 받는 것을 뜻합니다.

HTTP 프로토콜을 따르기 때문에 HTTP URI를 통해 자원을 명시합니다.
그리고 HTTP Method(GET, POST, PUT, PATCH, DELETE)를 통해 CRUD를 적용합니다.

 

장점

 

● HTTP 프로토콜을 따르기 때문에 REST API를 위한 별도의 인프라를 구축할 필요가 없습니다.
● HTTP 프로토콜만 따르면 어떤 플랫폼에서도 사용 가능합니다.
● 서버와 클라이언트를 명확하게 구분하기 때문에 서버와 클라이언트를 독립적으로 만들 수 있어 협업에 유리합니다.

 

단점

 

● 표준이 없기 때문에 개발 초기 단계에서 자체적으로 규칙을 만들어야 한다는 문제가 있습니다.

● 암호화된 데이터 전송을 위해서는 추가적으로 보안 기능이 필요합니다.

● URL로 API가 관리 되기 때문에 추가 및 변경 시에 충돌 문제가 발생할 수 있습니다.

 

 

사용이유

 

소프트웨어 아키텍처에는 REST API뿐 아니라 SOAP, GraphQL, Serverless 등이 있습니다.
Serverless는 서버 없이 클라우드 서비스 기능을 사용하기 때문에 한정적인 환경에서만 사용 가능합니다.

나머지 아키텍쳐 중에서 REST API는 비교적 복잡하지 않은 구조이기 때문에 

배우고 적용하는 데에 많은 시간을 요구하지 않는 장점이 있습니다.


비교적 최근 페이스북에서 만든 GraphQL의 경우 쿼리 언어로 클라이언트에서 제어 가능한 아키텍처 입니다.
필요한  데이터만 요청할 수 있다는 장점을 가지고 있지만 ,

현재 대부분의 API 서비스가 REST API를 따르고 있기 때문에 정보 및 오류 해결 방안을 찾는 데에 유리한 이점이 있습니다.

 

관련글 더보기