REST API(Representational State Transfer Application Programming Interface)
웹 서비스 설계 아키텍처 중 하나로, 클라이언트와 서버 간의 상호 작용을 보다 단순하고 효율적으로 만들기 위해 설계되었습니다.
REST는 리소스를 중심으로 데이터와 기능을 구성하며, 각 리소스는 고유한 URL로 식별됩니다. RESTful한 웹 서비스는 HTTP 프로토콜을 사용하여 리소스에 접근하고 조작하는 방식을 따릅니다.
REST의 주요 원칙
1. 클라이언트-서버 구조 (Client-Server Architecture)
- 클라이언트와 서버는 서로 독립적이어야 하며, 클라이언트는 사용자 인터페이스를 관리하고 서버는 데이터 저장과 로직을 처리합니다. 이 구조는 시스템의 확장성을 높입니다.
2. 무상태성 (Statelessness)
- 각 요청은 독립적이며, 요청 간에 상태 정보를 저장하지 않습니다. 즉, 서버는 이전 요청의 문맥을 유지하지 않습니다. 모든 필요한 정보는 요청 자체에 포함되어야 합니다.
3. 캐시 가능성 (Cacheability)
- HTTP 응답은 명시적으로 캐시될 수 있어야 합니다. 이는 클라이언트가 서버로부터 동일한 응답을 반복해서 요청하지 않도록 하여 성능을 향상시킵니다.
4. 계층화 시스템 (Layered System)
- 클라이언트는 중간 서버를 통해 최종 서버에 접근할 수 있습니다. 이 계층화는 시스템의 보안, 로드 밸런싱, 캐싱 등의 장점을 제공합니다.
5. 인터페이스 일관성 (Uniform Interface)
- REST는 클라이언트와 서버 간의 상호 작용을 표준화된 방식으로 단순화합니다. 이는 시스템의 모듈화를 용이하게 합니다.
6. 요구 시 코드 (Code on Demand)
- 선택적으로 서버는 클라이언트에게 실행 가능한 코드를 보낼 수 있습니다. 예를 들어, 자바스크립트와 같은 스크립트를 보낼 수 있습니다. 이 원칙은 RESTful 시스템에서 필수는 아닙니다.
HTTP 메서드와 CRUD 연산 매핑
REST API는 주로 HTTP 프로토콜의 메서드를 활용하여 리소스를 조작하며, 각 메서드는 CRUD(생성, 읽기, 갱신, 삭제) 연산과 매핑됩니다.
- GET: 리소스 조회 (Read)
- POST: 리소스 생성 (Create)
- PUT: 리소스 전체 갱신 (Update)
- PATCH: 리소스 부분 갱신 (Partial Update)
- DELETE: 리소스 삭제 (Delete)
장점
1. 단순성과 명확성 : REST는 HTTP 프로토콜을 기반으로 하여 명확하고 직관적인 인터페이스를 제공합니다.
2. 확장성 : 무상태성과 계층화 시스템 덕분에 시스템을 확장하고 유지보수하기가 용이합니다.
3. 유연성 : 다양한 데이터 형식을 지원하며, 클라이언트와 서버가 독립적으로 발전할 수 있습니다.
4. 인터넷 표준 준수 : HTTP, URI, JSON, XML 등의 표준을 사용하므로 상호 운용성이 높습니다.
단점
1. 복잡한 트랜잭션 : REST는 무상태성이기 때문에 복잡한 트랜잭션을 구현하는 데 어려움이 있을 수 있습니다.
2. 과도한 데이터 전송 : 필요한 데이터만 전송하는 것이 어려울 수 있으며, 이는 성능에 영향을 줄 수 있습니다.
3. 표준의 부족 : REST는 엄격한 표준이 없기 때문에 API 설계에 있어 일관성을 유지하는 것이 어려울 수 있습니다.
'IT > 단어' 카테고리의 다른 글
CDN(Content Delivery Network)이란? (1) | 2024.10.08 |
---|---|
myBatis란? (0) | 2022.04.18 |
Hosts 파일 위치 및 수정 (0) | 2022.04.16 |
XML 이란? (0) | 2022.04.13 |
RSS란? (0) | 2022.04.12 |
댓글