1. API
1) API란?
(1) API 개념
- Application Programming Interface의 약자.
- 운영체제와 응용프로그램 사이의 통신에 사용되는 메시지 형식, 중간 전달자.
- API는 중간에서 양쪽 서버를 연결해주는 것.
- 프로그램이나 시스템이 서로 소통하도록 도와주는 매개체.
- 한 프로그램에서 다른 프로그램으로 데이터를 주고받기 위한 방법(코드).
> youtube 코딩애플 참조. 코드를 실행할 수 있도록 전달해주는 코드.
(2) API 역할
- 데이터 전달
- 추상화
- 표준화
(3) API 작동방식
- API는 보통 클라이언트-서버 구조에서 동작함.
> 클라이언트가 API를 호출하여 요청을 보내면, 서버는 요청을 처리 후 필요한 데이터를 응답 보냄.
> 클라이언트: 웹, 브라우저, 모바일 앱, 소프트웨어 / 서버: API를 제공하는 서비스(날씨정보API)
2) API 종류
(1) Web API (ex: REST API, GraphQL)
- 인터넷을 통해 데이터를 주고 받을 때 사용하는 API
- Google Maps API, Twitter API
(2) Libary API
- 특정 프로그래밍 언어의 라이브러리를 통해 제공되는 함수와 클래스
- Python으로 따지면 math, Numpy, Pandas
(3) Operating System API
- 운영체제가 제공하는 기능에 접근
- Windows의 파일 관리 API> Window API: 윈도우 운영체제 기능들 사용 가능.
(4) Database API
- 데이터베이스와 소통하기 위해 제공.
- SQL Query API
3) API가 가져야할 내용
(1) 요청방식 (method) get 요청
- 데이터를 달라고 할 것인지, 데이터를 보내라고 할 것인지.
(2) 무슨 자료를 요청할지 (endpoint)
- 어떤 데이터를 요청할 것인지.
(3) 자료요청에 필요한 추가 정보
- 아이디, 이름, 기타 db
(4) 웹의 경우 REST API 원칙에 따라 작성하면 좋음.
+ ) API 구성요소
endpoint: API가 데이터를 주고받는 URL.
Request: 클라이언트가 서버에 보내는 메시지. 주로 HTTP 메서드(GET,POST,PUT,DELETE)
Response: 서버가 클라이언트 요청에 대해 보내는 데이터. JSON, XML 형식
API key: API 사용권한 확인하기 위한 인증 수단
4) public private partner
(1) public API : 누구나 사용가능한 공개 API
(2) private API: 조직 내에서 쓰는 API
(3) partner API: 미리 정해진 인원만 사용 가능한 API
5) API 장점
- 확장성: 서로 다른 시스템이나 플랫폼 간 통합이 쉬움.
- 효율성: 복잡한 기능을 단순한 호출로 처리
- 재사용성: 한 번 개발된 API는 여러 앱에서 재사용 가능.
2. HTTP
1) HTTP란?
(1) HTTP 개념
- Hyper Text Transfer Protocol의 약자.
- 웹에서 데이터를 주고받는 데 사용되는 프로토콜.
- 웹 브라우저와 서버가 서로 통신하기 위해 약속한 규칙
- 주로 웹 페이지, 이미지, 동영상 등의 리소스를 전송할 때 사용됨.
- Request와 Response를 나타냄.
- 서버와 클라이언트와 공통의 약속인 메시지가 필요한데, 그 메시지를 HTTP 라고 함.
/*
HTTP를 이해하고자 할려면, 엣지에서 F12를 눌러서 확인해보아야 할 것이 있음.
F12를 눌러 [네트워크] 란에 가면 웹에서 어떠한 일이 일어나고 있는지 직접 확인할 수 있음.
*/
(2) HTTP 특징
① 클라이언트 - 서버모델: 클라이언트가 요청을 보내면, 서버가 이를 처리하고 응답.
ex: 브라우저가 서버에 웹 페이지를 요청 > 서버가 HTML 파일을 응답.
② 무상태성: HTTP는 한 번의 요청과 응답이 끝난 후, 클라이언트와 서버 사이에 상태 정보를 유지하지 않음.
- 이를 보완하기 위해 쿠키, 세션, 토큰 등이 사용.
③ 텍스트기반: 요청과 응답 메시지가 사람이 읽을 수 있는 텍스트 형식으로 작성.
'기타' 카테고리의 다른 글
[자격증] (1) | 2025.01.03 |
---|---|
[React] 기초 (1) | 2025.01.03 |