이 글에서는 네 가지 주요 API 스타일을 설명하고, 장단점을 비교하고, 각각에 가장 적합한 사용 사례를 강조합니다. 1. RPC(Remote Procedure Call) 원격 프로시저 호출. 코
이 글에서는 네 가지 주요 API 스타일을 설명하고, 장단점을 비교하고, 각각에 가장 적합한 사용 사례를 강조합니다. 1. RPC(Remote Procedure Call) 원격 프로시저 호출. 코딩 없이 다른 주소 공간에서 함수나 프로시저를 실행할 수 있게하는 프로세스 간 통신 기술. 분산 네트워크 환경에서 더 편하게 프로그래밍하기 위해 등장. 장/단점: 다양한 언어를 가진 환경에서 쉽게 확장, 비즈니스 로직에 집중하여 생산성을 증가 / 시스템과의 coupling 사용 사례: Facebook (Apache Thrift), Twitch (Twirp), 외부 API나 API 서비스가 아닌 내부 마이크로서비스에 적합 2. SOAP (Simple Objects Access Protocol) envelope/header/body로 구성되는 메시지. API 규약과 정의는 WSDL (Web Service Description Language)로 작성됨. 특징: 엔터프라이즈 급 트랜잭션에 적합한 보안 체계 / XML only. Heavyweight. 사용 사례: 고도로 표준화 된 사례에 적합(billing, pament,...). 기업 간 통합에(integration) 자주 사용됨. 3. REST (Representational State Transfer) 6가지 제약 조건(uniform interface, stateless, caching, client-server architecture, layered system, code-on-demand) 장/단점: 클라이언트와 서버의 디커플링, 캐시 친화적, 방대한 커뮤니티 / under-fetching, over-fetching 사용 사례: Public API, 쿼리에 유연성이 필요하지 않은 리소스 기반 앱에 유용 4. GraphQL 필요한 데이터만 쿼리. 웹 클라이언트가 데이터를 서버로 부터 효율적으로 가져오는 것이 목적. 여러번 네트워크 호출을 할 필요 없이, 한번의 네트워크 호출로 쿼리를 처리 할 수 있음. 장/단점: 필요한 데이터만 반환할 수 있음. 프론트엔드-백엔드의 생산성 향상 / 러닝 커브, 캐싱 복잡성 사용 사례: 복잡한 시스템 및 마이크로서비스, 모바일 API