TODO
RESTful API CS 특강(9~10)
DB특강(14~)
git 강의 2주차
어떠한 두가지가 서로 연결되고 영향을 미칠 수 있는 장소/방법/상황
- 응용프로그램 간에 데이터를 주고 받는 방법
프로그램 혹은 시스템 간의 통신하는 창구, 즉 프로그램들이 서로 상호작용하는 것을 도와주는 매개체라 할 수 있다.- 웹 API
웹 API는 웹 애플리케이션 개발에서 다른 서비스에 요청을 보내고 응답을 받기 위해 정의된 명세를 일컫는다.
예를 들어 블로그 API를 이용하면, 블로그에 접속하지 않고도 다른 방법으로 글을 올릴 수 있다.
그 외에 우체국의 우편번호 API, 구글과 네이버의 지도 API 등 유용한 API들이 많으므로, 요즘은 홈페이지 구축이나 추가 개편 시 따로 추가로 개발하지 않고 이런 오픈 API를 가져와 사용하는 추세다.- 엔드포인트는 서비스를 사용가능하도록 하는 서비스에서 제공하는 커뮤니케이션 채널의 한쪽 끝.
즉 요청을 받아 응답을 제공하는 서비스를 사용할 수 있는 지점을 의미 한다.- API가 두 시스템(어플리케이션)이 상호작용(소통) 할 수 있게 하는 프로토콜의 총 집합이라면, ENDPOINT는 API가 서버에서 리소스에 접근할 수 있도록 가능하게 하는 URL
출처 - API 와 Endpoint ?
REpresentational State Transfer
자원을 이름(자원의 표현)으로 구분해 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미.
즉, 자원(resource)의 표현(representation)에 의한 상태 전달을 뜻함.
- 자원 : 해당 소프트웨어가 관리하는 모든 것 ( 문서, 그림, 데이터, 해당 소프트웨어 자체 등 )
- 표현 : 그 자원을 표현하기 위한 이름 ( DB의 학생 정보가 자원이면, 'students'를 자원의 표현으로 정함 )
- 상태 전달 : 데이터가 요청되는 시점에 자원의 상태를 전달. ( JSON 혹은 XML을 통해 데이터를 주고 받는 것이 일반적 )
REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에,
웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일.
REST는 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나.
1. 자원(Resource) - URI
2. 행위(Verb) - Method
GET | Read : 정보 요청, URI가 가진 정보를 검색하기 위해 서버에 요청한다. |
---|---|
POST | Create : 정보 입력, 클라이언트에서 서버로 전달하려는 정보를 보낸다. |
PUT | Update : 정보 업데이트, 주로 내용을 갱신하기 위해 사용한다. (데이터 전체를 바꿀 때) |
PATCH | Update : 정보 업데이트, 주로 내용을 갱신하기 위해 사용한다. (데이터 일부만 바꿀 때) |
DELETE | Delete : 정보 삭제, (안전성 문제로 대부분 서버에서 비활성화한다.) |
3. 표현 ( Representation of Resource )
기존의 REST API 는 설계규칙이 여러가지인데 그것을 일일이 구현하는 것이 힘들었음.
🔑 정보를 요청하는 쪽에서 원하는 형태로 정보를 가져오고 수정할 수 있는 Query Language
Over-Fetching
Under-Fetching
통신 : 요청(request)/응답(response)
클라이언트가 서버에 요청하고 서버는 응답.
FE/BE : 작성한 언어를 어디서 해석하는가?
일대일/다대다/일대다
'다'인애가 '일'인 애의 아이디를 가지고있는게 일반적