-
Rest API, RestfulInfra/Network 2020. 12. 7. 13:55
요즘들어 Rest라는 단어를 많이 접하는데 그 단어가 무엇을 뜻하는걸까요??
결론부터 말씀드리자면 Rest는 Representastional State Transfer의 약자로서
"자원(resource)의 표현(representation)에 의한 상태전달"
이라는 뜻을 가지고 있습니다.
조금 더 상세하게 설명드리자면
자원(resource)의 표현 ex) 게시글 => board, 채팅 => chat 상태전달 데이터가 요청되는 시점에서 자원의 상태를 전달하는 것 이런식으로 나눠서 해석하시면 됩니다.
위에는 이해하기 쉽게 간략하게 설명했지만
Rest가 가지는 구체적 의미는 다음과 같습니다.
HTTP URI(Uniform Resource Indentifier)를 통해 자원(Resource)을 명시하고 HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Opertation을 적용하는 것
**CRUD Operation
Create 생성(POST) Read 조회(GET) Update 수정(PUT) Delete 삭제(DELETE) HEAD header 정보 조회(HEAD) 위에서 언급했듯이 REST는 HTTP 프로토콜의 인프라를 그대로 사용한다는 점 때문에 별도의 인프라를 구축할 필요가 없고 HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하기 때문에 많이 사용되는 client-server 통신 방식 중 하나 입니다. 특히 서버와 클라이언트의 역할을 명확하게 분리할 수 있기 때문에 Back-End와 Front-End 개발자로 나누어 작업하기 용이하기 때문에 많은 기업에서 REST를 사용하고 있습니다.
다만, 사용할 수 있는 메소드가 POST, GET, PUT, DELETE 4가지 밖에 없다는 점과 구형 브라우저는 PUT과, DELETE를 사용하지 못하는 점이 단점이라고 할 수 있습니다.
그럼에도 REST를 써야 하는 이유는 요즘 추세인 애플리케이션 분리 및 통합과 다양한 클라이언트의 등장에 있습니다.
만약 내가 웹에서도 서비스하고 싶고 앱에서도 서비스 하고 싶은 프로그램이 있다면 REST를 이용할 경우 서버에서 로직을 수정하는 일이 거의 없기 때문에 안전하고 시간과 비용이 덜 들어가는 장점이 크기 때문입니다.
그럼 REST를 실제 프로젝트에 어떻게 써야 될까요??
REST API 설계 기본 규칙은 다음과 같습니다.
1. URI는 정보의 자원을 표현해야 한다
- resource는 동사보다는 명사를, 대문자보다는 소문자를 사용해야 한다.
- resource의 도큐먼트 이름으로는 단수 명사를 사용해야 한다.
- resource의 컬렉션 이름으로는 복수 명사를 사용해야 한다.
- resource의 스토어 이름으로는 복수 명사를 사용해야 한다.
References
restapi.example.com/houses/apartments
'Infra > Network' 카테고리의 다른 글
VirtualBox vs VMware 어떤 가상머신을 사용해야 할까? (0) 2020.08.21