API란 "Application Programming Interface"의 약자로, 프로그램 또는 소프트웨어와 상호 작용하기 위한 인터페이스를 의미합니다.
한 단어 씩 나누어 보면,
Application : 특정한 업무를 수행하기 위해 개발된 응용 소프트웨어
Programming :컴퓨터에 부여하는 명령을 만드는 작업. 수식이나 작업을 컴퓨터에 알맞도록 정리해서 순서를 정하고 컴퓨터 특유의 명령코드로 고쳐 쓰는 작업
Interface : 사물과 사물 사이 또는 사물과 인간 사이의 경계에서, 상호 간의 소통을 위해 만들어진 물리적 매개체나 통신 규칙
종합하자면, 응용 소프트웨어를 만드는데 쓰는 매개체나 통신규칙 이라고 할 수 있습니다.
클라이언트와 서버 사이의 데이터 전송 통신을 위한 규칙이라고도 볼 수 있습니다.
ex. Java 에는 JavaAPI가 있고, Python에는 Python표준 라이브러리와 외부 라이브러리들이 API를 제공함.
ex. RESTful API, SOAP API 등
운영체제(OS)에서 제공하는 기능에 접근하기 위한 인터페이스를 의미합니다. 이를 통해 파일 시스템, 네트워크, 프로세스 관리 등의 기능에 접근할 수 있습니다.
다른 소프트웨어나 시스템과 상호 작용하기 위한 인터페이스를 말합니다.
ex. 데이터페이스 시스템은 데이터를 제정, 수정, 검색하는 기능을 제공하는 API
API는 서로 다른 시스템 간에 데이터 및 기능을 교환하고 통합할 수 있도록 해줍니다. 이는 서로 다른 플랫폼이나 언어를 사용하는 시스템 간에도 통신이 가능하게 해줍니다.
API를 사용하여 공통된 기능이나 서비스를 제공할 수 있습니다. 이는 중복을 피하고 개발 시간을 단축시키며, 코드의 일관성을 유지할 수 있게 해줍니다.
API는 서비스를 모듈화하여 개발할 수 있도록 도와줍니다. 각각의 모듈은 독립적으로 개발, 테스트, 배포될 수 있으며, 유지보수가 용이합니다.
API는 시스템을 쉽게 확장할 수 있도록 해줍니다. 새로운 기능이나 서비스를 추가하거나 기존의 기능을 업데이트할 때 API를 통해 상호 작용할 수 있습니다.
API는 외부와 상호 작용을 허용하므로 보안 문제가 발생할 수 있습니다. 적절한 보안 조치 없이는 데이터 유출이나 악의적인 공격에 노출될 수 있습니다.
새로운 API 버전이 출시되면 이전 버전과의 호환성을 유지해야 하며, 이를 관리하는 것은 복잡할 수 있습니다.
API 호출은 네트워크를 통해 이루어지기 때문에 시간이 소요됩니다. 과도한 API 호출이나 느린 응답 속도는 성능 문제를 야기할 수 있습니다.
외부 API에 의존하는 경우 외부 서비스의 가용성에 영향을 받을 수있습니다. 따라서 외부 서비스의 안정성과 가용성을 고려해야 합니다.