1. RESTful API란
* 의미 : 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스
* 특징 : 안전하고 신뢰할 수 있으며 효율적인 소프트웨어 통신 표준을 따르므로 고객의 데이터 교환 등을 지원
1-1. API란
* 의미 : 애플리케이션 프로그래밍 인터페이스는 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의
=> 웹 API는 클라이언트와 웹 리소스 사이의 게이트웨이라고 생각할 수 있음 (메뉴판과 같은 역할을 한다고 비유하기도 함!!)
* 클라이언트 : 웹에서 정보에 엑세스하려는 사용자
* 리소스 : 다양한 어플리케이션이 클라이언트에게 제공하는 정보
1-2. RESTful API의 이점
* 확장성 : REST가 클라이언트-서버 상호 작용을 최적화하기 때문에 효율적으로 크기 조정 가능
* 유연성 : 완전한 클라이언트-서버 분리를 지원 => 각 부분이 독립적으로 발전할 수 있음
* 독립성 : 사용되는 기술과 독립적이라 API 설계에 영향을 주지 않고 다양한 프로그래밍 언어로 작성 가능
1-3. RESTful API의 작동 방식
1) 클라이언트가 서버에 요청
2) 서버가 클라이언트를 인증하고 해당 요청을 수행할 수 있는 권한이 클라이언트에 있는지 확인
3) 서버가 요청하고 내부적으로 처리
4) 서버가 클라이언트에 응답을 반환
1-4. RESTful API의 클라이언트 요청에 포함된 내용
* 고유 리소스 식별자 => URL
* 메서드 => get, post, put, delete
* 헤더 => 데이터, 파라미터
2. REST란
* 의미 : representaional state transfer의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미합니다
* 역할 정리
- HTTP URI를 통해 자원을 명시함
- HTTP Method 등을 통해 해당 자원에 대한 CRUD Operation을 적용함
2-1. CRUD란
*의미 : 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 create, read, update, delete를 묶어서 일컫는 말로 REST에서의 CRUD Operation 동작 예시는 아래와 같습니다
- Create : 데이터 생성 => POST
- Read : 데이터 조회 => GET
- Update : 데이터 수정 => PUT, PATCH
- Delete : 데이터 삭제 => DELETE
2-2. REST 아키텍처 스타일의 원칙
* 균일한 인터페이스
* 무상태 : 서버가 이전의 모든 요청과 독립적으로 모든 클라이언트 요펑을 완료하는 통신 방법
* 계층화 시스템
* 캐시 가능성 : 서버 응답 시간을 개선하기 위해 클라이언트 또는 중개자에 일부 응답을 저장하는 프로세스인 캐싱을 지원
* 온디맨드 코드 : 서버는 소프트웨어 프로그래밍 코드를 클라이언트에 전송하여 클라이언트 기능을 일시적으로 확장하거나 사용자 지정할 수 있음
Resources
https://aws.amazon.com/ko/what-is/restful-api/
느낀 점...
Restful api를 먼저 자세히 공부했어야 하는데, 이름만 들어보곤 get, post 이런 요청을 공부하고 있던 나...
나무를 보지 말고 산을 봅시다
특히 비전공자인 만큼 cs 관련 공부는 꾸준히 해야된다고 생각합니다 아자아자
'Learning Log > CS' 카테고리의 다른 글
[cs] JWT(Json Web Token) (0) | 2023.08.01 |
---|---|
[cs] 운영체제의 역할, PCB, 메모리 계층 (0) | 2023.07.31 |
[cs] 쿠키, 세션, 토큰이란 (0) | 2023.07.27 |
[cs] 프로세스와 스레드 (0) | 2023.07.27 |