-
API 란?소프트웨어 개발 개념 2025. 3. 1. 02:37
API(Application Programming interface)를 설명한 짧은 글입니다. "어떤 것을 API라고 부를 수 있는지"라는 중점을 가지고 설명해보려고 했습니다.
API 란?
API(Application Programming interface)는 정의 및 프로토콜 집합을 사용하여 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 체계입니다.
여기서 정의는 해당 API를 통해 사용자가 무엇을 할 수 있는지, 어떤 정보를 주고받을 수 있는지에 대한 명세를 의미하며,
프로토콜(즉, 규약)은 어떤 통신 방식을 채택하여 요청과 응답이 어떤 형식으로 이루어져야 할지에 대해 규정하는 것을 의미합니다.
*저는 이렇게 이해했는데, 혹시나 잘못된 정보라면 댓글을 남겨주세요.
결국 쉽게 풀어말하자면,
API는 어떤 기능을 어떤 방식으로 제공할지에 대한 규칙을 지정하고
그 규칙을 따른다면, 두 소프트웨어가 데이터를 주고받을 수 있게 하는 체계인 것입니다.
보다 더 짧게 줄이자면,
API는 두 소프트웨어를 통신하게 해주는 통신 체계입니다.
API를 써서 프로그램을 만들어본 적이 있음에도 불구하고 API에 대한 개념은 매번 헷갈리는 것 같습니다.API의 개념에 부합한다면 전부 API입니다. 소프트웨어 간에 데이터를 주고받는 통신 체계만 갖추고 있다면 API란 겁니다.
예를 들어, 우리가 자연스럽게 사용해왔던 라이브러리/프레임워크도 API의 개념에 포함됩니다.
라이브러리는 내 코드(스크립트)와 라이브러리 자체를 연결하는 매개체 역할을 합니다. 라이브러리 내부의 클래스나 매서드는 정해진 규칙에 따라 사용해야 하고, 규칙을 따르지 않으면 원하는 결과를 얻을 수 없습니다. 배열을 정렬하려면 Array.sort(배열이름) 메서드를 호출해야하는데 Array.sorting(배열이름) 이와같이 임의 변경하여 메서드를 호출할 순 없습니다.
프레임워크도 마찬가지로 Spring Framework를 이용해 웹 애플리케이션을 만들 때는 개발자는 정해진 규칙을 따라야 합니다. JSON과 같은 포맷을 반환하는 컨트롤러를 만들 때 @RestController 를 붙여야 하지 마음대로 @MakingController 같은 어노테이션을 붙일 수는 없단 말입니다.(이렇게 커스텀 어노테이션을 만들 수 있지만 일반적으로 정해진 규칙을 따라는 게 옳습니다)
애플리케이션과 데이터베이스 간의 통신을 담당하는 Java의 JDBC도 API의 개념에 포함돼 데이터베이스 API라고 불립니다.
그 외에도 웹 API, 운영체제 API, 그래픽 API, 하드웨어 API, RPC API 등 다양한 API 종류들이 존재합니다.
참고자료
https://aws.amazon.com/ko/what-is/api/
'소프트웨어 개발 개념' 카테고리의 다른 글
도메인(Domain)과 도메인 모델(Domain Model) (0) 2025.02.25 프레임워크와 라이브러리의 차이점 (0) 2025.02.03