API: Application Programming Interface
운영체제와 응용프로그램 사이의 통신에 사용되는 언어나 메시지 형식
즉, API는 프로그램과 프로그램을 이어주는 매개체를 의미한다.
가게를 예로 들어보자.
점원은 손님의 주문을 받아 요리사에게 전달하고, 반대로 요리사에게 음식을 받아 손님에게 전한다. 여기서 점원의 역할을 API가 하는 것이다. 양쪽에 있는 사람들을 연결해주는 중간 전달자 역할을 한다.
손님 < 점원 > 요리사
이를 서버에 적용해 보면 이렇게 표현할 수 있다.
서버 < API > 서버
구체적으로 적용을 해보면 손님은 내가 만든 프로그램, 점원은 API, 요리사는 API 제공자가 된다.
우리가 직접 가게에 가기 귀찮을 때는 배달 서비스를 사용한다. OPEN API는 식당에서 고용한 점원이지만 누구나 필요할 때 언제들 사용할 수 있도록 열어둔 것을 말한다. 꼭 가게에 직접 가지 않아도 점원이 이동하면서 배달을 해준다는 것을 기억하면 된다.
고용한 점원을 왜 빌려줘? -> 인지도!
언제 어디서든 배달해주는 점원을 통해 손님은 편하게 음식을 맛 볼 수 있고 인지도가 점차 상승하게 된다. 따라서 API를 제공하는 기업들은 자신의 좋은 서비스를 널리 알릴 수 있고 이를 사용하는 기업은 좋은 서비스를 쉽게 사용할 수 있다는데 장점이 있다.
API의 가장 흔한 구조는 REST 또는 RESTful API가 있다.
접근 방식에 따른 유형을 정리해 보자.
Private API
이는 내부 API로 기업과 같은 단체 내에서만 사용하는 API를 말한다. 따라서 외부로는 노출되지 않는다.
Public API
개방형 API로 모두에게 공개되어 있다.
Open API
Public API 중에서 접속하는 대상에 대한 제약이 없는 경우를 말한다.
Partner API
특정 비즈니스 파트너간의 데이터를 공유하기 위한 API이다. 공유를 하는 특정인들끼리만 해당 API를 가지게 된다.
각 아키텍처 스타일에 따라 유형과 기능, 보안 등의 차이점이 존재한다. 현재는 REST(Representational State Tranfer) API를 가장 많이 사용한다.
REST 아키텍처의 제약 조건을 준수하는 웹 API를 RESTful API라고 한다.
여행을 가기 위해 항공권을 검색한다.
API는 부킹 가능한 항공권을 보여주고 고객은 원하는 항공권을 선택 후 결제 후 결제한다. 이 내역을 API가 다시 항공사로 전달하고 예약이 완료된다.
고객이 원하는 날짜에 항공 예약 부킹이 가능한지 파악하기 위해서는 항공사의 데이터베이스를 읽어야한다. 하지만 모든 사람들이 항공사의 데이터베이스를 읽을 수 있게 되면 보안에 문제가 생길 수 있다. 따라서 허가된 사람만 비밀 코드를 알려준다. 이를 API 인증키라고 한다.
API 역할
1. API는 서버와 데이터베이스에 대한 출입구 역할을 한다.
데이터베이스에 허가된 사람만이 접근가능하도록 API가 접근성을 부여해준다.
2. 애플리케이션과 기기가 원활하게 통신할 수 있도록 한다.
우리가 알고있는 스마트폰 어플이나 프로그램과 기기가 데이터를 원활히 주고받을 수 있도록 돕는 역할을 한다.
3. 모든 접속을 표준화한다.
API는 모든 접속을 표준화하기 때문에 기계/운영체제 등과 상관없이 누구나 동일한 액세스를 얻을 수 있다.
'백엔드 > 스프링 부트 3 자바 백엔드 개발 입문' 카테고리의 다른 글
[스프링 부트 개요] 스프링 부트 시작하기 (0) | 2024.03.10 |
---|