Develop Note by J.S.

[Network] API Architecture 본문

Knowledge/Network

[Network] API Architecture

js-web 2023. 6. 27. 09:50
반응형

API란?

API는 Application Programming Interface 의 약자로, 특정 고유기능을 가진 소프트웨어(Application) 상호간의 Programming된 Interface를 뜻합니다. 웹개발시에는 일반적으로 Server와 Client가 통신하기 위한 기능을 API라고도 하고, 특정 라이브러리가 개발자에게 제공하는 기능의 단위를 API라고 부릅니다.

 

Network API 종류

1. SOAP API

Simple Object Acces Protocol의 약자로 HTTP의 POST 메소드로만 통신을 합니다. XML형식 기반으로 러닝커브가 큰 편이지만 엄격한 보안성을 가져 기업용 서비스에 주로 사용됩니다.

2. REST API 

Representational State Transfer API의 약자로 Web개발에서 일반적으로 많이 사용되는 API Architecture입니다. GET, POST, PUT, PATCH, DELETE 메소드를 사용하여 데이터의 CRUD 기능을 구현합니다. 취약한 보안이 단점이 있지만 HTTPS 및 각종 암호화 기능으로 데이터 보안을 강화하여 사용하게 됩니다.

3. GraphQL

페이스북에서 만든 쿼리 언어입니다. 기존의 API 요청을 통해 필요한 데이터를 가져오게 되면 응답되는 데이터 Form이 고정되어 사용하지 않은 데이터와 함께 잦은 API 요청으로 데이터를 구성하게 됩니다. 하지만 GraphQL은 효율적인 데이터를 가져오는것을 목적으로 만들어져 필요한 데이터만 선택하여 받을 수 있습니다. REST와는 다르게 Resource에 대한 엔드포인트가 따로 존재하지않고 하나의 엔드포인트만 존재합니다. 

4. gRPC

Google 원격 프로시져 호출 (Remote Procedure Calls) 기능으로, 미리 정의된 형식을 사용하여 원격 서버의 정의된 함수를 수행시켜 마치 로컬의 메소드를 호출한것 처럼 사용할 수 있습니다. 이는 분산 애플리케이션 서비스를 쉽게 만들 수 있는 장점이 있으며 기존 API의 단순 데이터 요청/응답 기능의 범위를 넘어서 구현할 수 있습니다. HTTP/2 기반을 통신하여 속도가 빠르고 Mutiplexed Streams등의 다양한 장점이 있지만 제한된 브라우저 지원과 이진형식의 메세지로 사람이 읽을 수 없는 단점이 있습니다.

 

 

참고사이트
https://bangu4.tistory.com/167

https://learn.microsoft.com/ko-kr/aspnet/core/grpc/comparison?view=aspnetcore-7.0

반응형

'Knowledge > Network' 카테고리의 다른 글

[Network] OSI 7계층 & TCP/IP 4계층  (0) 2023.08.08
[Network] HTTP  (0) 2023.07.03
[Network] Socket.io vs Websocket  (0) 2023.06.26
[Network] HTTPS  (0) 2023.06.26