API(Application Programming Interface) 란?
- 애플리케이션 간의 상호작용을 가능하게 하는 규격 또는 프로토콜
- 쉽게 다른 소프트웨어 간의 정보 교환, 상호작용을 도와주는 연결고리
주요 역할 : 상호작용, 데이터 교환, 코드 재사용
1. 상호작용
- 서로 다른 시스템, 애플리케이션, 라이브러리 간의 상호작용을 가능하게 함
2. 데이터 교환
- API를 통해 서로 다른 시스템 간의 데이터를 교환할 수 있게 함
3. 코드 재사용
- API를 사용하여 이미 개발된 기능을 사용할 수 있음 > 개발 시간 감소와 효율 증가
API의 유형
- 웹 API
- 라이브러리/프레임워크 API
1. 웹 API
- HTTP를 통해 통신
- 보통 웹서버와 클라이언트 간의 데이터 교환을 위해 사용
- 대부분의 웹 API는 REST , SOAP같은 프로토콜을 따름 > 웹 서비스의 기능사용
1) REST(REpresentational State Transfer) 번역하면 대표 상태 이전?
- 웹의 기본 아키텍쳐를 따르는 프로토콜
a. 아키텍쳐 : 시스템이나 소프트웨어의 전체적인 구조나 구성 요소 , 이들간의 관계를 설명하는 (청사진,설계도)
- 쉽게 : 전반적인 구조와 구성 요소
- ex) MVC , Microservices, Layered, Event-driven 등
b. 프로토콜 : 컴퓨터나 네트워크 장치가 서로 통신하기 위한 표준규약
- 쉽게 : 시스템간의 통신 방식을 규정하는 규약
- 데이터의 형식, 전송 속도, 오류 검출 방법 등 통신에 필요한 규칙을 정의
- ex) HTTP , FTP , TCP , IP 등
- HTTP 메서드를 사용하여 CRUD 연산을 표현
- 간결하고 직관적인 구조
- stateless 프로토콜이다. -> 상태를 유지하지 않음( 각 요청이 독립적으로 작용, 전 요청이 다음 요청에 연결되지 않음. )
-> 서버가 클라이언트의 정보를 저장하거나, 관리하지 않아 서버의 부하가 적음
- 대표적인 stateless 프로토콜 : HTTP -> 많은 사용자, 동시 접속 가능
2) SOAP(Simple Object Access Protocol) 해석하면 단순 객체 엑세스 프로토콜
- XML기반의 메세지 프로토콜, 웹 서비스 간의 통신을 위해 설계됨
- XML(Extensible Markup Language) : 데이터를 저장하고 전송하기 위해 설계된 마크업 언어
-> HTML과 유사한 문법
-> 다른점은 HTML은 웹페이지 디자인이 목적이고 XML은 데이터를 구조화하고 설명하는데 초점
- HTTP , SMTP , FTP 등 다양한 프로토콜에서 동작할 수 있음
- HTTP ( Hypertext Transfer Protocol ) : 웹 브라우저와 웹 서버 간에 정보를 주고 받는데 사용되는 프로토콜
: HTML, CSS, JavaScript 파일이나 이미지 , 동영상등의 미디어 파일을 전송하는데 사용
- SMTP ( File Transfer Protocol ) : 이메일 전송 프로토콜 이하 생략
- FTP (File Transfer Protocol ) : 컴퓨터 간에 파일 전송 프로토콜, 업로드 다운로드 등 대용량의 파일을 안정적으로 전송하는데 적합
- 이를 통해 HTTP보다 복잡하고 규모가 큰 시스템에 대한 통신, 보안 요구사항이 높은 서비스에 적합
'깡깡이 벗어나기' 카테고리의 다른 글
API 2. 라이브러리/프레임워크 API (1) | 2024.01.28 |
---|
댓글