현대 기술에 관해 가장 많이 듣게 될 용어가 있다면 그것은 바로 - API(application programming interface)! API는 하나의 프로그램이 다른 프로그램의 정보를 얻을 수 있게 하는 프로그램 간 메신저 역할을 한다. API는 지금 사용 중인 프로그램에서 요청(request)를 받아서 그 요청을 실행해 줄 수 있는 다른 프로그램에 보낸다. 상대 프로그램 - 보통 데이터베이스 - 에 뭐가 필요한지 전달하고, 받아서, 가져오는 것이다.
예를 들어, ABC마트 매장에 가서 진열된 운동화 중에 원하는 모델의 사이즈(특정 정보)가 있는지 점원에게 물으면(요청 전송) 점원이 창고(데이터베이스)에 가서 맞는 사이즈의 운동화(요청한 정보)를 가져다 주는데(응답), 이때 점원이 API인 셈이다.
다른 기업들이 접근해서 사용하도록 허용한 API를 뜻한다. 익스피디아 같은 여행 서비스를 이용해 호텔을 검색할 때, 익스피디아는 해당 정보를 직접 갖고 있지 않지만 각 호텔의 공개 API를 활용해 해당 장소와 날짜에 비어있는 객실을 찾아낸 다음 고객이 비교할 수 있게 제공한다. 많은 기업들이 이런 식으로 다른 기업들이 관련 서비스를 개발할 수 있도록 API를 공개한다.
비공개 API는 기업 내부 개발자들만 제한적으로 활용할 수 있는 API를 가리킨다. 여러 데이터베이스에 많은 정보를 저장하고 있는 대기업들인 경우가 많다. 예를 들어, 텍스트와 이미지 등을 서로 다른 데이터베이스에 저장하고 있을 트위터 같은 기업에서는 한 팀의 개발자가 어떤 기능을 개발하는 데 시스템 내 다른 위치에 있는 정보가 필요하면 API 호출(call) 요청을 코드 안에 작성해 넣어야 한다. 그러면 이 요청이 엔드포인트(endpoint) 데이터베이스에 이르러 해당 정보를 가져올 수 있게 된다.
시스템에 발생할 수 있는 문제를 방지하기 위해 API에 제한을 두기도 한다. 시스템에 과부하를 초래하지 않도록 분당 요청 회수를 제한하기도 하고, 요청 가능한 데이터 유형(data type)을 제한하기도 한다. 공개 API의 경우, 아무나 무작위로 과도한 요청을 보내 시스템을 정지시킬 수 있기 때문에 이런 장치가 특히 더 필요하다.
LinkedIn > Learning > Technology for Product Managers 강좌를 바탕으로 정리한 내용입니다.