728x90
반응형
REST 아키텍처 스타일을 기반으로, HTTP 프로토콜을 이용하여 서버와 클라이언트 간에 데이터를 주고받기 위해 설계된 인터페이스
구성 요소
- 자원(Resource) : 서버에 존재하는 데이터를 의미하며, 각각 고유한 URL로 식별된다.
- 행위(HTTP Method) : 클라이언트가 자원에 대해 수행하려는 동작을 정의
- GET, POST, PUT, DELETE
- 표현(Representation) : 자원의 상태를 전달하는 형태로, 주로 JSON, XML 등의 포맷으로 표현
REST API의 기본 원칙
- Uniform Interface (일관된 인터페이스)
- URL, HTTP 메소드 사용 규칙이 일관되어야 함
- Stateless (무상태성)
- 서버는 각 요청 간에 클라이언트 상태를 저장하지 않습니다. (모두 요청은 독립적)
- Client-Server 구조
- 클라이언트와 서버는 역할을 명확히 구분합니다. (서버는 데이터, 클라이언트는 UI)
- Casheable (캐싱 가능성)
- 서버의 응답은 캐시될 수 있어야 합니다.
- Layered System (계층 구조)
- 클라이언트는 중간 서버(프록시 등)을 거칠 수 있으며 최종 서버를 몰라도 상관없음
REST API의 특징
- 장점 :
- 구조가 명확하고, 확장성/유지보수가 용이합니다. 클라이언트와 서버를 독립적으로 개발할 수 있음
- 단점 :
- 단순 CRUD 외 복잡한 데이터 조회나 작업에 적합하지 않은 경우가 있어, 이럴 때는 GraphQL 등 다른 방식이 사용되기도 함
REST API는 자원(URL)과 행위(HTTP 메소드)를 조합하여, HTTP를 통해 서버와 클라이언트가 일관된 방식으로 통신하는 인터페이스이다.
728x90
반응형
'IT 정보 > Spring' 카테고리의 다른 글
[Spring] 스프링에서 주기적 일정(Scheduler) 설정하고 실행하는 방법 (14) | 2025.04.16 |
---|---|
[Spring] Spring Bean의 조건부 활성화/비활성화 방법 5가지 (2) | 2025.04.16 |
[Spring] 스프링 AOP (Spring AOP)란 무엇인가? 프록시 기반 AOP, @AOP (4) | 2025.04.15 |
[Spring] @RestControllerAdvice & @ControllerAdvice (1) | 2024.12.12 |
[Spring] application.yml 설정 (1) | 2022.08.18 |