안녕하세요. 데브당에입니다.
지난달 Web 프로젝트를 진행하면서 REST API를 사용했습니다.
정확한 개념은 이해하진 못했지만, 사용해보니 구현과 유지보수에 있어 직관적이고 편리하다는 생각이 많이 들었습니다.
이번에 새로 진행할 Web 프로젝트에 앞서, REST API에 대해 좀더 알아보고 싶다는 생각이 들었습니다.
REST란?
REST는 웹의 장점을 최대한 활용할 수 있는 아키텍처로, Representational State Transfer의 약어입니다.
Representational State Transfer
즉, 하나의 URI는 하나의 고유한 리소스(resource)를 대표하도록 설계된다는 개념에서 파생되었으며
전송방식을 결합해서 원하는 작업을 지정하는 것을 말합니다.
REST의 필요성
- 기존 Service
- 요청에 대한 처리 후, 가동된 데이터를 특정 플랫폼에 적합한 형탱의 View로 만들어서 반환
- REST Service
- 데이터만 처리하거나 처리 후 반환될 데이터가 있으면 JSON이나 XML 형식으로 전달하기 때문에 View에 대해서 신경쓸 필요가 없다. 즉, 멀티플렛폼에 대한 지원이 가능하다.
- 이러한 이유로, OPEN API에서 많이 쓰임.
REST 구성
1. 자원(Resource) - URI
예시 : /devdange/user
2. 행위(Verb) - HTTP Method
Method | 의미 | SQL |
POST | Create | Insert |
GET | Read | Select |
PUT | Update | Update |
DELETE | Delete | Delete |
3. 표현(Representations)
Client와 Server가 데이터를 주고 받는 형태로, JSON, XML과 같은 언어로 표현합니다.
👉 잘 표현된 HTTP URI로 자원(Resouce)를 정의하고, HTTP Method로 행위(Verb)를 정의합니다.
REST 특징
- Uniform (유니폼 인터페이스)
- Stateless (무상태성)
- Cacheable (캐시 가능)
- Self-descriptiveness (자체 표현 구조)
- Client - Server 구조
- 계층형 구조
마무리
REST API에 대한 기본도 없이 구현에만 급급했던 지난날의 제자신을 반성하는 시간이었습니다..
역시 정확히 이해하고 개발하는 것과 코딩만 하는 것에는 큰 차이가 있는 것 같습니다.
오늘 정리한 내용을 바탕으로 새로 진행할 프로젝트에서는 정확한 이해를 바탕으로 REST API를 적용해보려고 합니다!
'Programming > Web' 카테고리의 다른 글
[ Web] SpringBoot AWS S3 적용하여 파일 업로드하기 (4) | 2022.02.25 |
---|---|
[Web] MVC 패턴, Model1, Model2 란? 구조와 장단점까지 알아보기 (0) | 2022.01.06 |