공부에 앞서

웹 개발에서 REST API는 클라이언트와 서버 간 통신을 원활하게 하는 중요한 역할을 한다.
클라이언트(프론트엔드)와 서버(백엔드)는 서로 직접적으로 호출하기보다는, Application Programming Interface (API)라 불리는 중간자 역할의 인터페이스를 사용한다.

API는 클라이언트-서버 통신 간 중요한 역할을 하므로, 항상 잘 생각해서 모범사례의 API를 설계해야 한다. 그래야만 개발자들이 유지보수하기 쉽고, 사용하기 좋을 뿐만이 아니라, 사용하는 동안 문제를 일으키지 않는다.

RESTful API란?

RESTful API는 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스이다. RESTful API는 안전하고 신뢰할 수 있으며 효율적인 소프트웨어 통신 표준을 따르므로 이러한 정보 교환을 지원한다.
-> RESTful API란 REST한 방식으로 프로그램간 정보 교환 등의 상호작용을 가능하게 하는 것

그럼 REST란 무엇일까

Representational State Transfer(REST)는 API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처이다. REST 기반 아키텍처를 사용하여 대규모의 고성능 통신을 안정적으로 지원할 수 있다. 쉽게 구현하고 수정이 가능하여 모든 API 시스템을 파악하고 여러 플랫폼에서 사용이 가능하다.
-> 즉 REST란 HTTP를 잘 사용하기 위한 아키텍쳐 스타일이다.

REST 아키텍처 스타일의 원칙

  • 균일한 인터페이스 : 균일한 인터페이스는 모든 RESTful 웹 서비스 디자인의 기본이 된다.

  • 무상태 : 클라이언트는 리소스를 요청할 수 있다. 모든 요청은 무상태이거나 다른 요청과 분리된다. 이 조건은 서버가 매번 요청을 완전히 이해하고 이행할 수 있음을 의미한다.

  • 계층화 시스템 : 클라이언트 요청을 이행하기 위해 함께 작동하는 보안, 애플리케이션 및 비즈니스 로직과 같은 여러 계층으로 여러 서버에서 실행되도록 RESTful 웹 서비스를 설계할 수 있다.

  • 캐시 가능성 : RESTful 웹 서비스는 서버 응답 시간을 개선하기 위해 클라이언트 또는 중개자에 일부 응답을 저장하는 프로세스인 캐싱을 지원한다.

  • 온디맨드 코드 : REST 아키텍처 스타일에서 서버는 소프트웨어 프로그래밍 코드를 클라이언트에 전송하여 클라이언트 기능을 일시적으로 확장하거나 사용자 지정할 수 있다.

    RESTful API를 사용하는 이유

    RESTful API에는 다음과 같은 이점이 있다.

  • 확장성 : REST API를 구현하는 시스템은 REST가 클라이언트-서버 상호 작용을 최적화하기 때문에 효율적으로 크기 조정할 수 있다. 성능을 저하시키는 통신 병목 현상을 일으키지 않으면서 확장성을 지원한다.

  • 유연성 : RESTful 웹 서비스는 완전한 클라이언트-서버 분리를 지원한다. 각 부분이 독립적으로 발전할 수 있도록 다양한 서버 구성 요소를 단순화하고 분리한다. 이런식의 계층화하는 기능은 유연성을 더욱 향상시킨다. 예를 들어, 개발자는 애플리케이션 로직을 다시 작성하지 않고도 데이터베이스 계층을 변경할 수 있다.

  • 독립성 : REST API는 사용되는 기술과 독립적입니다. API 설계에 영향을 주지 않고 다양한 프로그래밍 언어로 클라이언트 및 서버 애플리케이션을 모두 작성할 수 있다. 또한 통신에 영향을 주지 않고 양쪽의 기본 기술을 변경할 수 있다.

0개의 댓글