Developer N
[API] API 란? 본문
728x90
API(Application Promgramming Interface) 란?
- 정의 및 프로토콜 집합을 사용하여 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘
- API의 맥락에서 '애플리케이션'이라는 단어는 고유한 기능을 가진 모든 소프트웨어를 의미
- '인터페이스'는 두 애플리케이션 간의 서비스 계약을 의미하며, 이 계약은 요청과 응답을 사용하여 두 애플리케이션이 서로 통신하는 방법을 정의함
- API 문서에는 개발자가 요청과 응답을 구성하는 방법에 대한 정보가 있음
API 작동 방식
API 작동 방식 | 설명 |
SOAP API | 단순 객체 접근 프로토콜 사용 클라이언트 - 서버간 XML을 사용하여 메시지 교환 과거에 많이 사용되었고 유연성이 떨어지는 API |
RPC API | 원격 프로시저 호출 클라이언트가 서버에서 함수나 프로시저를 완료하면 서버가 출력을 클라이언트로 다시 전송 |
Websocket API | JSON 객체를 사용하여 데이터를 전달하는 최신 웹 API 클라이언트 앱 - 서버간 양방향 통신 지원 서버가 연결된 클라이언트에 콜백 메시지를 전송할 수 있어 REST API보다 효율적 |
REST API | 현재 웹에서 가장 많이 사용되고 유연한 API 클라이언트가 서버에 요청을 데이터로 전송 → 서버가 클라이언트 입력을 사용하여 내부 함수 시작 후 출력데이터를 다시 클라이언트에 반환 |
REST API 란?
- Repressentational State Transfer의 줄임말
- REST는 클라이언트가 서버 데이터에 엑세스하는 데 사용할 수 있는 GET, PUT, DELETE 등의 함수 집합을 정의
- 클라이언트 - 서버는 HTTP를 사용하여 데이터 교환
- 주된 특징은 무상태
- 무상태란 서버가 요청 간에 클라이언트 데이터를 저장하지 않음을 의미
- 서버에 대한 클라이언트 요청은 웹 사이트를 방문하기 위한 URL가 유사
- 서버의 응답은 웹 페이지의 일반적인 그래픽 렌더링이 없는 일반 데이터
웹 API 란?
- 웹 서버와 웹 브라우저 간의 애플리케이션 처리 인터페이스
- 모든 웹 서비스는 API이지만, 모든 API가 웹 서비스는 아님
- REST API는 표준 아키텍처 스타일을 사용하는 특수한 유형의 웹 API
API 통합이란?
- 클라이언트 - 서버간 데이터를 자동 업데이트하는 소프트웨어 구성 요소
- 기업은 API 통합을 사용하여 많은 시스템 함수를 효율적으로 자동화 가능
- 예시
- 휴대폰 이미지 갤러리에서 클라우드로 데이터 자동 동기화
- 다른 시간대 여행 시 노트북에서 시간 및 날짜 자동 동기화
API의 다른 유형
- 아키텍처와 사용 범위에 따라 분류
- 사용 범위에 따른 분류
API 유형 | 설명 |
프라이빗 API | 기업 내부에 있으며 비즈니스 내에서 시스템과 데이터를 연결하는 데만 사용 |
퍼블릭 API | 일반에 공개되며 누구나 사용 가능 API와 관련된 권한 부여와 비용이 있을 수도 없을 수도 있음 |
파트너 API | B2B 파트너십을 지원하기 위해 권한이 부여된 외부 개발자만 엑세스 가능 |
복합 API | 두개 이상의 서로 다른 API를 결합하여 복잡한 시스템 요구 사항이나 동작을 처리 |
API의 엔드 포인트
- API 통신 시스템의 최종 접점
- 서버 URL, 서비스 및 시스템 간에 정보가 송수신되는 기타 특정 디지털 위치가 포함됨
- 기업에서 API 엔드 포인트가 중요한 이유
- 보안 : API 엔드 포인트는 시스템을 공격에 취약하게 만든다. 따라서 API 모니터링은 오용을 방지하는 데 중요
- 성능 : 특히 트래픽이 많은 엔드포인트는 병목 현상을 일으키고 시스템 성능에 영향을 줄 수 있다.
API 생성 방법 5단계
- API 계획
- 다양한 사용 사례를 미리 생각하고 API가 현재 API 개발 표준을 준수하는지 확인
- API 빌드
- API 디자이너는 상용 코드를 사용하여 API 프로토타입 생성. 프로토타입이 테스트 되면 개발자는 내부 사양에 맞게 사용자 지정 가능
- API 테스트
- 소프트웨어 테스트와 동일하며 버그 및 결함을 방지하기 위해 수행
- 성능 테스트를 위해 API 엔드 포인트에 요청을 여러번 함
- 비즈니스 로직 및 기능적 정확성을 확인하기 위한 단위 테스트 작성
- 시스템 공격을 시뮬레이션하여 보안 테스트
- API 문서화
- API 문서는 사용 편의성을 높이는 가이드 역할
- 간단하고 읽기 쉬운 영어로 설명 작성
- 코드 샘플 사용하여 기능 설명
- 문서를 정확하고 최신 상태로 유지
- 초심자를 위한 작문 스타일을 목표
- API가 사용자를 위해 해결할 수 있는 모든 문제를 다룸
- API 마케팅
- API로 수익 창출 가능
API 게이트웨이 란?
- 광범위한 백엔드 서비스를 사용하는 기업 클라이언트를 위한 API 관리 도구
- 일반적으로 모든 API 호출에 적용할 수 있는 사용자 인증, 통계 및 속도 관리와 같은 일반적인 태스크를 처리
참고)
https://aws.amazon.com/ko/what-is/api/
728x90
'STUDY > ETC' 카테고리의 다른 글
크롬 DNS 캐시 확인 및 삭제 (0) | 2023.03.23 |
---|---|
흐름도(Flow Chart)의 의미와 그리는 방법 (0) | 2023.03.07 |
Comments