이글을 보기전에 알아야 하는 사실!
API는 단순 웹에서만 사용하는것이 아닙니다.
Programming Interface 프로그래밍 인터페이스입니다.
프로그래밍을 하는곳이라면 어디서든 통용되는 말이며 우리가 말하는 흔히아는 API는 웹 API입니다.
API의 정의
Application Programming Interface :
- 애플리케이션이라는 단어는 고유한 기능을 가진 모든 소프트웨어를 나타냅니다
- 인터페이스는 두 애플리케이션 간의 서비스 계약이라고 할 수 있습니다.
- 이 계약은 요청과 응답을 사용하여 두 애플리케이션이 서로 통신하는 방법을 정의합니다.
- API 문서에는 개발자가 이러한 요청과 응답을 구성하는 방법에 대한 정보가 들어 있습니다.
웹 개발자의 관점에서 정리해봅시다.
클라이언트와 서버간의 요청과 응답을 통신하는 방법을 정의하며 요청과 응답을 구성하는 방법에 대한 정보가 들어 있는것!
UI(User Interface) 와 비교해봅시다.
UI는 우리가 웹, 앱을 사용할때 보이는것들을 얘기합니다.
일반 사용자가 배달어플을 통해 배달을 시킬때 C언어 파이썬 JS등으로 코딩을 하여서 주문하지 않습니다.
버튼을 클릭해서 사람의 언어로 정보를 입력하는 방식으로 소통을합니다.
API도 똑같습니다. 유저가 클라이언트로 보내준 정보를 백엔드와 통신하기위해 사용하는것이 바로 API 입니다.
이 노란 영역이 Beckend의 영역이며 이 노란 박스와 Webserver가 소통하는 수단이 바로 API 입니다.
API의 4가지 종류
SOAP API
- 단순 객체 접근 프로토콜을 사용합니다.
- 클라이언트와 서버는 XML을 사용하여 메시지를 교환합니다. 과거에 더 많이 사용되었으며 유연성이 떨어지는 API입니다.
RPC API
- 원격 프로시저 호출이라고 합니다.
- 클라이언트가 서버에서 함수나 프로시저를 완료하면 서버가 출력을 클라이언트로 다시 전송합니다.
Websocket API
- JSON 객체를 사용하여 데이터를 전달하는 또 다른 최신 웹 API 개발입니다.
- WebSocket API는 클라이언트 앱과 서버 간의 양방향 통신을 지원합니다.
- 서버가 연결된 클라이언트에 콜백 메시지를 전송할 수 있어 REST API보다 효율적입니다.
REST API
- 오늘날 웹에서 볼 수 있는 가장 많이 사용되고 유연한 API입니다.
- 클라이언트가 서버에 요청을 데이터로 전송합니다.
- 서버가 이 클라이언트 입력을 사용하여 내부 함수를 시작하고 출력 데이터를 다시 클라이언트에 반환합니다.
REST API란!?
REST는 Representational State Transfer의 줄임말입니다.
자원(resource)의 표현(representation) 에 의한 상태 전달한다는 의미도 있다고합니다.
- Representational : 표현
- State : 상태
- Transfer : 이동하다
REST는 클라이언트가 서버 데이터에 액세스하는 데 사용할 수 있는 GET, PUT, DELETE 등의 함수 집합을 정의합니다.
GET, PUT ,DELETE ?? 어디서 많이 보던것입니다. HTML메소드들입니다.
클라이언트와 서버는 HTTP를 사용하여 데이터를 교환합니다.
이 HTTP소통 방식을 기반으로 만들어진것이 RESTful API이며 그로인해 HTTP의 많은 특성들을 공유합니다.
그중가장 중요한것이 바로 Stateless 입니다. 서버는 클라이언트에서 요청된 정보들을 기억하지 않고 무상태를 유지합니다.
오늘날 웹의 API형태
JSON , XHR , Fetch() 등이 API의 형태 입니다.
JSON (JavaScript Object Notation)
'Python > Django' 카테고리의 다른 글
Project start(2) 프로젝트 기본셋팅 (0) | 2022.06.04 |
---|---|
Project start(1) 미니콘다 설치 및 사용하기 (0) | 2022.06.04 |
가상환경이란? (0) | 2022.06.04 |
Django MVT pattern & work flow (0) | 2022.06.02 |
프레임 워크란 무엇일까!? (0) | 2022.06.01 |