API 란?
API 는 Application Programming Interface 의 줄임말입니다.
어떤 서버의 특정한 부분에 접속하여 그 안에 있는 데이터와 서비스를 이용할 수 있게 해주는 소프트웨어 도구라고 한다.
즉, 요청과 응답을 사용하여 두 애플리케이션이 서로 통신하는 방법을 정의한 것으로 볼 수 있습니다.
REST (Representational State Transfer) API 란?
- 네트워크를 통해서 컴퓨터들끼리 통신할 수 있게 해주는 아키텍쳐
- REST 는 클라이언트가 서버 데이터 엑세스하는데 사용할 수 있는 GET, PUT, DELETE 등의 함수 집합을 정의합니다.
- 단일한 인터페이스를 사용하기 때문에 해당 API 를 사용하는 애플리케이션들이 동일한 경로를 통해서 접속해야하고, 그 방식이 단순하게 됩니다.
- REST는 웹이 최적화 되어 있고 데이터 포맷이 JSON 이기 때문에 브라우저들 간에 호환성이 좋습니다.
Soap (Simple Object Acess Protocol) API 란?
- 단순 객체 접근 프로토콜을 사용합니다.
- 클라이언트와 서버는 XML 을 사용하여 메시지를 교환합니다.
- 보안이나 메시지 전송등에 있어 REST 보다 더 많은 표준들이 정해져 있기 때문에 조금 더 복잡합니다.
- 은행용 모바일 앱처럼 보안 수준이 높아야 하거나, 신뢰할 수 있는 메시징 앱, 또는 ACID 를 준수해야하는 경우라면 SOAP 방식이 더욱 선호됩니다.
- ACID 를 준수하기 때문에 데이터의 변형을 줄여주고, 데이터베이스와의 상호작용에 대해서 사전에 정확하게 정하기 때문에 데이터의 무결성을 지켜준다.
** ACID 란?
데이터 유효성을 보장하기 위한, 트랜잭션의 특징들의 앞글자를 딴 단어입니다.
Atomicity (원자성) : 모든 작업이 반영되거나 모두 콜백되는 특성
Consistency (일관성) : 데이터는 미리 정의된 규칙에서만 수정이 가능한 특성을 의미합니다. 숫자 칼럼에 문자열값을 저장이 안되도록 보장해준다.
Isolation (고립성) : A와 B 두 개의 트랜잭션이 실행되고 있을때, A의 작업들이 B에게 보여지는 정도를 의미
Durability (영구성) : 한번 반영된 트랜잭션의 내용은 영원히 적용되는 특성을 의미
REST API 와 Soap API 비교
Soap API | REST API | |
유형 | 프로토콜 | 아키텍처 |
기능 | 기능 위주 구조화된 정보 전송 |
데이터 위주 데이터를 위해서 리소스 접근 |
데이터 포맷 | XML 만 사용 | 일반 텍스트, HTML , XML , JSON 등 다양한 포맷을 사용 |
보안 | WS-Security 와 SSL 지원 | SSL 와 HTTPS 지원 |
대역폭 | 상대적으로 더 많은 리소스와 대역쪽이 필요 | 상대적으로 리소스가 적게 필요하고, 무게가 가벼움 |
데이터 캐시 | 사용 불가능 | 사용 가능 |
페이로드 처리 | 엄격한 통신 규약을 갖고 있으며 모든 메시지는 보내기전에 알려져야 함 |
미리 알림 필요 없음 |
ACD 준수 | 자체적으로 ACD 기준이 있어서 데이터 손상을 줄여줌 | ACD 준수와 관련된 내용 없음 |
'개념' 카테고리의 다른 글
R 프로그래밍의 개념 (0) | 2022.09.26 |
---|---|
STS (Strick-Transport-Security) 란? (1) | 2022.09.23 |
[IT 용어] On-Presmiss 란? (0) | 2022.09.02 |
[보안] PKCS(공개키 암호 표준) (0) | 2022.08.09 |
[Socket] 동기식 비동기식 차이 (0) | 2022.07.07 |