Etc

REST? RESTful?

천우산__ ㅣ 2023. 4. 20. 17:47

REST 는 Representational State Transfer 의 약자로, 웹 서비스를 설계하고 구현하는 데 사용하는 아키텍처 스타일이다.

 

REST의 핵심 개념 중 하나는 자원(Resource)으로, REST 아키텍처에서는 URI를 통해 자원을 식별하고

 

Http Method (GET, POST, PUT, DELETE)를 사용해 자원의 상태를 조작(조회, 등록, 수정, 삭제) 할 수 있다.

 

Http 프로토콜의 인프라를 그대로 사용하기 때문에, API 사용을 위한 별도의 인프라를 설계, 구축할 필요가 없으며

 

웹 사이트 빌드 언어 혹은 프레임워크에 구애 받지 않고, 유연한 설계가 가능하다는 장점이 있다.

 

하지만, 표준이 존재하지 않는다는 점과 일부 구형 브라우저에서는 특정 기능이 작동하지 않는다는 단점 또한 존재한다.

 

REST API란

 

REST 기반으로 API를 구현한 것으로, 몇 가지 설계 규칙이 있다.

 

1. URI 마지막 문자로 슬래시(/) 를 사용하지 않는 것.

 

2. 계층 관계는 슬래시(/)로 표현하는 것

ex. user/1 (user 라는 이름의 자원의 특정 고유 번호(1번) 를 의미)

 

3. URI는 명사만 사용하며, 소문자만을 사용하는 것

ex. /getUsername -> /username

 

4. 가독성 개선을 위한 문자를 추가한다면, 밑줄(_) 대신 하이픈(-) 을 사용하는 것

> 밑줄 처리되는 경우, 가독성을 해칠 수 있어, 하이픈 사용을 장려

 

5. 확장자명은 URI에 포함시키지 않는 것

 

위의 내용들을 반드시 지켜야만 하는 것은 아니지만,

 

상호 간 이해하기 쉬운 REST API를 만들기 위해 만들어진 규칙인 만큼 이를 지키는 편이

 

API에 대한 이해도 향상 및 협업 시 도움이 된다.

 

그리고, 위의 규칙들을 잘 따라 만들수록 'RESTful 하다' 고 한다.