REST API는 REST 제약 조건의 일부를 따르는 것이고, RESTful 은 보다 제약조건을 잘 따라서 개발한 경우이다.
1. 제약조건
- 클라이언트-서버 구조로서, 서버의 내부 변경점이 클라이언트에 영향을 미치지 않는다.
- 무상태성 으로서 이전 요청의 내용을 저장하지 않고, 각 요청은 개별로서 동작 할 수 있다.
- 그러나, 이것을 완벽히 지키지 않고 토큰, 세션 등으로 처리하는게 일반적이다.
- 캐시를 두어 서버의 부하를 줄일 수 있다.
- URI 규칙을 잘 따른다.
- API 주소에 Method 정보를 넣지 않는다. (예 : /getUser -> GET 요청, /user)
- URI는 명사 위주로 작성한다 (예 : users,items ....)
- 단계별로 설정한다. (예 : users/아이디 ....)
- 행위는 POST, GET 등 http 메소드로 표현하여 처리한다.
- 비즈니스 로직 상 계층 구조가 있다면, 단계별로 표현한다. (예 : /users/아이디/profiles/프로필)
- 같은 항목에 대해서는 일관되게 리턴해야 한다.
- 예 : /user 와 /users 의 각 user에 해당하는 항목은 동일해야 한다.
- API 주소에 Method 정보를 넣지 않는다. (예 : /getUser -> GET 요청, /user)
- 계층화
- 서버 앞에 로드벨런서, 게이트웨이 등이 붙어도, 서버 운영에 영향이 없다.
2. RESTful API 인가 평가 기준
- 모든 항목들을 다 지킬 수는 없고, 보통 Richardson 성숙도 레벨 2 정도 까지 반영하면 된다.
- level 0 : http 통신만 구현한 경우
- level 1 : URI를 구현하여 통신하는 경우
- level 2 : http 메서드, 상태코드, 헤더 등을 이용한다. 특히 URI 규칙을 잘 따라야 한다.
** URI, URL
- URI
- 더 큰 개념이다.
- 자원을 식별 하기 위한 문자열로서, 예를들어 /user 같이 정의하는것을 말한다.
- URL
- URI에 속한 일부 개념으로, 실제 주소를 의미한다.
- 예를들어 위에 명시한 /user 의 경우, 실제 주소는 http://localhost/user 가 될 수 도 있고, http://111,222.333.44/user 가 될 수도 있다.
'Backend > 공통' 카테고리의 다른 글
| Github Action을 통한 AWS CI/CD (2) (0) | 2025.11.11 |
|---|---|
| Github Action을 통한 AWS CI/CD (1) (0) | 2025.11.11 |
| EC2, RDS 등 컴퓨팅 설정 및 ECS 설명 (0) | 2025.11.07 |
| AWS S3 버킷 웹설정 (CloudFront, Route 53) (0) | 2024.11.13 |
| AWS 에 nginx 설치 (0) | 2024.10.25 |