Dev etc/etc

[Server] API와 SPI의 차이점

콩다영 2022. 11. 19.
728x90

API와 SPI의 차이를 비교분석해보자.
분석까지는 아니고 그냥 비교… bb




API는 API(Application Programming Interface)의 약자로,
API는 일종의 소프트웨어나 플랫폼에서 제공하는 서비스/기능에 액세스하는 수단.

SPI는 SPI(Service Provider Interface)의 약자로,
SPI는 소프트웨어 또는 플랫폼의 동작을 주입, 확장 또는 변경하는 방법.




API는 일반적으로 클라이언트가 서비스에 액세스하는 대상이며 다음과 같은 속성을 갖는다.
- API는 특정 동작이나 출력을 얻기 위해 서비스에 액세스하는 프로그래밍 방식.
- API 진화의 관점에서 볼때 추가사항은 클라이언트에게 전혀 문제가 되지 않는다.
- 하지만 API는 한번 클라이언트에 의해 활용되었지만 적절한 의사 소통이 없으면 변경되거나 삭제될 수 없다.
   왜냐하면 클라이언트의 기대가 완전히 저하되었기 때문.


SPI공급자를 대상으로하며 다음과 같은 속성.
- SPI는 소프트웨어 또는 플랫폼의 동작을 확장/변경하는 방법.
- SPI진화는 API 진화와 다름. SPI 제거는 문제가 아님.
- SPI 인터페이스를 추가하면 문제가 발생하고 기존 구현이 손상될 수 있음.

* Service Provider
- SPI의 구현체. 확장성 있는 서비스들을 가진 어플리케이션은 개발자나 벤더, 고객들이 Service Provider들을 기존 어플리케이션의 수정없이 추가할 수 있다.


728x90
반응형

댓글