이 문서는 Google Cloud Translation API를 사용해 자동 번역되었습니다.
어떤 문서는 원문을 읽는게 나을 수도 있습니다.
소프트웨어 개발과 관련하여 가장 중요한 측면 중 하나는 애플리케이션 프로그래밍 인터페이스(API)의 디자인입니다. API는 소프트웨어 프로그램이 서로 통신하기 위해 따를 수 있는 일련의 규칙 및 사양입니다. 웹 응용 프로그램이 서로 및 서버와 상호 작용할 수 있는 방법을 정의하므로 웹 개발의 핵심 요소이기도 합니다.
가장 널리 사용되는 API 유형 중 하나는 RESTful API입니다. REST는 Representational State Transfer의 약자이며 정보가 사용자에게 표시되는 방식을 지정하는 방법입니다. RESTful API는 REST 원칙을 따르는 API입니다.
이 블로그 게시물에서는 REST가 무엇인지, 어떻게 작동하는지, RESTful API를 설계하는 방법에 대해 살펴보겠습니다.
REST는 네트워크 애플리케이션을 설계하기 위한 아키텍처 스타일입니다. 다음 원칙을 기반으로 합니다.
클라이언트-서버: 클라이언트-서버 아키텍처는 클라이언트 또는 사용자 인터페이스가 서버 또는 백엔드와 분리된 소프트웨어를 구성하는 방법입니다. 이러한 관심사 분리를 통해 서로 다른 팀이 소프트웨어의 서로 다른 부분에서 독립적으로 작업할 수 있습니다.
상태 비저장: 상태 비저장 시스템에서 클라이언트의 각 요청은 다른 요청과 독립적입니다. 서버는 클라이언트에 대한 상태 정보를 추적할 필요가 없습니다. 이를 통해 시스템을 더 간단하게 설계하고 쉽게 확장할 수 있습니다.
캐시 가능: 캐시 가능한 시스템에서 서버는 요청의 응답을 캐시에 저장할 수 있습니다. 이렇게 하면 서버가 매번 처음부터 응답을 생성할 필요가 없으므로 후속 요청을 더 빠르게 처리할 수 있습니다.
균일한 인터페이스: 일관된 인터페이스 원칙은 RESTful API 설계의 핵심입니다. 사용자가 API 사용 방법을 알 수 있도록 API가 일관된 구조를 가져야 한다고 명시되어 있습니다. 균일한 인터페이스는 또한 기존 리소스를 중단하지 않고 새 리소스를 추가할 수 있으므로 API를 더 쉽게 확장할 수 있습니다.
REST는 정보가 사용자에게 표시되는 방식을 지정하는 방법입니다. RESTful API에서 각 리소스는 URL로 식별됩니다. 예를 들어 블로그 API에서 리소스 "posts"의 URL은 "/posts"일 수 있습니다.
클라이언트가 URL에 요청하면 서버는 리소스 표현으로 응답합니다. 이 표현은 JSON, XML 또는 HTML 형식일 수 있습니다. 그런 다음 클라이언트는 이 표현을 사용하여 리소스를 조작할 수 있습니다.
예를 들어 클라이언트는 블로그의 모든 게시물 목록을 검색하기 위해 "/posts"에 GET 요청을 할 수 있습니다. 그런 다음 서버는 JSON, XML 또는 HTML 형식의 게시물 표현으로 응답합니다. 그런 다음 클라이언트는 이 표현을 사용하여 화면의 목록에 게시물을 표시할 수 있습니다.
RESTful API를 설계할 때 염두에 두어야 할 몇 가지 사항이 있습니다.
첫째, API는 사용하기 쉬워야 합니다. URL은 기억하기 쉬워야 하며 리소스는 잘 구성되어 있어야 합니다.
둘째, API는 확장하기 쉬워야 합니다. 새로운 리소스는 기존 리소스를 중단하지 않고 추가할 수 있어야 합니다.
셋째, API는 유지 관리가 쉬워야 합니다. 코드는 잘 문서화되어야 하며 이전 버전과 호환되는 방식으로 변경해야 합니다.
넷째, API는 안전해야 합니다. 데이터는 암호화되어야 하며 API에 대한 액세스는 승인된 사용자로 제한되어야 합니다.
마지막으로 API는 성능이 좋아야 합니다. 서버는 많은 수의 요청을 처리할 수 있어야 하며 응답 시간은 짧아야 합니다.
REST는 네트워크 애플리케이션 설계에 널리 사용되는 아키텍처 스타일입니다. 이는 클라이언트-서버, 상태 비저장, 캐시 가능 및 균일한 인터페이스의 원칙을 기반으로 합니다.
RESTful API를 설계할 때 API는 사용하기 쉽고, 확장하기 쉽고, 유지 관리하기 쉽고, 안전하고, 성능이 우수해야 한다는 점을 염두에 두는 것이 중요합니다.