728x90
REST API(Representational State Transfer API)는 REST 아키텍처 스타일을 준수하는 웹 API로, 웹 애플리케이션이 서로 데이터를 주고받을 수 있도록 돕는 대표적인 방식입니다. REST API는 웹 프로토콜인 HTTP를 이용하며, 클라이언트-서버 구조로 데이터를 주고받습니다. REST는 자원을 URL로 식별하고, HTTP 메서드를 통해 CRUD 작업을 수행합니다. 다음은 REST API의 주요 개념과 동작 방식입니다.
1. REST API의 주요 원칙
REST API는 다음과 같은 아키텍처 원칙을 따릅니다.
- 무상태성(statelessness): 각 요청은 독립적이고, 서버는 클라이언트의 이전 요청 정보를 저장하지 않습니다. 따라서 요청마다 필요한 모든 정보를 포함하여 보내야 합니다.
- 클라이언트-서버 구조: 클라이언트와 서버는 독립적으로 동작합니다. 클라이언트는 사용자 인터페이스를 담당하고, 서버는 데이터 저장 및 비즈니스 로직 처리를 담당하여 역할을 분리합니다.
- 캐시 처리: REST API는 HTTP 캐싱 기능을 활용하여 클라이언트가 반복적으로 요청하는 데이터를 캐싱할 수 있습니다. 이를 통해 성능을 개선하고 서버의 부하를 줄입니다.
- 계층화된 시스템: 클라이언트는 직접 서버와 통신할 수도 있지만, 프록시나 로드 밸런서와 같은 중간 계층을 통과할 수도 있습니다.
2. REST API의 구성 요소
REST API는 자원(Resource), 자원의 표현(Representation), 그리고 메서드(Method)로 구성됩니다.
- 자원(Resource): 서버에서 관리되는 데이터로, 각 자원은 고유한 URI를 통해 식별됩니다. 예를 들어, https://api.example.com/users/123은 특정 사용자를 나타내는 자원의 URI입니다.
- 표현(Representation): 자원의 상태를 클라이언트에 전달할 때 사용되는 데이터 포맷입니다. 주로 JSON이나 XML이 사용되며, JSON이 가장 많이 사용됩니다.
- HTTP 메서드(Method): 자원에 대한 다양한 작업을 정의합니다. REST API는 다음과 같은 메서드를 통해 CRUD 작업을 수행합니다.
- GET: 자원의 조회. 서버에서 데이터를 가져옵니다.
- POST: 자원의 생성. 새로운 데이터를 서버에 추가합니다.
- PUT: 자원의 수정. 전체 자원을 업데이트합니다.
- PATCH: 자원의 부분 수정. 자원의 일부만 업데이트합니다.
- DELETE: 자원의 삭제.
3. REST API의 요청 구조
REST API 요청은 일반적으로 다음과 같은 구조를 가집니다.
HTTP 메서드
헤더: Content-Type: application/json
페이로드 (body): 요청에 따라 JSON, XML 등 형식으로 데이터 전송
- GET 요청 (조회)
- POST 요청 (생성)
{ "name": "Jane Doe", "email": "jane@example.com" }
- PUT 요청 (수정)
{ "name": "Jane Doe", "email": "jane@example.com" }
- DELETE 요청 (삭제)
4. REST API의 응답 구조
REST API의 응답은 보통 다음과 같은 정보들을 포함합니다.
- 상태 코드: 요청이 성공했는지, 실패했는지 상태를 알려줍니다.
- 200 OK: 요청 성공 (GET, PUT, DELETE 요청 시)
- 201 Created: 자원 생성 성공 (POST 요청 시)
- 400 Bad Request: 잘못된 요청 (클라이언트 오류)
- 404 Not Found: 자원을 찾을 수 없음
- 500 Internal Server Error: 서버 내부 오류
- 응답 본문: 요청된 자원의 정보가 JSON 또는 XML 형식으로 반환됩니다.
{
"id": 123,
"name": "Jane Doe",
"email": "jane@example.com"
}
5. REST API의 장점과 단점
- 장점:
- 구조가 간단하고 이해하기 쉬워서 광범위하게 사용됩니다.
- HTTP 표준을 준수하여 웹 환경에 최적화되어 있습니다.
- 캐시를 통해 성능 최적화가 가능하며 확장성이 좋습니다.
- 단점:
- 요청이 독립적이라서, 자주 요청하는 경우 네트워크 부하가 커질 수 있습니다.
- 자원 간 관계를 표현하는 데 제한적이므로 복잡한 쿼리에는 적합하지 않을 수 있습니다.
6. REST API의 활용 예시
- SNS API: 페이스북, 트위터 등에서 REST API를 제공하여, 사용자가 작성한 게시물이나 댓글을 가져오거나 새로 작성할 수 있게 합니다.
- 날씨 정보 API: REST API를 통해 현재 날씨나 예보 데이터를 제공합니다.
- 이커머스 API: 제품 검색, 주문, 결제 기능을 구현할 때 REST API가 사용됩니다.
728x90
'Error & 해결방법' 카테고리의 다른 글
Deadlock found when trying to get lock; try restarting transaction 오류 (2) | 2025.01.02 |
---|---|
csv 파일 인코딩 이슈 해결법 (0) | 2024.11.26 |
OAuth 2.0? (2) | 2024.10.22 |
org.springframework.web.client.HttpServerErrorException$BadGateway: 502 Bad Gateway 에러 원인 및 해결방법 (1) | 2024.10.11 |
뉴맨틀? (1) | 2024.09.12 |