반응형
RESTful API
웹 서비스와 클라이언트가 효율적으로 통신할 수 있게 하는 아키텍처 스타일로 널리 사용되고 있음
API?
Application Programming Interface의 약자로, 소프트웨어나 시스템이 서로 상호작용하는 방식을 정의한 규칙과 프로토콜의 집합
간단히 말해, API는 한 프로그램이 다른 프로그램의 기능이나 데이터를 사용할 수 있도록 하는 '중개자' 역할
API를 사용하면 개발자는 복잡한 내부 작업을 이해하지 않고도, 다른 프로그램이나 서비스의 기능을 사용하거나 통합할 수 있음
예를 들어, 소셜 미디어 플랫폼의 API를 통해 해당 플랫폼에 게시하거나, 날씨 정보 서비스의 API를 사용해 애플리케이션에 날씨 데이터를 표시할 수 있음
이러한 방식으로 API는 다양한 소프트웨어 애플리케이션들이 원활하게 '대화'하며 기능을 확장할 수 있게 함
기본 원리
REST(Representational State Transfer) 아키텍처의 원칙
- 클라이언트-서버 아키텍처
이 구조는 사용자 인터페이스와 데이터 스토리지가 분리되어 서로의 발전에 영향을 주지 않도록 - 무상태성(Statelessness)
각 요청은 필요한 모든 정보를 포함해야 하며, 이전 요청에 대한 정보에 의존해서는 안됨 - 캐시 가능(Cacheable)
응답은 재사용 가능한 정보를 포함해야 하며, 이를 통해 효율성과 확장성을 높일 수 있음 - 계층화 시스템(Layered System)
클라이언트는 서버가 최종 수신자인지, 중개자인지 알 필요가 없음 - 코드 온 디맨드
서버가 클라이언트로 코드를 전송하여 기능을 임시적으로 확장할 수 있음 - 일관된 인터페이스
일관성 있는 인터페이스를 통해, 클라이언트와 서버의 독립적인 진화를 가능하게 함
메소드
- GET
서버에서 데이터를 검색 - POST
서버에 데이터를 생성 - PUT
서버의 데이터를 갱신 - DELETE
서버의 데이터를 삭제
장점
- 다양한 언어 및 플랫폼 지원
HTTP를 기반으로 하므로 거의 모든 프로그래밍 언어에서 사용할 수 있 - 유지보수의 용이성
일관된 인터페이스 덕분에 시스템 간의 상호작용이 단순화됨 - 확장성
클라이언트-서버 구조로 인해 시스템을 쉽게 확장할 수 있
단점
- 상태 관리의 복잡성
무상태성으로 인해 상태를 유지해야 하는 상황에서 관리가 복잡해질 수 있음 - 성능 문제
일부 상황에서는 불필요한 데이터를 전송하여 네트워크 지연을 야기할 수 있음
반응형