# REST( Representational State Transfer )란?
- 클라이언트와 서버간 통신 방식
- URI와 HTTP를 이용한 통신 목적의 아키텍처의 스타일의 한 형태
- 자원(Resource)을 표현(Represent)하고, 해당 자원에 대한 상태(State)를 전송(Transfer)하는 방식
- 자원, 행위, 표현 세 가지 요소로 구성되며, 주로 HTTP 프로토콜을 기반으로 함
더보기
더보기
** 소프트웨어 아키텍처
- 소프트웨어 시스템이나 어플리케이션의 전체적인 디자인과 구조를 정의하는 체계적인 계획 또는 틀
- 다양한 컴포넌트나 모듈 간의 상호 작용, 시스템의 기능 및 특성, 데이터 흐름, 네트워크 구성 등을 고려하여 소프트웨어가 어떻게 구성되고 동작하는지에 대한 기본적인 지침을 제공
# REST의 구성요소
1. 자원 (Resource)
- 해당 소프트웨어가 관리하는 모든 것
- 웹에서는 각 리소스가 URI로 표현
2. 행위 (Method)
- HTTP 메서드를 이용하여 해당 자원을 어떻게 할 것인가
- 주요 메서드로 GET(조회), POST(생성), PUT(수정), DELETE(삭제) + PATCH(일부 수정)
3. 표현(Representation)
- 자원의 상태를 주고받을 때 사용되는 데이터 형식
- 일반적으로 JSON, XML형식 사용
# REST API란?
- REST 방식을 따라서 자원을 정의하고, 그 자원에 대한 행위를 메서드로 나타내어 간편하게 통신하는 것
# REST API 규칙 및 설계
/createUser
/getUsers
/getUser/yoojin
/deleteUser/yoojin
/updateUser/yoojin
- 이와 같이 URI 구성을 하게되면 명확한 규칙이 없어 타인이 이해하기 어려움
1. 최소한의 정보만을 표현하고 행위는 HTTP 메서드로 표현
2. 적절한 HTTP 상태 코드를 사용하여 요청에 대한 결과(성공, 실패, 리다이렉션 등)를 명확히 표현
3. 페이징과 같은 세부적인 정보는 쿼리 매개변수를 사용
- 대략적인 이 3가지의 규칙을 따라 설계를 하게되면 아래와 같음
GET /users?page=2&size=10 // 사용자 목록 조회(2페이지, 10개씩)
GET /users/yoojin // 사용자 yoojin 정보 조회
GET /users // 사용자 전체 목록 조회
POST /users // 사용자 정보 등록
DELETE /users/yoojin // 사용자 yoojin 정보 삭제
PUT /users/yoojin // 사용자 yoojin 정보 수정
# REST API 장점
- 간단하며, 새로운 기능을 추가하거나 기존 기능을 확장하기가 용이
- 다양한 플랫폼 간의 일관성 있는 인터페이스 제공
- 필요한 데이터만 주고받아 효율적인 통신이 가능
'Knowledge > 개발 지식' 카테고리의 다른 글
종단간 암호화란? (End-to-End Encryption) #E2EE (0) | 2024.09.13 |
---|