정의
컴퓨터 프로그램들이 인터넷을 통해 정보를 주고받을 때 사용하는 표현 방식
HTTP라는 프로토콜을 이용, Web(웹)에서 제공하는 모든 자원들을
하나하나 가리킬 수 있는 고유한 주소(URI)를 이용해서
HTTP Method를 통해 작업(CRUD)을 처리하는 방식
@GetMethod("/article/{num}")
public ResponseEntity<String> searchArticle(@RequestParam("num") Integer num){
}
예를들어, 스프링부트에서 이런 식으로 게시글번호를 통해 get방식으로 게시글을 조회하는 함수가 바로
restful하게 작성된 api라고 할 수 있다.
구성요소
자원(Resource)
모든 자원은 서버에 고유한 ID가 존재하며 URL형식으로 구별됨
클라이언트는 URL을 이용해서 자원을 지정하고 해당 자원의 상태에 대한 조작을 서버에 요청
행위(Verb)
HTTP프로토콜의 GET, POST, PUT, DELETE Mdthod를 사용
표현 (Representation of esource)
클라이언트의 자원조작요청에 대한 응답을 보냄
장점
확장성
RESTful API의 무상태 원칙, 캐싱 등을 통해 클라이언트-서버 상호 작용을 최적화하여 효율적인 크기 조정이 가능
무상태 : 서버는 클라이언트의 이전 요청을 계속 유지할 필요 없이 독립적으로 각 요청을 처리하는 것
캐싱 : 반복적인 요청에 대한 응답을 저장하여 성능을 개선하는 것
유연성
RESTful 웹 서비스는 완벽한 클라이언트-서버 분리를 지원
예를 들어 데이터베이스 계층 변경 시 애플리케이션 로직을 재작성하지 않고도 대처할 수 있음
독립성
다양한 프로그래밍 언어로 클라이언트 및 서버 애플리케이션을 개발할 수 있음
단점
표준의 부재
공식화 된 표준 API 디자인 가이드가 존재하지 않음
제한적인 메소드
사용할 수 있는 HTTP Method 형태가 4가지 밖에 없고,
구형 브라우저에서는 PUT, DELETE를 지원해주지 못하는 등의 문제가 있음
RESTful API 설계규칙
슬래시(/)
계층 관계를 나타낼 때 슬래시(/)를 사용
ex) http://localhost:8080/exam/make-article
하이픈(-) 사용
불가피하게 긴 URL경로를 작성하게 된다면 하이픈(-)으로 가독성을 높임
언더바(_)는 글꼴에 따라 가려질 경우 등을 고려해 사용하지 않음
소문자 권장
URL 경로작성 시 소문자만 사용하는 것이 적합
'개발 > 📖 CS' 카테고리의 다른 글
로드밸런서 개념정리(정의, 방법, 알고리즘 종류 ) (0) | 2025.01.06 |
---|