[개념정리] RESTful API는 무엇인가?

seovee·2023년 8월 2일
0

🗂️ 개념정리

목록 보기
4/9
post-thumbnail

프론트엔드 공부를 하면서 API 관련해 이해가 필요함이 느껴졌다.
그래서 개념을 정리했다.

✔ RESTful API

✓ RESTful API이란 REST란 형식을 따르는 API 시스템 을 의미
✓ 과거 SOAP이라는 복잡한 형식을 대체한 것
✓ Representational State Transfer(REST)는 API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처

API 개발자는 여러 아키텍처를 사용하여 API를 설계할 수 있는데, REST (아키텍처) 스타일을 따르는 API를 RESTful API라고 한다. 단, REST를 사용했다 하여 모두가 RESTful 한 것은 아니고, REST API의 설계 규칙(아키텍처) 을 올바르게 지킨 시스템을 RESTful하다고 말할 수 있다.


✔ REST의 특징

가장 큰 특징은 RESTful하게 짜여진 요청은 주소만 보고도 뭘 하는 요청인지 파악 가능한 형식!

AWS - RESTful API란 무엇입니까? 참고
혼잣말 하는 개발자님 블로그 참고

균일한 인터페이스

  • 일관적인 인터페이스로 분리되어야 한다.

무상태 stateless

  • 각 요청간 클라이언트의 상태 정보를 서버에 저장하지 않는다.

계층화 시스템

  • 클라이언트는 대상 서버에 직접 연결되어있는지, Proxy를 통해서 연결되었는지 알 수 없다.

캐시 가능성

  • 클라이언트는 응답을 캐싱할수 있어아한다. 캐시를 통해 대량의 요청을 효율적으로 처리한다.

온디맨드 코드

  • 자바 애플릿이나 자바스크립트의 제공을 통해 서버가 클라이언트를 실행시킬 수 있는 로직을 전송하여 기능을 확장시킬수 있다.

클라이언트/서버 구조

  • 아키텍처를 단순화 시키고 작은 단위로 분리함으로써 클라이언트 서버의 각 파트가 독립적으로 구분하고 서로간의 의존성을 줄인다.

✔ RESTful API 사용 이점

확장성

  • REST가 클라이언트-서버 상호 작용을 최적화하기 때문에 효율적으로 크기 조정할 수 있다.
  • 캐싱을 잘 관리해 통신 병목현상을 일으키지 않으면서 확장성을 지원한다.

유연성

  • 완전한 클라이언트-서버 분리를 지원해 각 부분을 독립적으로 발전, 다양한 서버구성 요소를 단순화 한다.
  • 서버와 클라이언트를 따로 관리하므로 유연성을 향상시킨다.

독립성

  • API 설계에 영향을 주지 않고 다양한 프로그램밍 언어로 작성 가능하다.
  • 통신에 영향을 주지 않고 기본 기술을 변경할 수 있다.

✔ RESTful API의 URI 규칙

API가 RESTful로 간주되려면 다음 기준을 따라야 한다.

  1. 소문자를 사용
  2. 언더바(_) 대신 하이픈(-)을 사용
  3. 마지막에 슬래시(/)를 포함 ❌
  4. 행위를 포함 ❌
  5. 파일 확장자는 URL에 포함 ❌
  6. 전달하고자 하는 명사를 사용하되, 컨트롤 자원을 의미하는 경우 예외적으로 동사를 사용
  7. URI에 작성되는 영어를 복수형으로 작성

RESTful API 메소드

기본적으로 RESTful API라 하면 사진처럼 4~5가지 Http메소드를 사용한다.

GET

  • 데이터를 Read, 조회하는데 사용

POST

  • Create, 새로운 정보를 추가하는데 사용

PUT

  • 정석대로면, 정보를 통째로 갈아끼울 때 사용

PATCH

  • 정석대로면, 정보 중 일부를 특정방식으로 변경할 때 사용

DELETE

  • 데이터를 삭제할 때 사용

결론

REST API란!

HTTP 요청을 보낼 때 어떤 URI에 어떤 메소드를 사용할지 추가적으로 기타사항 등을 개발자 사이에 널리 지켜지는 약속 😎


✔ 참고 / 용어정리

📌 AWS - RESTful API란 무엇입니까?
📌 IBM - REST API란?

* API : 클라이언트와 웹 리소스 사이의 "게이트웨이"라 생각하면 된다.
* REST API, RESTful API 둘다 같은 의미이다.
* 아키텍쳐 : 서비스 동작원리, 원칙
* URI : 자원을 구조와 함께 나타내는 구분자
profile
낭만이 빠지면 섭하지

2개의 댓글

comment-user-thumbnail
2023년 8월 2일

정리가 잘 된 글이네요. 도움이 됐습니다.

1개의 답글