안녕하세요
오늘은 데이터베이스에서 기본적으로 이해하고 있어야할 REST API 라는것을
공부해볼게요 !
먼저 REST 란 ?
REST는 Representational State Transfer 의 약자로 웹의 장점을 활용할 수 있는
아키택쳐 입니다.
좀 더 자세하게 보자면
HTTP URL을 통해서 Resource를 명시하고 HTTP Method(GET,POST,PUT,DELETE)를 통해
해당 Resource에 대한 CRUD operation을 적용하는 것입니다.
즉 REST는 HTTP Method를 통해 resource를 처리하도록 설계된 아키텍처를 뜻하는 것이죠.
'RESTful 이란 HTTP와 URI 기반으로 자원에 접근할 수 있도록 제공하는 어플리케이션 개발 인터페이스라고 할 수 있다'
⁕참고⁕
CRUE란 ?
대부분의 컴퓨터가 가지는 기본적인 데이터 처리 기능인
Create(생성)
Read(읽기)
Update(갱신)
Delete(삭제)를 묶어서 일컫는 말
이름 조작 SQL METHOD Create 생성 INSERT POST Read 읽기 SELECT GET Update 갱신 UPDATE PUT Delete 삭제 DELETE DELETE
조금 이해 되셨나요 ?
그렇다면 REST가 왜 필요할까요 ?
REST의 필요 이유
1. '애플리케이션 분리 및 통합
2. 다양한 클라이언트의 등장
- 최근의 서버 프로그램은 다양한 브라우저와
아이폰, 안드로이드 같은 모바일 디바이스에서도 통신을 할 수 있어야합니다.
이러한 멀티 플랫폼을 지원하기 위해 서비스 자원에 대한
아키텍처를 세우고 이용하는 방법을 모색한 결과, REST가 필요하다는걸 알게 된 것이죠.
REST의 구성
1. 자원(RESOURCE) - URL
-모든 자원에는 고유한 ID가 존재하고, 이 자원은 Server에 존재합니다.
-Client는 URL를 이용해서 자원을 지정하고 해당 자원의 상태(정보)에 대한 조작을 SERVER에 요청합니다.
2. 행위(Verb) - HTTP METHOD
- HTTP Protocol의 Method는 위에 설명과 같이
GET, POST, PUT, DELETE와 같은 Method를 제공합니다.
3.표현(Representations)
-Client가 자원의 상태(정보)에 대한 조작을 요청하면
서버는 이에 적절한 응답을 보내게됩니다.
REST에서는 json,xml,text,RSS등 여러 형태의 응답을 할 수 있습니다.
REST의 특징
1. Uniform(유니폼 인터페이스)
Uniform은 URL로 지정한 리소스에 대한 조작을 통일되고 한정적인
인터페이스로 수행하는 아키텍처 스타일 말합니다 !
HTTP 표준에만 따른다면, 어떤 기술이라던지 사용이 가능한 인터페이스
스타일 입니다.
2.Stateless(무상태성)
REST는 무상태성을 띄고 있습니다.
무상태성은 상태 정보를 저장하지않고 각 API서버는 들어오는
요청만을 들어오는 메세지로만 처리하면됩니다.
세션이나 컨텍스트 정보를 신경쓰지 않기 때문에 구현이 단순해집니다.
서비스 장도에서도 높아지겠죠 ?
.
3. Client -Server구조
REST 서버는 api를 제공합니다.
위에 설명한 것처럼 여러 디바이스 및 여러 클라이언트에서
하나의 REST API를 이용할 수 있습니다.
4.Cacheable(캐시가능)
캐시를 사용할 수 있습니다.
캐시를 사용하게 되면 응답시간 뿐만 아니라 REST 서버 트랜잭션이 발생하지
않기 때문에 전체 응답시간, 성능, 서버의 자원 사용률을 향상 시킬 수 있습니다.
HTTP프로토콜 표준에서 사용하는 LAST-Modified태그나 E-Tag를 이용하면 캐싱 구현이 가능합니다.
5. Self-descriptiveness (자체 표현 구조)
자체 표현 구조라는 것은 REST api만 보고도 쉽게 이해할 수 있다는 것입니다!
예를들어
https://learning-e.tistory.com/home/dog/torr
이것만 보더라도 torr가 dog이며 home 안에 속한것을 알수있습니다!
Torr는 저희집 강아지 이름입니다 ..ㅎ...
6.계층형 구조
REST 서버는 다충 계층으로 구성될 수 있으며, 보안, 로드 밸런싱, 암호화 계층 등을
추가해 구조상 유연성을 둘 수 있고, PROXY, 게이트웨이같은 네트워크 기반의 중간 매체를
사용할 수 있습니다.
REST API 란 ?
지금까지 공부한 REST 기반으로 API를 구현하는 것
이라고 생각하시면 편합니다.
최근 OpenAPI(누구나 사용할 수 있도록 공개된 API : 구글 맵, 공공 데이터 등),
마이크로 서비스(하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록
만든 아키텍처) 등을 제공하는 업체 대부분은 REST API를 제공합니다 !
REST API의 설계 규칙
1. 슬래시 구분자(/)는 계층관계를 나타낼때 사용!
https://learning-e.tistory.com/home/dog/torr
2. URL 마지막 문자로 슬래시를 포함하지 않습니다.
URL에 포함되는 모든 글자는 리소스의 유일한 식별자로 사용되어야 하며,
URL이 다르다는 것은 리소스가 다르다는 것이고, 역으로 리소스가 다르면 URL도 달라져야합니다.!
3. 하이픈(-)은 URL 가독성을 높이는데 사용한다.
4. 밑줄(_)은 URL에 사용하지 않는다.
5. URL 경로에는 소문자가 적접하다.
6. 파일 확장자에는 URL을 포함하지 않는다.
RESTful 이란? - 목적 ,
RESTful은 일반적으로 REST라는 아키텍처를 구현하는 웹 서비스를
나타내기 위해 사용되는 용어입니다.
-REST API를 제공하는 웹 서비스를 RESTful 하다고 할 수 있습니다.
RESTful은 REST를 REST답게 쓰기 위한 방법으로, 누군가가 공식적으로 발표한 것이 아니다.
즉, REST 원리를 따르는 시스템은 RESTful이란 용어로 지칭된다.
RESTful의 목적은 그럼 무엇인가 ?
1. 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것
2. RESTful한 API를 구현하는 근본적인 목적이 성능 향상에 있는 것이 아니라
일관적인 컨벤션을 통한 API의 이해도 및 호환성을 높이는 것이 주 동기이니,
성능이 중요한 상화에서는 굳이 RESTful한 API를 구현할 필요는 없습니다.
아래는 제가 자주 보는 유튜브 영상 중
REST에 대해 쉽게 설명해주시는 링크를 달아놨습니다. :)
글을 읽으면서 조금 이해가 안되신다면 한번 보시는 것도 추천드려요 !
오늘도 긴 글 읽어주셔서 정말 감사합니다.
도움이 됐다면 공감 눌러주세요 !!!!
https://www.youtube.com/watch?v=iOueE9AXDQQ
'프로그래밍 언어 및 IT 정보 > DataBase' 카테고리의 다른 글
[DB] PostgreSQL이란 ? 및 설치 방법 (4) | 2021.10.13 |
---|---|
[DataBase] DB, DBMS 란 ? (feat.PostgreSQL) (0) | 2021.10.12 |